#buffered #pread #seek-read #read-at

buffered_offset_reader

Buffered file read_at (pread)

7 releases (breaking)

0.6.0 Feb 14, 2019
0.5.0 Feb 14, 2019
0.4.0 Feb 13, 2019
0.3.0 Feb 7, 2019
0.1.1 Feb 5, 2019

#5 in #pread

Download history 15/week @ 2024-12-13 2/week @ 2024-12-20 2/week @ 2025-01-03 6/week @ 2025-01-10 6/week @ 2025-01-17 2/week @ 2025-01-24 12/week @ 2025-01-31 14/week @ 2025-02-07 18/week @ 2025-02-14 23/week @ 2025-02-21 26/week @ 2025-02-28 197/week @ 2025-03-07 206/week @ 2025-03-14 202/week @ 2025-03-21 428/week @ 2025-03-28

1,040 downloads per month
Used in 4 crates (2 directly)

MIT/Apache

14KB
263 lines

buffered_offset_reader

Build Status Documentation

Rust crate for buffered reading of a file at arbitrary offsets.

Uses std::os::unix::fs::FileExt::read_at() on unix (aka pread()) or std::os::windows::fs::FileExt::seek_read() on windows to do thread-safe reads of the underlying file.

Examples

use buffered_offset_reader::{BufOffsetReader, OffsetReadMut};
use std::fs::File;

fn main() -> std::io::Result<()> {
    let f = File::open("log.txt")?;
    let mut reader = BufOffsetReader::new(f);
    let mut tmp = vec![0; 8];

    reader.read_at(&mut tmp, 0)?;  // read 8 bytes at offset 0

	// This read will be fulfilled by the reader's internal buffer,
	// so it won't require a system call.
    reader.read_at(&mut tmp, 32)?; // read 8 bytes at offset 32

    Ok(())
}

No runtime deps