Rust crate to provide a higher level abstraction over Linux's zero-copy I/O syscall:
sendfile. This provides a significantly
faster variant of io::copy(&mut source, &mut dest)
, which only works on Linux -- the platform of
choice for the discerning programmer.
If you're simply copying a file to a different file descriptor, the copy function can be used:
```rust extern crate zio_sendfile;
let mut source = File::open("sourcepath").unwrap(); let mut dest = File::create("destpath").unwrap();
zio_sendfile::copy(&mut source, &mut dest); ```
If you need a more elaborate configuration, the builder pattern is possible using either the SendFile
or SendFd
types:
```rust extern crate zio_sendfile;
let mut source = File::open("sourcepath").unwrap();
SendFile::new(&mut source)
.count(bytestocopy)
.offset(bytestooffset)
.send(&mut File::create("destpath").unwrap()).unwrap();