An open API service indexing awesome lists of open source software.

https://github.com/acj/file-chunker

Divide a file into evenly-sized chunks
https://github.com/acj/file-chunker

chunking concurrency parallel text-processing

Last synced: 3 months ago
JSON representation

Divide a file into evenly-sized chunks

Awesome Lists containing this project

README

          

# file-chunker

[crates.io](https://crates.io/crates/file-chunker)
[build status](https://github.com/acj/file-chunker/actions?query=branch%3Amain)

This crate provides the `FileChunker` type, which is useful for efficiently reading a file
in (approximately) equally-sized parts.

The original use case was to process a log file in chunks, one thread per chunk, and to
guarantee that each chunk ended with a full line of text.

## Example

```rust,no_run
use file_chunker::FileChunker;
let file = std::fs::File::open("/path/to/file").unwrap();
let chunker = FileChunker::new(&file).unwrap();
chunker.chunks(1024, Some('\n'))
.unwrap()
.iter()
.for_each(|chunk| {
println!("{:?}", chunk);
});
```