1 unstable release
0.1.0 | Sep 13, 2019 |
---|
#10 in #send-file
100 downloads per month
24KB
471 lines
snedfile - Rust cross-platform sendfile() abstractions
Natively supported using sendfile()
are Linux, Android, MacOS, iOS, FreeBSD and DragonFlyBSD,
and every other std
-platform using a fallback.
Usage
This library is designed to make transmitting files as easy as possible. If you have a file and a TCP stream, all you have to do is
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)
}
Trivial errors as well as optimally using the native system capabilities are handled by the implementation.
Alternatively, there is a more low-level solution:
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)
}
Dependencies
~43KB