1 个不稳定版本
0.1.0 | 2019年9月13日 |
---|
#10 in #send-file
每月100次下载
24KB
471 行
snedfile - Rust跨平台sendfile()抽象
原生支持使用sendfile()
的有Linux、Android、MacOS、iOS、FreeBSD和DragonFlyBSD,其他使用std
-平台则使用回退。
用法
这个库旨在使文件传输尽可能简单。如果您有一个文件和一个TCP流,您只需要
use snedfile::send_file;
fn transmit(path: impl AsRef<Path>, stream: TcpStream) -> io::Result<()> {
let file = File::open(path)?;
send_file(&mut file, &mut stream)
}
实现处理了简单错误以及最佳地使用本地系统功能。
或者,还有一个更底层的解决方案
use snedfile::send_exact;
fn transmit(path: impl AsRef<Path>, stream: TcpStream) -> io::Result<()> {
let file = File::open(path)?;
send_exact(&mut file, &mut stream, file.metadata()?.len(), 0)
}
依赖项
~43KB