13 releases

0.8.2 Nov 8, 2021
0.8.0 Apr 8, 2021
0.7.4 Mar 8, 2021
0.7.3 Aug 11, 2020
0.5.4 Jul 14, 2019

#685 in Encoding

Download history 192/week @ 2024-09-23 139/week @ 2024-09-30 196/week @ 2024-10-07 140/week @ 2024-10-14 108/week @ 2024-10-21 152/week @ 2024-10-28 168/week @ 2024-11-04 38/week @ 2024-11-11 134/week @ 2024-11-18 61/week @ 2024-11-25 101/week @ 2024-12-02 338/week @ 2024-12-09 382/week @ 2024-12-16 8/week @ 2024-12-23 91/week @ 2024-12-30 217/week @ 2025-01-06

702 downloads per month
Used in sonnerie

MIT license

87KB
2K SLoC

rust-shardio

Crates.io Downloads Crates.io Version Crates.io License Build Status Coverage Status API Docs

Library for out-of-memory sorting of large datasets which need to be processed in multiple map / sort / reduce passes.

You write a stream of items of type T implementing Serialize and Deserialize to a ShardWriter. The items are buffered, sorted according to a customizable sort key, then serialized to disk in chunks with serde + lz4, while maintaining an index of the position and key range of each chunk. You use a ShardReader to stream through a item in a selected interval of the key space, in sorted order.

See Docs for API and examples.

Note: Enable the 'full-test' feature in Release mode to turn on some long-running stress tests.

Dependencies

~2.3–3.5MB
~70K SLoC