#read-line #file-line #index-file #indexed #indexable #async #read-by-line

indexed_file

A library to index and read large files by its lines efficiently

3 releases

0.1.2 Jul 31, 2021
0.1.1 Jul 25, 2021
0.1.0 Jul 11, 2021

#2 in #indexable


Used in split-csv

AGPL-3.0

51KB
604 lines

IndexedFile

A library to read lines of a file directly without having to read more than the requested line.

Example

Non indexed files

use indexed_file::{Indexable, ReadByLine};

#[async_std::main]
async fn main() {
    // Open and index a file
    let mut file = indexed_file::File::open_raw("<some unindexed file>")
        .await
        .unwrap();

    // Get line count efficiently without reading the entire file
    let line_count = file.total_lines();

    // Read line 30 directly
    let line_30 = file.read_line(30).await.unwrap();
}

Indexed files

use indexed_file::{Indexable, ReadByLine};

#[async_std::main]
async fn main() {
    // Open an indexed file
    let mut file = indexed_file::File::open("<some indexed file>")
        .await
        .unwrap();

    // Read line 30 directly
    let line_30 = file.read_line(30).await.unwrap();
}

For more examples visit the examples directory.

No runtime deps