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

storekey

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

13 releases (breaking)

Uses new Rust 2024

0.11.0 Dec 8, 2025
0.10.0 Nov 27, 2025
0.9.0 Oct 29, 2025
0.6.0 Apr 4, 2025
0.1.0 Mar 16, 2022

#241 in Encoding

Download history 10999/week @ 2025-08-26 11009/week @ 2025-09-02 12708/week @ 2025-09-09 10562/week @ 2025-09-16 10235/week @ 2025-09-23 11066/week @ 2025-09-30 10025/week @ 2025-10-07 10529/week @ 2025-10-14 11381/week @ 2025-10-21 11335/week @ 2025-10-28 10242/week @ 2025-11-04 9050/week @ 2025-11-11 12608/week @ 2025-11-18 12139/week @ 2025-11-25 14816/week @ 2025-12-02 15035/week @ 2025-12-09

56,321 downloads per month
Used in 115 crates (9 directly)

Apache-2.0

72KB
1.5K 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, MemoDB, IndxDB, SurrealKV, 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–400KB