Skip to content

Releases: vacp2p/zerokit

Nightly build ("master" branch)

23 Feb 00:51
3d9ff51

Choose a tag to compare

Pre-release

What's Changed

  • test: RLN proof verification failure cases by @romanzac in #363
  • chore: update Cargo.lock for rln and version of circom-witnesscalc by @vinhtc27 in #364
  • feat(rln): improve graph initialization by deserialize only once by @vinhtc27 in #368
  • test: Rate-limit validation and resource error tests by @romanzac in #365
  • test: Merkle invalid proof and PM tree coverage tests by @romanzac in #367
  • chore: Test coverage report for CI by @romanzac in #371
  • chore: fix example in Readme, update Cargo.lock, cleanup import by @vinhtc27 in #374
  • test: Improve coverage for protocol and circuit modules by @romanzac in #372
  • feat(docs): provide pull request template by @seemenkina in #377

New Contributors

Full Changelog: v1.0.0...nightly

Release v1.0.0

19 Dec 09:26
2071346

Choose a tag to compare

Zerokit v1.0.0 has arrived!

This isn’t just a version bump; this is a major milestone for the project. We’ve spent a lot of time under the hood cleaning up the architecture, unifying how our types work, and making sure the library is rock-solid for production.

Here is the lowdown on what we’ve been working on.

The Great Refactor (API & Types)

The biggest change in v1.0.0 is a massive unification effort. Previously, our FFI, WASM, and Rust APIs sometimes felt like distant cousins. We’ve brought them all under one roof.

  • Unified RLN Types: We aligned the types across the board. Whether you are using Rust, WASM, or FFI, the data structures and serialization logic now behave consistently.
  • Cleaner APIs: We refactored the public interfaces to make them more intuitive and simplified how we handle errors.
  • Documentation: We’ve updated the docs and examples to match this new reality, so getting started should be much smoother.

WebAssembly Improvements

For those of you running Zerokit in the browser:

  • No more Buffers: We reworked the rln-wasm modules to move away from buffer-based serialization in favor of a cleaner approach.
  • Parallel Package: We split out the parallel WASM package, giving you more flexibility in how you bundle and deploy for the web.

Other Improvements

  • Memory Leak Fix: We found a tricky memory leak in calc_witness that could cause issues over long-running processes. We patched the leak and improved the pattern for how we handle memory deallocation in the FFI. It’s much tighter now.
  • Nix Love: We bumped nixpkgs and added a binary cache, so if you're using Nix, your builds should be snappier.

What's Changed

  • Update zerokit-utils to version 0.7.0 in utils/README.md file by @sydhds in #348
  • chore: use rust nightly-2025-09-24 until patch version release by @vinhtc27 in #351
  • Set ruint dependency with fewer features by @sydhds in #349
  • nix: bump nixpkgs and add binary cache by @jakubgs in #346
  • Add initial code for ffi rework by @sydhds in #337
  • fix(rln): resolve memory leak in calc_witness and improve FFI memory deallocation pattern by @vinhtc27 in #354
  • feat(wasm): rework rln-wasm and rln-wasm-utils modules, remove buffer-based serialization, and update public.rs and protocol.rs accordingly by @vinhtc27 in #352
  • feat: unify RLN types, refactor public APIs, add full (de)serialization, align FFI/WASM/APIs, simplify errors, update docs/examples, and clean up zerokit by @vinhtc27 in #355
  • fix(ci): nightly build failed due to incorrect config flag for pm_tree_adapter by @vinhtc27 in #357
  • feat(rln): extend error handling for rln module by @vinhtc27 in #358
  • fix(ci): nightly build failed due to import paths for zerokit_utils::merkle_tree in poseidon_tree.rs file by @vinhtc27 in #359
  • feat(rln-wasm): seperate rln wasm parallel package by @vinhtc27 in #360
  • Release v1.0.0 by @seemenkina in #361

Full Changelog: v0.9.0...v1.0.0

v0.9.0

30 Sep 13:18
a4bb3fe

Choose a tag to compare

Zerokit v0.9.0

Highlights

  • WASM: stateless mode is now default, added parallel tests, extracted RLN WASM utility functions (generation & hashing) into a separate module, removed extra dependencies.
  • RLN: new builder pattern for PmTreeConfig, clearer feature flags, fixed nightly builds.
  • Merkle trees: consistent naming, improved docs.
  • Build & CI: feature-specific binaries, arkzkey default, Nix build support, CI improvements.
  • Docs: added detailed CONTRIBUTING.md.
  • Other: add IdSecret implementation for sensitive information, minor performance optimizations.

