4.0.1
The new v4 of CML contains a lot more code generated using cddl-codegen
Major features
- New native rust interface! No more need to use an ugly WASM interface when writing a Rust-native library. You can find the crates for all our packages at the bottom of this post
- Conway era support! Conway is the next era of Cardano. Learn more about the specification changes here
- Fixed memory leaks! Previously when using CML with JS, you had to manually manage memory or you would get memory leakage. This is no longer necessary.
Minor features
- CIP25 and CIP36 support are now packaged as part of CML. This is enabled since these specifications have a CDDL specification (so we can easily codegen them) and thanks to our native Rust interface support, composing different specs like this becomes much easier in Rust
- New
multi-era
crate for projects that want more explicit multi-era support instead of just the latest version of Cardano (note: the library size for this package is larger)
Bug fixes
There are a few bug fixes that come with the new codegen tool as well as some manual patches to part of the code where cardano-node deviated from the specification temporarily.
Packages
Native Rust crates
https://crates.io/crates/cml-core
https://crates.io/crates/cml-crypto
https://crates.io/crates/cml-chain
https://crates.io/crates/cml-cip25
https://crates.io/crates/cml-cip36
https://crates.io/crates/cml-multi-era
WASM crates
https://crates.io/crates/cml-core-wasm
https://crates.io/crates/cml-crypto-wasm
https://crates.io/crates/cml-chain-wasm
https://crates.io/crates/cml-cip25-wasm
https://crates.io/crates/cml-cip36-wasm
https://crates.io/crates/cml-multi-era-wasm
Wrapper crate providing the old CML interface for the new libraries
https://crates.io/crates/cardano-multiplatform-lib
NPM
NodeJS: https://www.npmjs.com/package/@dcspark/cardano-multiplatform-lib-nodejs
Browser: https://www.npmjs.com/package/@dcspark/cardano-multiplatform-lib-browser
Note: asmjs is not updated yet (but we discourage asmjs usage anyway)