Giter Site home page Giter Site logo

transmog's Introduction

Transmog

Universal data serialization utilities for Rust.

Transmog forbids unsafe code crate version Live Build Status HTML Coverage Report for main branch Documentation for main branch

Rust has a vibrant ecosystem chock full of serialization crates. Many crates implement a common set of traits via Serde, but other crates can not or chose not to support Serde.

At the end of the day, however, most serialization formats can be interacted with in a generic fashion. The Format trait aims to be the universal serialization trait for any crate that can serialize from a std::io::Read and deserialize from a std::io::Write.

Status of this project

We are currently at the experimentation phase of creating this ecosystem. All constructive criticism, format requests, and questions are welcome on Github Issues. We are looking to use this crate as a strategy of offering versioned data support in BonsaiDb as well as customizable serialization support for Fabruic.

Serialization format support

We accept pull requests for any moderately stable serialization API.

Utilities for migrating data structures

Sometimes a breaking change is unavoidable. Perhaps, you've decided a different format is better for your situation. Or, you refactored your structure so much that serde's built-in attributes aren't enough to help. transmog-versions to the rescue!

The transmog-versions crate provides APIs that allow you to treat your currently stored data as "version 0" and provide the logic for handling loading each version of data.

Plans to add a derive macro to remove even more boilerplate code is planned.

Serializing/Deserializing from a futures::Stream

The transmog-async crate is a fork of async-bincode, altered to support the Format trait.

Open-source Licenses

This project, like all projects from Khonsu Labs, are open-source. This repository is available under the MIT License or the Apache License 2.0.

To learn more about contributing, please see CONTRIBUTING.md.

transmog's People

Contributors

ecton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.