What's Changed

  • Use Vec::with_capacity for bytes_le_to_vec_fr by @sydhds in #321
  • feat: use stateless as default feature for rln in wasm module by @vinhtc27 in #322
  • Initial impl for IdSecret by @sydhds in #320
  • Add pmtree delete function docstring by @sydhds in #324
  • feat: restore parallel flag, improve CI, resolve clippy warnings, bump deps by @vinhtc27 in #325
  • feat: support feature-specific binary generation and make arkzkey the default by @vinhtc27 in #326
  • feat: resolve overlap between stateless and merkletree feature flags by @vinhtc27 in #329
  • feat: add wasm parallel testcase and simplify the witness_calculator.js by @vinhtc27 in #328
  • feat(rln-wasm-utils): extracting the generation and hash functions into a separate module by @seemenkina in #332
  • chore: consistent naming and update docs for merkle trees by @vinhtc27 in #333
  • docs: add comprehensive CONTRIBUTING.md with contributing guidelines by @joewnga in #331
  • chore: remove cmake due to CI error and skip tests and benchmarks on draft pull requests by @vinhtc27 in #339
  • feat(rln): improve the PmTreeConfig initialization process with builder pattern by @vinhtc27 in #334
  • chore(rln-wasm): remove wasm-bindgen-cli installation by @vinhtc27 in #341
  • Allow flake to be consumed, and nix build .#rln by @0xc1c4da in #340
  • fix(rln): fixed fail nightly build and updated CONTRIBUTING.md and Cargo.lock by @vinhtc27 in #342
  • fix(ci): update binary name generaion in CI by @seemenkina in #344
  • Release v0.9.0 by @seemenkina in #345

New Contributors

Full Changelog: v0.8.0...v0.9.0

v0.8.0

05 Jun 09:44
dc0b317

Choose a tag to compare

Zerokit v0.8.0 – What's New?

This release focuses on significant performance enhancements, improved developer experience and return back WASM module.

New Features

  • RLN-WASM Now Supports Parallel Execution: The rln-wasm module has been upgraded to enable parallel execution, leading to significant performance gains in WebAssembly environments.
  • Parallel Execution for Merkle Trees: The Merkle Tree implementation now also supports parallel execution, improving performance for tree-related computations.

Performance Improvements

  • Merkle Tree Performance Fix: A performance issue in the Merkle trees related to the set_range and override_range functions has been resolved, improving the efficiency of tree update operations.

Developer Experience

  • Nix Flake and Derivation Added: The project now includes a Nix flake and derivation, making builds more reproducible and development environments easier to manage.
  • Updated Dependencies: Updated versions of used libraries and removed all unnecessary libraries, which allowed to significantly reduce the project build time
  • Error Handling Improvement: Updated error handling to make it easier to use zerokit as a library and also fixed a bug where the compute_id_secret function was crashing instead of returning an error when the data was the same.

Documentation

  • New Merkle Tree Glossary: A glossary for Merkle trees, including a Mermaid graph example, has been added to the documentation to clarify concepts for developers.

What's Changed

  • nix: add flake and derivation by @markoburcul in #275
  • feat(rln-wasm): porting the rln-wasm feature from v0.6.1 to v0.7.0 by @vinhtc27 in #292
  • Add poseidon hash unit test (against ref values) by @sydhds in #299
  • fix(tree): fix OptimalMerkleTree set_range & override_range performance issue by @sydhds in #295
  • Add poseidon hash benchmark + optim by @sydhds in #300
  • Add merkle tree glossary + mermaid graph example by @sydhds in #298
  • feat(rln-wasm): enable parallel execution for rln-wasm module by @vinhtc27 in #296
  • feat(utils): enable parallel execution for Merkle Tree by @vinhtc27 in #306
  • Add rust overlay and update shell dependencies by @markoburcul in #302
  • nix: use rust tooling from rust-overlay for builds by @jakubgs in #312
  • nix: add RLN targets for different platforms by @jakubgs in #313
  • Eyre removal 2 by @sydhds in #311
  • Add error for return type of compute_id_secret function by @sydhds in #316
  • Remove not explicit use statement by @sydhds in #317
  • docs: prepare documentation to release v0.8.0 by @seemenkina in #315

New Contributors

Full Changelog: v0.7.0...v0.8.0

v0.7.0

14 Mar 14:56
ba467d3

Choose a tag to compare

Zerokit v0.7.0 – What's New?

