#database #encoding #key-value #kv-store #serialization

storekey

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

6 releases (breaking)

0.5.0 Apr 28, 2023
0.4.1 Mar 26, 2023
0.4.0 Jan 14, 2023
0.3.0 Jun 25, 2022
0.1.0 Mar 16, 2022

#173 in Encoding

Download history 791/week @ 2023-02-08 804/week @ 2023-02-15 953/week @ 2023-02-22 1268/week @ 2023-03-01 1312/week @ 2023-03-08 1219/week @ 2023-03-15 1288/week @ 2023-03-22 1470/week @ 2023-03-29 1487/week @ 2023-04-05 1524/week @ 2023-04-12 2124/week @ 2023-04-19 2308/week @ 2023-04-26 2281/week @ 2023-05-03 1958/week @ 2023-05-10 2318/week @ 2023-05-17 1757/week @ 2023-05-24

8,561 downloads per month
Used in 18 crates (2 directly)

Apache-2.0

40KB
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.8–1.5MB
~33K SLoC