tk-sendfile

A thread pool for rust/tokio that can process file requests and send data to the socket with zero copy (using sendfile)

APACHE-2.0 License

Downloads
19.8K
Stars
26
Committers
1

Sendfile for Tokio

:Status: alpha :Documentation: http://docs.rs/tk-sendfile

A thread pool that can process file requests and send data to the socket with zero copy (using sendfile).

Challenges:

  1. While sendfile is non-blocking when writing to socket, it blocks for
    disk access for two cases: initial open() and for reading file inside
    the sendfile() system call itself
  2. Doing more than single sendfile operation requires some bookkeeping
  3. It should be possible to implement file cache (both opened files and
    in-memory file data) transparently for the user
  4. [TODO] Serving user-specified file paths requires non-trivial code to
    prevent symlink attacks

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Package Rankings
Top 17.17% on Crates.io