21 releases
0.8.0 | Mar 19, 2024 |
---|---|
0.8.0-alpha | Jul 29, 2021 |
0.7.5 | Feb 28, 2023 |
0.7.3 | Jan 24, 2022 |
0.0.4 | Jul 30, 2019 |
#151 in Encoding
5,424 downloads per month
Used in 103 crates
(15 directly)
13KB
354 lines
Molecule
Another serialization system: minimalist and canonicalization.
Documents
Features
default
— Default features:std
, utilizesfaster-hex
for hexadecimal operations and enables bytes standard features.std
(enabled by default) — Default features:std
, utilizesfaster-hex
for hexadecimal operations and enables bytes standard features.bytes_vec
- Introduced in version 0.8, the 0.8 molecule defaults to bytes, which has implications for use in the CKB runtime. Thebytes_vec
feature provides users with a compatibility option to maintain consistency with previous versions.
Use in CKB scripts
When used in CKB scripts, no-std needs to be specified.
molecule = { version = "0.7", default-features = false }
Particularly, for versions later than 0.8, you need to additionally specify the bytes_vec feature.
molecule = { version = "0.8.0", default-features = false, features = ["bytes_vec"] }
Tools
Schema Compiler and Code Generator
Install
The official schema compiler and code generator are written in Rust, so you can install it via Cargo:
cargo install moleculec --locked
Note: the official code generator is only support two languages: Rust and C.
Usage
-
You can use the follow command to generate the code:
moleculec --language <language> --schema-file <schema-file>
-
More details can be found by the follow command:
moleculec --help
Other Languages
Molecule's reference implementation is in Rust and C.
Implementations in other languages are maintained by respective authors.
Plugins for Editors
Benchmark
Supported Rust Versions
The minimum supported version is 1.56.1. The current Molecule version is not guaranteed to build on Rust versions earlier than the minimum supported version.
License
Licensed under MIT License.
Dependencies
~200KB