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 在 缓存
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
您可能需要设置客户端密钥,有关更多信息,请参阅配置。
迁移
从官方客户端迁移被制作得尽可能无痛苦。但也有一些需要注意的地方
- 如果您想返回使用官方客户端,您需要清除您的缓存。
- 由于这是一个非官方客户端实现,您可能只能从我这儿获得支持。
否则,迁移步骤很简单
- 将二进制文件放在与您的
images
文件夹和settings.yaml
相同的文件夹中。 - 将
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