Practical overview
When it fits
Use Ecfft when a Rust cryptographic component needs the documented finite-field polynomial algorithms and its field requirements match the library’s supported interfaces.
Who it is for
- Rust developers building cryptographic software that needs finite-field polynomial operations.
- Developers working on ZK or STARK components who need evaluation and interpolation transforms.
Documented uses
- Convert polynomial coefficients to evaluations and recover coefficients from evaluations.
- Compute polynomial degree, extend evaluations, calculate polynomial remainders, or generate vanishing polynomials.
- Generate and serialize an FFTree at compile time for use by runtime code.
Requirements & limits
- The repository is Rust and MIT-licensed.
- The README lists asymptotic runtimes for individual algorithms, including O(n log² n) for coefficient/evaluation transforms and O(n log n) for degree computation and polynomial remainders.
- Compile-time FFTree generation can reduce runtime work, but the README warns that it increases binary size.
- The code example demonstrates a secp256k1 field type; verify that the required field and operations fit the project.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Build and load an FFTree for polynomial transforms
Generate an FFTree at compile time, serialize it, then load it for coefficient-to-evaluation and evaluation-to-coefficient transforms.
Before you start
- A Rust project using Ecfft and the Arkworks serialization crates shown in the README.
- A field type implementing the documented FFTree interfaces; the example uses ecfft::secp256k1::Fp.
Steps
In build.rs, call the field’s build_fftree method with the desired size.
Serialize the resulting FFTree to a file under Cargo’s OUT_DIR.
In the runtime code, include the generated file and deserialize it with CanonicalDeserialize.
Use FFTree::enter for coefficients-to-evaluations and FFTree::exit for the reverse transform.
Expected outcome
A serialized FFTree generated during compilation and used at runtime for polynomial transforms.
Guide limitations
- The README says FFTree generation involves significant computation.
- Embedding the FFTree can significantly increase binary size.
- The example uses a particular field and size; it does not establish suitability for other fields or workloads.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 17 October 2026
- Original website title
- andrewmilson/ecfft · Official homepage title · retained in its source language

