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-wasmmodules 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_witnessthat 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
nixpkgsand 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