1 unstable release
0.1.0 | Nov 22, 2020 |
---|
#73 in #persistence
Used in 2 crates
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