| Crates.io | filebuffer |
| lib.rs | filebuffer |
| version | 1.0.0 |
| created_at | 2016-01-31 12:03:13.589568+00 |
| updated_at | 2024-05-18 14:21:22.28222+00 |
| description | Fast and simple file reading |
| homepage | |
| repository | https://github.com/ruuda/filebuffer |
| max_upload_size | |
| id | 4032 |
| size | 47,100 |
Fast and simple file reading for Rust.
Filebuffer can map files into memory. This is often faster than using the
primitives in std::io, and also more convenient. Furthermore this crate
offers prefetching and checking whether file data is resident in physical
memory (so access will not incur a page fault). This enables non-blocking
file reading.
Below is an implementation of the sha256sum program that is both faster and
simpler than the naive std::io equivalent. (See sha256sum_filebuffer and
sha256sum_naive in the examples directory.)
use std::env;
use crypto::digest::Digest;
use crypto::sha2::Sha256;
use filebuffer::FileBuffer;
extern crate crypto;
extern crate filebuffer;
fn main() {
for fname in env::args().skip(1) {
let fbuffer = FileBuffer::open(&fname).expect("failed to open file");
let mut hasher = Sha256::new();
hasher.input(&fbuffer);
println!("{} {}", hasher.result_str(), fname);
}
}
Filebuffer is licensed under the Apache 2.0 license. It may be used in free software as well as closed-source applications, both for commercial and non-commercial use under the conditions given in the license. If you want to use Filebuffer in your GPLv2-licensed software, you can add an exception to your copyright notice.