#key-value-store #database #serialization #key-value-database

storekey

Lexicographic sort-order preserving binary encoding format for key-value stores

7 releases (breaking)

new 0.6.0 Apr 4, 2025
0.5.0 Apr 28, 2023
0.4.1 Mar 26, 2023
0.4.0 Jan 14, 2023
0.1.0 Mar 16, 2022

#257 in Encoding

Download history 7375/week @ 2024-12-15 3757/week @ 2024-12-22 3894/week @ 2024-12-29 7272/week @ 2025-01-05 8061/week @ 2025-01-12 8008/week @ 2025-01-19 5929/week @ 2025-01-26 7654/week @ 2025-02-02 7736/week @ 2025-02-09 7284/week @ 2025-02-16 8175/week @ 2025-02-23 7338/week @ 2025-03-02 9321/week @ 2025-03-09 8763/week @ 2025-03-16 6791/week @ 2025-03-23 7920/week @ 2025-03-30

33,412 downloads per month
Used in 90 crates (8 directly)

Apache-2.0

41KB
1K SLoC


Storekey Logo Storekey Logo

Binary encoding for Rust values which ensures lexicographic sort ordering. Order-preserving encoding is useful for creating keys for sorted key-value stores with byte string typed keys, such as EchoDB, YokuDB, IndxDB, TiKV, and SurrealDB.


     

Features

  • Binary encoding whilst preserving lexicographic sort order
  • Useful for creating keys for sorted key-value data stores
  • Aims to encode values into the fewest number of bytes possible
  • The exact type of a serialized value must be known in order to deserialize it
  • Supports all Rust primitives, strings, options, structs, enums, vecs, and tuples

Original

This code is forked originally from bytekey-fix, which is originally forked from bytekey, both licensed under the Apache License 2.0 license. See LICENSE for full license text.

Dependencies

~0.5–1.3MB
~26K SLoC