# 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 |