2 个版本
3.0.0-alpha.12 | 2024年8月13日 |
---|---|
3.0.0-alpha.2 | 2023年10月15日 |
#332 in Web 编程
116 每月下载量
710KB
13K SLoC
Torrust Index
Torrust Index 是一个用于 BitTorrent 文件的库。使用 Rust 语言 和 Axum Web 框架编写。 此索引旨在尊重现有标准(无论是正式的还是其他的)。
这是一个 Torrust 项目,目前正在积极开发中。它得到了社区的支持,并由 Nautilus Cyberneering 赞助。
关于
比特Torrent 索引的核心目的是维护一个数据库,将种子文件与有用的元数据相连接。允许用户社区以有组织且信息丰富的方式跟踪他们的种子文件。
Torrust Index 为我们的 Torrust Index GUI 客户端提供了一个高级 API。它还连接到我们的 Torrust Tracker 的 管理 API,以提供统计信息和白名单功能。
主要特性
- 高质量的现代 Rust 代码库。
- 由代码注释生成的 文档。
- 全面单元和功能测试套件 Comprehensive Suit。
- 在繁忙条件下的良好性能。
- 原生
IPv4
和IPv6
支持。 - 持久
SQLite3
或MySQL
数据库。
入门指南
升级
如果您正在使用 Version 1
版本的 torrust-tracker-backend
,请参阅我们的升级指南。
容器版本
Torrust 索引已部署到 DockerHub,您可以使用以下命令立即运行演示:
Docker
docker run -it torrust/index:develop
请参阅我们的容器指南以获取更多信息。
Podman
podman run -it torrust/index:develop
请参阅我们的容器指南以获取更多信息。
开发版本
- 请确保您拥有 最新稳定版(或夜间版)的 Rust。
- 请确保您的计算机有足够的 RAM。 建议 16GB。
检出、测试和运行
# Checkout repository into a new folder:
git clone https://github.com/torrust/torrust-index.git
# Change into directory and create a empty database file:
cd torrust-index
mkdir -p ./storage/index/lib/database/
touch ./storage/index/lib/database/sqlite3.db
# Check all tests in application:
cargo test --tests --benches --examples --workspace --all-targets --all-features
# Run the index:
cargo run
自定义
# Copy the default configuration into the standard location:
mkdir -p ./storage/index/etc/
cp ./share/default/config/index.development.sqlite3.toml ./storage/index/etc/index.toml
# Customize the index configuration (for example):
vim ./storage/index/etc/index.toml
# Run the index with the updated configuration:
TORRUST_INDEX_CONFIG_TOML_PATH="./storage/index/etc/index.toml" cargo run
可选地,您可以选择将整个配置作为环境变量提供
# Use a configuration supplied on an environmental variable:
TORRUST_INDEX_CONFIG_TOML=$(cat "./storage/index/etc/index.toml") cargo run
_对于部署,您应该使用环境变量来覆盖
tracker_api_token
和index_auth_secret_key
:
# Please use the secret that you generated for the torrust-tracker configuration.
# Override secret in configuration using an environmental variable
TORRUST_INDEX_CONFIG_TOML=$(cat "./storage/index/etc/index.toml") \
TORRUST_INDEX_CONFIG_OVERRIDE_TRACKER__TOKEN=$(cat "./storage/tracker/lib/tracker_api_admin_token.secret") \
TORRUST_INDEX_CONFIG_OVERRIDE_AUTH__SECRET_KEY="MaxVerstappenWC2021" \
cargo run
请参阅我们的 crate 文档以获取更详细的说明。
服务
默认配置提供了以下服务
- API
http://127.0.0.1:3001/
.
文档
贡献
我们很高兴支持并欢迎新成员加入我们的项目。请考虑我们的贡献指南。
这是一个开源社区支持的项目。我们欢迎社区的贡献!
您如何贡献?
- 错误报告和功能请求。
- 代码贡献。您可以从查看标记为 "good first issues" 的问题开始。
- 文档改进。检查 文档 和 API 文档 中的拼写错误、错误或缺失信息。
- 参与社区。您可以通过在 讨论 中回答问题来帮助。
许可证
版权所有 (c) 2023 Torrust 开发者。
本程序是免费软件:您可以在 Free Software Foundation 发布的 GNU Affero 通用公共许可证 的条款下重新分发和/或修改,许可证版本为 3。
本程序的分发是希望它会很有用,但没有任何保证;甚至没有关于适销性或适用于特定目的的隐含保证。有关详细信息,请参阅 GNU Affero 通用公共许可证。
您应该已经收到本程序的副本,附有 GNU Affero 通用公共许可证。如果没有,请参阅 https://www.gnu.org/licenses/。
某些文件包含明确的版权声明和/或许可证声明。
旧版例外
为了繁荣,Torrust Tracker 的版本,如果超过五年,将自动获得 MIT-0 许可证,以及现有的 AGPL-3.0-only 许可证。
贡献者协议
Torrust Tracker 的版权归各自的作者所有。
贡献者同意
- 所有他们的贡献都授予与 Torrust Trackers 许可证 兼容的许可证。
- 所有贡献者必须明确且清晰地声明除AGPL-3.0-only with the legacy MIT-0 exception以外的任何可编译许可:AGPL-3.0-only with the legacy MIT-0 exception。
Torrust-Tracker项目没有版权转让协议。
我们诚恳地请求您花时间全面考虑Torrust项目的贡献者协议。
致谢
该项目是由Nautilus Cyberneering GmbH和Dutch Bits共同完成的。
依赖项
~77–110MB
~2M SLoC