#文件传输 #目录 #tokio #io-uring #网络 #rkyv #机器

应用 rcopy

由Tokio、RKYV和io_uring驱动的快速文件和目录传输工具

1个不稳定版本

0.1.0 2023年5月22日

#11 in #rkyv

MIT 协议

5.5MB
1K SLoC

rcopy

这个程序只做一件事!它尽可能快地从一台机器通过网络远程复制文件或目录到另一台机器。在我的网络上,它可以达到几百MB/s(或90秒内30GB)。

rcopy 使用一些关键技术来实现这种速度

  • 使用Tokio的异步并发Rust
  • 使用RKYV进行零拷贝序列化和反序列化
  • 使用io_uring尽可能快地进行文件读写

如果你知道如何让它更快,请提交PR!

安装

使用 cargo install rcopy 安装

运行

在包含您想要复制的文件或目录的机器上(在我的情况下,~/hub/models/...Vicuna可能比GPT-4小,但文件仍然非常大!)运行

rcopy send ~/hub/models

send

在您想要将文件复制到的机器上(我们将它们复制到~/Downloads/models-copy/),运行

rcopy receive -a 192.168.0.185:3120 ~/Downloads/models-copy/

receive

常见问题解答

:这个程序的用途是什么?

:上面已经提到,但我真的厌倦了在机器之间移动Linux ISO和9GB ggml文件。我意识到SFTP和RSync非常慢,所以我认为制作自己的程序会很有趣。

:这是安全的吗?

:不!请确保您的网络安全,这个程序用于移动您不关心的大型模型文件(或Linux ISO,或任何其他文件)。将来,我计划添加一个加密模式,该模式将使用您机器上现有的SSH密钥来协商AES。

计划功能

  • 加密(出于明显的原因)
  • 打孔(用于非LAN事务)
  • 数据压缩(用于较慢的网络)
  • 完整性检查(用于小心的人)
  • 通过多个TCP流进行实验以找到饱和极限

依赖项

~11–22MB
~289K SLoC