Skip to content

v3.0.0

Latest

Choose a tag to compare

@seemenkina seemenkina released this 04 Aug 11:22
· 1 commit to master since this release
v3.0.0
27b67e0

Highlights

v3.0.0 is a full redesign of zerokit's internals, public API, and FFI/WASM boundaries. The headline change is that mode selection moved from compile-time feature flags to runtime and type-level configuration.
There are no longer stateless, multi-message-id, or tree-backend cargo features: state is now a type-state on RLN<State, ZkProof> (Stateful<T> / Stateless), the tree backend is a plain type parameter (FullMerkleTree, OptimalMerkleTree, PmTree), and single vs. multi message-id is a runtime enum on RLNWitnessInput / RLNProofValues.

The RLN object is constructed through a builder (RLNBuilder::stateful(tree) / RLNBuilder::stateless()), witnesses are built with typed builders (RLNWitnessInput::new_single() / new_multi()), serialization is unified behind a single Serialize/Deserialize trait family in protocol/serialize.rs, and the FFI surface was rewritten against the new API.

This is a breaking release for every downstream consumer.

What's Changed

  • refactor(PR 0): add message mode and remove multi message id flag by @vinhtc27 in #403
  • refactor(PR 4): implement all stateless RLN features by @vinhtc27 in #410
  • refactor(PR 5): implement missing stateless features and rln-wasm module by @vinhtc27 in #411
  • refactor(PR 6): implement stateful features, remove witness calc from JS, add new serialize trait and partial proof to rln-wasm by @vinhtc27 in #414
  • refactor(PR 7): cleanup old error type, redesign str-keyed map with CalcWitness/CalcWitnessPartial traits by @vinhtc27 in #416
  • refactor(PR 8): implement Builder pattern for RLNV3 type using external crate (bon) and update rln-cli module by @vinhtc27 in #417
  • refactor(PR 9): new V3 impl for FFI, migrate FFI/WASM utils to serialize trait and split and standardize C/Nim/JS examples by @vinhtc27 in #418
  • release(v3.0.0): full redesign of zerokit's public API, internals and FFI/WASM boundaries by @vinhtc27 in #428

Full Changelog: v2.0.1...v3.0.0