Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Cryptography
  3. elliptic-curves

elliptic-curves

Rust

A collection of pure Rust elliptic curve implementations for NIST, secp256k1, SM2, and other standard curves.

GitHubGitHub
868 stars289 forks0 contributors

What is elliptic-curves?

RustCrypto Elliptic Curves is a collection of pure Rust implementations of standardized elliptic curves used in cryptography. It provides the foundational components for Elliptic Curve Cryptography (ECC), including types for curves, scalars, points, and keys, enabling developers to build secure cryptographic applications without relying on external C libraries.

Target Audience

Rust developers building cryptographic applications, embedded systems, or WebAssembly projects that require elliptic curve operations. It is particularly suited for those needing NIST, secp256k1, or SM2 curve support in a memory-safe, no-std environment.

Value Proposition

Developers choose this library for its pure Rust implementation, which eliminates safety risks associated with foreign code, and its no-std capability, making it versatile for embedded and WebAssembly use. It offers a modular, well-tested suite of curves under a permissive dual license.

Overview

Collection of pure Rust elliptic curve implementations: NIST P-224, P-256, P-384, P-521, secp256k1, SM2

Use Cases

Best For

  • Implementing digital signatures (ECDSA) in Rust applications
  • Building blockchain or cryptocurrency projects requiring secp256k1 support
  • Developing embedded systems with cryptographic security needs
  • Creating WebAssembly-based cryptographic tools
  • Academic or research projects exploring elliptic curve cryptography
  • Adding NIST-compliant encryption to Rust services

Not Ideal For

  • Projects requiring FIPS 140-2 validated cryptographic modules for regulatory compliance
  • Teams needing high-level, drop-in cryptographic APIs with minimal implementation effort
  • Applications where maximum performance from hand-optimized C libraries like libsecp256k1 is non-negotiable
  • Developers seeking comprehensive, beginner-friendly tutorials and out-of-the-box protocol implementations

Pros & Cons

Pros

Pure Rust Safety

All implementations are in pure Rust, eliminating memory safety risks from foreign C code and aligning with the project's emphasis on correctness and safety.

No-Std Versatility

Every crate is no-std capable, making it suitable for constrained environments like embedded systems or WebAssembly, as stated in the README.

Wide Curve Coverage

Supports multiple standardized curves including NIST P-256, secp256k1, SM2, and brainpool, covering diverse cryptographic needs from blockchain to government standards.

Modular Crate Design

Each curve is provided as a separate crate (e.g., `k256` for secp256k1), allowing developers to minimize dependencies and include only what they need.

Cons

Low-Level Abstraction

Provides only primitive ECC types and traits, requiring significant cryptographic expertise to implement full protocols like ECDSA or ECDH without additional libraries.

Sparse High-Level Features

Focuses on curve arithmetic; lacks built-in support for common cryptographic operations, forcing developers to piece together protocols themselves.

Documentation and Examples Gap

README is minimal with mostly crate links, and while documentation exists, it may lack practical examples, making onboarding challenging for newcomers.

Frequently Asked Questions

Quick Stats

Stars868
Forks289
Contributors0
Open Issues32
Last commit7 days ago
CreatedSince 2020

Tags

#webassembly#secp256k1#cryptography-library#taproot#elliptic-curve-cryptography#public-key-cryptography#ecdsa#rust#no-std#schnorr

Built With

R
Rust

Included in

Cryptography6.8k
Auto-fetched 16 hours ago

Related Projects

rustlsrustls

A modern TLS library in Rust

Stars7,532
Forks864
Last commit1 day ago
BLAKE3BLAKE3

the official Rust and C implementations of the BLAKE3 cryptographic hash function

Stars6,337
Forks466
Last commit2 months ago
OckamOckam

Orchestrate end-to-end encryption, cryptographic identities, mutual authentication, and authorization policies between distributed applications – at massive scale.

Stars4,630
Forks557
Last commit6 months ago
ringring

An experiment.

Stars4,099
Forks794
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub