confined_encoding

Crates.ioconfined_encoding
lib.rsconfined_encoding
version0.9.0-alpha.5
sourcesrc
created_at2022-11-16 21:02:18.207719
updated_at2022-12-07 14:31:02.368646
descriptionConfined encoding: deterministic binary serialization for client-side validation
homepagehttps://github.com/LNP-BP
repositoryhttps://github.com/LNP-BP/client_side_validation
max_upload_size
id716705
size82,088
Dr. Maxim Orlovsky (dr-orlovsky)

documentation

README

Confined encoding library

Build Tests Lints codecov

crates.io Docs unsafe forbidden Apache-2 licensed

Deterministic binary serialization for consenus-critical applications in client-side-validation.

This library is based on strict encoding standard, defined by LNPBP-7. Strict encoding is a binary conservative encoding extensively used in client-side-validation for deterministic portable (platform-independent) serialization of data with a known internal data structure. Strict encoding is a schema-less encoding.

Client-side-validation is a paradigm for distributed computing, based on top of proof-of-publication/commitment medium layer, which may be a bitcoin blockchain or other type of distributed consensus system.

The development of the library is supported by LNP/BP Standards Association.

The library is designed after Peter Todd ideas for client-side-validated data serialization by Dr Maxim Orlovsky, who shaped the ideas into the standards and implemented them as a part of this library.

Documentation

Detailed developer & API documentation for the library can be accessed at https://docs.rs/confined_encoding/

To learn about the technologies enabled by the library please check slides from our tech presentations and LNP/BP tech talks videos

Usage

To use the library, you just need to reference a latest version, in [dependencies] section of your project Cargo.toml.

confined_encoding = "2.0"

If you are using other client-side-validation libraries, consider importing just a single client_side_validation library which re-exports all of them, including the current one.

Library defines two main traits, [ConfinedEncode] and [ConfinedDecode], which should be implemented on each type that requires to be represented for client-side-validation.

Library exports derivation macros #[derive(ConfinedEncode, ConfinedDecode)], which are a part of confined_encoding_derive sub-crate and controlled by a default feature derive.

Contributing

Contribution guidelines can be found in CONTRIBUTING

Licensing

The libraries are distributed on the terms of Apache 2.0 opensource license. See LICENCE file for the license details.

Commit count: 1245

cargo fmt