NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #5096 most downloaded on crates.io
Implementation of the Jubjub elliptic curve group
Last release 15 days ago
23 Sep 2026
Ships unpredictably
gaps range from 2 weeks to 3.6 years
Most releases are documented
notes for 12 of 14 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
14 releases · first in 2018
zeroize feature flag, which enables impl zeroize::DefaultIsZeroes for Fr, AffinePoint, ExtendedPoint and SubgroupPoint, and turns on bls12_381/zeroize
zeroize feature flag, which enables impl zeroize::DefaultIsZeroes for Fr,
AffinePoint, ExtendedPoint and SubgroupPoint, and turns on bls12_381/zeroize
so that Fq is covered too. Zeroizing a field element sets it to zero; zeroizing
a point sets it to the identity.Bumped dependencies to bls12_381 0.9, ff 0.14, group 0.14, rand_core 0.10.
1.85.0bls12_381 0.9, ff 0.14, group 0.14, rand_core 0.10.One column per quarter.
Bumped dependencies to bls12_381 0.8, ff 0.13, group 0.13.
bls12_381 0.8, ff 0.13, group 0.13.Bumped dependencies to bls12_381 0.7, ff 0.12, group 0.12, bitvec 1.0.
1.56.0bls12_381 0.7, ff 0.12, group 0.12, bitvec 1.0.jubjub::Base, as an alias for jubjub::Fq.
jubjub::Base, as an alias for jubjub::Fq.jubjub::AffinePoint::batch_from_bytes, which enables the inversion inside
jubjub::AffinePoint::from_bytes to be batched.bls12_381 0.6, ff 0.11, group 0.11.A bug in the jubjub::{AffinePoint, ExtendedPoint, SubgroupPoint}::from_bytes APIs (and their group::GroupEncoding implementations) has been fixed. The
jubjub::{AffinePoint, ExtendedPoint, SubgroupPoint}::from_bytes
APIs (and their group::GroupEncoding implementations) has been fixed. The
APIs were documented as rejecting non-canonical points, but were accidentally
accepting two specific non-canonical encodings. This could potentially cause a
problem in consensus-critical protocols that expect encodings to be round-trip
compatible (i.e. AffinePoint::from_bytes(b).unwrap().to_bytes() == b). See
ZIP 216 for more details.
jubjub::AffinePoint::from_bytes_pre_zip216_compatibility
preserves the previous behaviour, for use where consensus compatibility is
required.bitvec 0.22, bls12_381 0.5, ff 0.10,
group 0.10.Bumped dependencies to bitvec 0.20, bls12_381 0.4, ff 0.9, group 0.9, rand_core 0.6.
bitvec 0.20, bls12_381 0.4, ff 0.9, group 0.9,
rand_core 0.6.Nothing published for this version
This upgrade bumps our dependencies bls12_381, group and ff, while making corresponding changes to the APIs. This release now only supports Rust compi
This upgrade bumps our dependencies bls12_381, group and ff, while making
corresponding changes to the APIs. This release now only supports Rust compilers
version 1.44.0 or later.
This release adds implementations of the ff and group traits. Additional trait implementations (for standard traits) have been added where the ff and
This release adds implementations of the ff and group traits. Additional trait
implementations (for standard traits) have been added where the ff and group trait
bounds require them.
jubjub::SubgroupPoint, which represents an element of Jubjub's prime-order subgroup.
It implements the following traits:
group::{Group, GroupEncoding}group::prime::PrimeGroupjubjub::ExtendedPoint:
group::{Curve, Group, GroupEncoding, WnafGroup}group::cofactor::{CofactorCurve, CofactorGroup}jubjub::AffinePoint:
group::GroupEncodinggroup::cofactor::CofactorCurveAffinejubjub::Fr:
ff::{Field, PrimeField}jubjub::AffinePoint::is_identityjubjub::AffinePoint::to_extendedjubjub::Scalar, as an alias for jubjub::Fr.bls12_381 0.2.rand_core is now a regular dependency.byteorder crate again, as it is part of the ff::PrimeField trait.criterion.0.3.0 release of the jubjub crate.
0.3.0 release of the jubjub crate.
This release now depends on the bls12_381 crate, which exposes the Fq field type that we re-export.
Fq and Fr field types now have better constant function support for various operations and constructors.byteorder crate.rand_core dev-dependency up to 0.5.std and nightly features.subtle up to ^2.2.1.0.2.0 release of the jubjub crate.
0.2.0 release of the jubjub crate.
This release switches to subtle 2.1 to bring in the CtOption type, and also makes a few useful API changes.
Mul<Fr> for AffineNielsPoint and ExtendedNielsPointAffinePoint::to_niels() to be a const function so that constant curve points can be constructed without statics.multiply_bits for AffineNielsPoint, ExtendedNielsPointCtOption and replaced it with CtOption from subtle crate.into_bytes methods into to_bytesInitial release of jubjub crate.
Initial release of jubjub crate.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →