15 个版本

0.3.1 2024 年 6 月 7 日
0.3.0 2024 年 5 月 21 日
0.2.0 2024 年 5 月 3 日
0.1.11 2024 年 3 月 31 日
0.1.2 2024 年 2 月 25 日

#461 in 网络编程

MPL-2.0 和可能 GPL-3.0-only

270KB
5.5K SLoC

distrans

crates.io/crates/distrans docs.rs/distrans-peer MPL-2.0

"字节必须流动。"

Distrans (分发和传输) 通过 Veilid 网络匿名发送和接收文件内容。

使用

distrans seed <file> 为文件创建索引并作为种子,显示可以用来获取文件的 dht 密钥。

distrans fetch <dht key> [directory] 在种子文件的同时获取文件(默认为当前目录)。

类似于 bittorrent,distrans 除非有对等节点正在种子文件,否则无法获取文件。

请参阅 distrans --help 了解更多选项。

试试吧!

使用 distrans fetch VLD0:cCHB85pEaV4bvRfywxnd2fRNBScR64UaJC8hoKzyr3M 尝试获取测试文件。

安装

在 Linux、macOS 或 Windows 上安装二进制发布版本。

Rust crate

使用 cargo install distrans 安装 crate。

crate 依赖可能需要根据目标平台安装系统包。

Debian Bookworm 需要 apt-get install build-essential libssl-dev pkg-config

其他可能类似。

Nix flake

使用 nix run github:cmars/distrans 在 Nix 上运行 distrans。

将此 flake (github:cmars/distrans) 作为输入添加到您的 home manager flake。

或使用类似的方法将默认包添加到传统的 home.nix

(builtins.getFlake "github:cmars/distrans").packages.x86_64-linux.default

计划

1.0 版本发布路线图上的内容。

跟踪器

跟踪器将使 distrans 对等节点群体更像是 bittorrent,其中可以同时种子和获取块。

多文件共享

Distrans 线路协议和索引结构支持多文件共享,但尚未完全实现。

故障排除

时钟偏差

Distrans运行一个嵌入式Veilid节点,这需要一个同步的本地时钟。时钟偏差可能会阻止Distrans连接到Veilid网络。

调试日志

可以使用RUST_LOG环境变量配置日志。

RUST_LOG=debug将启用Distrans以及veilid-core中的所有调试级别日志,这可能有助于解决底层Veilid网络问题和报告问题。

问题

在提交问题时要注明操作系统类型、操作系统版本、distrans版本和复现步骤。您可以附加任何日志以帮助。

开发

在Nix环境中,使用nix develop github:cmars/distrans(或在此目录中使用nix develop)来获取带有必要工具依赖的开发shell。

在其他平台上,一个Veilid开发环境就足够了。

capnp仅在处理协议线格式时才是必需的。

CICD

Github用于CICD和特别是发布自动化

贡献

分支和版本通常会定期镜像到Gitlab。如果它们与项目计划和目标相符,可能会接受来自任一分支的拉取请求。

在挑选分支和提出建议之前,先打开一个问题并提问,以获得最佳结果。

依赖关系

~28–70MB
~1M SLoC