Crates.io | confined_encoding_derive |
lib.rs | confined_encoding_derive |
version | 0.9.0-alpha.2 |
source | src |
created_at | 2022-11-16 21:00:54.589448 |
updated_at | 2022-11-25 20:01:09.276593 |
description | Strict encoding derivation macros |
homepage | https://github.com/LNP-BP |
repository | https://github.com/LNP-BP/client_side_validation |
max_upload_size | |
id | 716702 |
size | 39,006 |
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.
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
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
.
Contribution guidelines can be found in CONTRIBUTING
The libraries are distributed on the terms of Apache 2.0 opensource license. See LICENCE file for the license details.