#client #http2 #low-overhead #upstream #cache #performance #high

app mangadex-home

使用 Rust 实现的 MangaDex@Home

5 个版本

0.5.3 2021年7月17日
0.5.2 2021年7月15日
0.5.1 2021年7月15日
0.5.0 2021年7月15日
0.1.0 2021年3月22日

#223缓存

GPL-3.0 或更高版

155KB
4K SLoC

MangaDex@Home 客户端的 Rust 实现。

此客户端包含以下功能

  • 从官方客户端轻松迁移
  • 完全符合 MangaDex@Home 规范
  • 多线程、高性能和低开销客户端
  • 为 API 用户支持 HTTP/2,上游连接仅支持 HTTP/2
  • 安全且注重隐私的功能
    • 仅支持 TLS 1.2 或更高版本;默认情况下不启用 HTTP
    • 无日志和无度量选项
    • 支持使用临时密钥生成磁盘上 XChaCha20 加密
  • 支持内部 LFU、LRU 或 Redis 实例进行内存缓存

构建

cargo build
cargo test

您可能需要设置客户端密钥,有关更多信息,请参阅配置。

迁移

从官方客户端迁移被制作得尽可能无痛苦。但也有一些需要注意的地方

  • 如果您想返回使用官方客户端,您需要清除您的缓存。
  • 由于这是一个非官方客户端实现,您可能只能从我这儿获得支持。

否则,迁移步骤很简单

  1. 将二进制文件放在与您的 images 文件夹和 settings.yaml 相同的文件夹中。
  2. images 重命名为 cache

客户端实现

此客户端遵循安全优先的方法。因此,您的统计数据可能会报告比平均略高的失败率。具体来说,此客户端选择

  • 不支持 TLS 1.1 或 1.0,这将是主要的不兼容来源。
  • 不在请求头中提供服务器标识字符串。
  • 默认启用 HTTPS,提供了 HTTP(但不受支持)。

话虽如此,此客户端应与官方客户端的数据和配置向后兼容。这意味着您应该能够替换二进制文件并保留所有设置和缓存。

安装

您可以从源代码构建它或运行 cargo install mangadex-home

配置

大多数配置选项都可以在命令行中提供,或者从名为 settings.yaml 的文件中获取,该文件位于执行命令的目录中,首次运行时会创建此文件。

请注意,客户端密钥(CLIENT_SECRET)是唯一只能从环境、.env 文件或 settings.yaml 文件中提供的配置选项。换句话说,您不能从命令行提供此值。

特别感谢

以下人员协助,本项目才能完成

开发协助(按字母顺序排列)

  • carbotaniuman#6974
  • LFlair#1337
  • Plykiya#1738
  • Tristan 9#6752
  • Rust Discord 社区

测试人员

  • NigelVH#7162

如果使用地理IP日志功能,则此产品包含由 MaxMind 创建的 GeoLite2 数据,可在 https://www.maxmind.com 获取。

依赖项

~89MB
~1.5M SLoC