1 unstable release

0.1.0 Nov 22, 2020

#73 in #persistence


Used in 2 crates

MIT license

11KB
136 lines

Catwalk

Catwalk it intended to act as a common interface between a method of persistence (usually with a key/value database like sled) and a way to serialize structured data (such as via protobuf or json).

It achieves this by using models (hence the name) which describe/represent the data, serializers which serialize the data, and persistence engines, which stores and retrieves the data.

Additionally, each model is versioned to help maintain consistency.

This crates only contains the core API, leaving implementation up to other crates (see below).

NOTE: This crate as wel as ones mentioned below are still very much works in progress.

TODO

  • Support transactions
  • Add Tests

Implementing Crates

There are two types of implementing crates: serialization crates and persistence crates.

Serialization Crates

Serialization crates start with a catwalk-s- followed by the data format (e.g. protobuf, json, etcetera). These crates define how to change models into bytes and back again.

Current crates are listed below:

Name Data Format Status
catwalk-s-protobuf protobuf Work In Progress

Persistence Crates

Persistence crates start with a catwalk-p- followed by the name of how it's being stored (usually a database like sled).

Current crates are listed below:

Name Backend Status
catwalk-p-sled sled Work In Progress

Dependencies

~1.8–9.5MB
~92K SLoC