#file-line #line #reverse #iterator #file-reader #buffer #reader

rev_lines

Rust Iterator for reading files line by line with a buffer in reverse

5 unstable releases

0.3.0 Jun 22, 2023
0.2.2 May 10, 2023
0.2.1 Apr 27, 2017
0.2.0 Feb 1, 2017
0.1.0 Feb 1, 2017

#504 in Algorithms

Download history 2962/week @ 2024-11-16 1721/week @ 2024-11-23 1761/week @ 2024-11-30 2063/week @ 2024-12-07 1426/week @ 2024-12-14 959/week @ 2024-12-21 731/week @ 2024-12-28 1681/week @ 2025-01-04 2180/week @ 2025-01-11 1993/week @ 2025-01-18 2159/week @ 2025-01-25 3783/week @ 2025-02-01 4187/week @ 2025-02-08 2546/week @ 2025-02-15 3189/week @ 2025-02-22 2952/week @ 2025-03-01

13,547 downloads per month
Used in 12 crates (11 directly)

MIT license

17KB
264 lines

rev_lines

rev-lines MIT licensed crates.io

This library provides a small Rust Iterator for reading files line by line with a buffer in reverse

Documentation

Documentation is available on Docs.rs.

Example

use std::fs::File;

use rev_lines::RevLines;

let file = File::open("README.md").unwrap();
let rev_lines = RevLines::new(file);

for line in rev_lines {
    println!("{:?}", line);
}

lib.rs:

RevLines

This library provides a small Rust Iterator for reading files or any BufReader line by line with buffering in reverse.

Example

use std::fs::File;

use rev_lines::RevLines;

let file = File::open("README.md").unwrap();
let rev_lines = RevLines::new(file);

for line in rev_lines {
    println!("{:?}", line);
}

If a line with invalid UTF-8 is encountered, the iterator will return None next, and stop iterating.

This method uses logic borrowed from uutils/coreutils tail

Dependencies

~200–640KB
~15K SLoC