GitXplorerGitXplorer
D

snedfile

public
2 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
50eb8303e9cec24d3bd23905de7b4d6a0322a812

Version 0.1.0

DDraphar committed 5 years ago

README

The README file for this repository.

snedfile - Rust cross-platform sendfile() abstractions

travis-badge appveyor-badge crates.io-badge docs-badge license-badge

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)
}