#post-quantum-cryptography #merkle-tree #polynomial #tip5

twenty-first

Collection of mathematics routines and cryptography for the twenty-first century

72 releases (1 stable)

Uses new Rust 2024

1.0.0 Oct 23, 2025
0.50.0 Jun 27, 2025
0.49.0 Jun 18, 2025
0.48.0 Feb 11, 2025
0.7.2 Nov 23, 2022

#102 in Cryptography

Download history 668/week @ 2025-08-26 598/week @ 2025-09-02 452/week @ 2025-09-09 293/week @ 2025-09-16 461/week @ 2025-09-23 464/week @ 2025-09-30 471/week @ 2025-10-07 914/week @ 2025-10-14 1090/week @ 2025-10-21 505/week @ 2025-10-28 540/week @ 2025-11-04 258/week @ 2025-11-11 293/week @ 2025-11-18 580/week @ 2025-11-25 996/week @ 2025-12-02 504/week @ 2025-12-09

2,453 downloads per month
Used in 14 crates (7 directly)

GPL-2.0 license

1MB
15K SLoC

twenty-first

GitHub CI crates.io Coverage Status

A collection of cryptography primitives written in Rust.

Content of this library

This library contains primarily the following cryptographic primitives:

Release protocol

While twenty-first's version is 0.x.y, releasing a new version:

  1. Is the release backwards-compatible? Then the new version is 0.x.y+1. Otherwise the new version is 0.x+1.0.
  2. Checkout the last commit on Mjolnir, and run make bench-publish. Save the benchmark's result and verify that there is no performance degradation.
  3. Create a commit that increases version = "0.x.y" in twenty-first/Cargo.toml. The commit message should give a one-line summary of each release change. Include the benchmark result at the bottom.
  4. Have a v0.x.y git tag on this commit created. (git tag v0.x.y [sha], git push upstream --tags)
  5. Have this commit cargo published on crates.io and in GitHub tags.

If you do not have the privilege to create git tags or run cargo publish, submit a PR and the merger will take care of these.

Dependencies

~5–7MB
~124K SLoC