An efficient async Rust library for reading and processing JSON Lines (JSONL) files using Tokio streams.
This project is organized as a Rust workspace with multiple crates:
crates/async_jsonl/- The main library crate providing async JSONL processing functionalitycrates/async_rev_buf/- High-performance async reverse buffer reader (8+ million lines/sec)crates/async_jsonl_ci/- CI-specific utilities and tests
examples/- Additional example files and demonstrationsLICENSE- Project license informationCargo.toml- Workspace configurationrelease-plz.toml- Release automation configuration
For detailed usage examples and API documentation, see the main library README.
- Async/Await: Built on Tokio for efficient async I/O
- Memory Efficient: Stream-based processing without loading entire files
- Type Safe: Full serde integration for type-safe deserialization
- Error Resilient: Continue processing even when individual lines fail
- Flexible Input: Works with files, memory, or any
AsyncReadsource
- High Performance: 8-9 million lines/sec reverse reading throughput
- Best-in-Class: 2.4-2.5x faster than existing async alternatives
- Streaming Interface: Clean
lines().next_line().awaitpattern following tokio conventions - Memory Efficient: Fixed buffer size with minimal allocations
- Unicode Support: Proper handling of UTF-8 text and various line endings
This workspace uses Cargo's workspace feature to manage multiple related crates. To build all crates:
cargo build --workspaceTo run all tests:
cargo test --workspaceSee LICENSE for details.