25 releases (1 stable)
Uses new Rust 2024
| 1.0.0 | Oct 28, 2025 |
|---|---|
| 0.3.0 | Sep 18, 2025 |
| 0.2.4 | Oct 8, 2025 |
| 0.1.9 | Jul 14, 2025 |
| 0.0.5 | Dec 22, 2023 |
#1 in #stark
133,981 downloads per month
Used in 138 crates
(46 directly)
205KB
4.5K
SLoC
starknet-types-core
Core types representation for Starknet.
Overview
The starknet-types-core crate provides:
- The universal
Felt(Field Element) type for Cairo and STARK proofs. It was created to reduce the fragmentation in the Starknet Rust ecosystem by providing a standardized representation of theFelttype.
Features
Always on
- Standardized
Felttype: Simplify your codebase by using our standardizedFelttype. Optimized for performance: TheFelttype has been optimized for high-performance applications. - No_std support ✅
Serde
- Provides a Serialization and Deserialization implementations for the
Felttype - No_std support ✅
Parity Scale Codec
- Provides Serialization and Deserialization implementations for the
Felttype within the Parity serialization framework - No_std support ✅
Arbitrary
- Provides an Arbitrary implementations for the
Felttype
Curve
- Add the
AffinePointandProjectivePointstructs, which represent points on the Stark curve for performing elliptic curve operations. - No_std support ✅
Hash
- Implements Pedersen hashing for Felts and Felts array
Examples
Here are some examples of how to use the starknet-types-core types:
let felt = Felt::from(18);
let projective_point = ProjectivePoint::new(Felt::from(0), Felt::from(1), Felt::from(0));
let affine_point = AffinePoint::new(Felt::from(0), Felt::from(1)).unwrap();
Usage
Include starknet-types-core in your library by adding the following to your Cargo.toml:
[dependencies]
starknet-types-core = { version = "0.0.3", git = "https://github.com/starknet-io/types-rs", default-features = false, features = [
"alloc",
"serde",
"arbitrary",
"curve",
"hash",
] }
Build from source
Clone the repository and navigate to the starknet-types-core directory. Then run:
cargo build --release
Testing
Clone the repository and navigate to the starknet-types-core directory. Then run:
cargo test
Contributing
Contributions are welcome! Please read our contributing guidelines for more information.
License
This repository is licensed under the MIT License, see LICENSE for more information.
Dependencies
~2.4–4.5MB
~89K SLoC