catwalk

Crates.iocatwalk
lib.rscatwalk
version0.1.0
sourcesrc
created_at2020-11-22 03:36:10.642379
updated_at2020-11-22 03:36:10.642379
descriptionAn API for structured data in kv databases.
homepage
repositoryhttps://github.com/russells-crockpot/catwalk
max_upload_size
id314903
size13,947
Brendan McGloin (russells-crockpot)

documentation

README

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
Commit count: 0

cargo fmt