5 releases
0.9.0-alpha.5 | Dec 7, 2022 |
---|---|
0.9.0-alpha.4 | Nov 26, 2022 |
0.9.0-alpha.3 | Nov 25, 2022 |
0.9.0-alpha.2 | Nov 17, 2022 |
0.9.0-alpha.1 | Nov 16, 2022 |
#27 in #lnp-bp
Used in confined_encoding_test
72KB
1.5K
SLoC
Confined encoding library
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.
Dependencies
~10MB
~147K SLoC