This release brings several improvements, fixes, and updates:

  • Major Enhancements

    • Witness calculation updated: The old witness calculator has been replaced with iden3's implementation, improving efficiency.
    • Circuit compilation improved: Resolved parameter mismatches for more customizable builds.
    • Improved CLI: The RLN CLI now has better configuration handling and new examples.
  • Fixes & Optimizations

    • Better RLN utilities: Reviewed and refined utility functions for RLN.
    • Dependency updates: Latest versions applied to stay up-to-date.
  • Documentation & Maintenance

    • README and docs updated to reflect the new changes.
    • Minor code cleanup and comment refinements.

What's Changed

  • Freeze rust version by @seemenkina in #272
  • Replace the ark-zkey witness calculator with the one of iden3 by @AlekseiVambol in #273
  • chore: remove redundant words in comment by @withbest in #274
  • chore: Update dependencies to latest versions by @seemenkina in #276
  • chore(release): v0.6.1 by @seemenkina in #281
  • ci: fixed problem with nightly build after updating dependencies by @seemenkina in #283
  • fix(rln-cli): improve configuration handling, add relay and stateless example by @vinhtc27 in #280
  • fix: pin ark-circom version and solve local building problem by @seemenkina in #285
  • feat(rln): Add custom iden3 graph data support for RLN by @seemenkina in #286
  • fix(rln): review and refine utility functions in rln by @vinhtc27 in #287
  • docs: prepare Readme and documentation for new release by @seemenkina in #284
  • Resolve circuit parameter mismatch for customizable compilation by @vinhtc27 in #288
  • release(rln): update version to 0.7.0 in Cargo.toml and Cargo.lock by @seemenkina in #290
  • chore(rln): update dependencies and refactor code for compatibility by @seemenkina in #291

New Contributors

Full Changelog: v0.6.0...v0.7.0

v0.6.1

19 Feb 11:50
88f8a80

Choose a tag to compare

This release contains necessary edits for stable operation of the current version of rln-wasm. In the next release rln-wasm will be deprecated and a new version will go into development

What's Changed

v0.6.0

18 Nov 11:20
b9d2703

Choose a tag to compare

The new introduces several key updates, with a focus on the stateless feature for the RLN module:

  • Stateless RLN Feature: This feature removes the dependency on Merkle trees, simplifying the implementation. The stateless mode provides APIs for generating and verifying proofs, along with utility functions such as the Poseidon hasher.
  • Integration with RLN-WASM: The stateless implementation is integrated into the RLN-WASM module. The RLN-WASM APIs have been updated to align with this stateless design, ensuring better modularity and usability.
  • Performance Improvements: Updates include optimizations in handling uncompressed keys with Arkworks, reducing program runtime during file reads. The benchmarks indicate significant efficiency gains with these changes.

Some tasks related to replacing zkeys and auditing RLN-WASM have been deferred to version 0.7.0 to maintain focus on stability and core improvements in this release.

What's Changed

Full Changelog: v0.5.1...v0.6.0

v0.5.1

29 May 10:56
85d71a5

Choose a tag to compare

What's Changed

Full Changelog: v0.5.0...v0.5.1

v0.5.0

21 May 06:22
7790954

Choose a tag to compare

What's Changed

  • chore(rln): tests and benchmarks review by @seemenkina in #243
  • chore(rln) : Update documentation for rln-v2 to include new serde format by @seemenkina in #245
  • fix(rln): Remove resources folder, update missed docs by @seemenkina in #246
  • Expose a public function to fetch the root of a subtree at level n by @seemenkina in #247
  • Add function for checking indices of leaves which are set to zero by @seemenkina in #249
  • Replace arkzkey git submodule to library by @seemenkina in #251
  • Fix json serialization and update corresponding test by @seemenkina in #253
  • chore: Release by @rymnc in #254

Full Changelog: v0.4.4...v0.5.0

v0.4.4

08 May 05:17
cd60af5

Choose a tag to compare

What's Changed

  • chore(rln): add QoL traits to the Hasher associated type in MerkleTree trait by @rymnc in #238
  • Remove height 32 from RLN by @tyshko-rostyslav in #239
  • fix(makefile): include wasm-pack+node in installation by @rymnc in #240
  • fix(rln-wasm): dont run benchmarks by @rymnc in #241
  • chore(rln): add ark-zkey support by @seemenkina in #242
  • chore(ci): add arkzkey feature to nightly assets by @rymnc in #244

New Contributors

Full Changelog: v0.4.3...v0.4.4