OpenViSTAI · Agents · Blockchain · Crypto
Menu
Developer Tools

Ecfft

Ecfft is a Rust library implementing elliptic-curve fast Fourier transform algorithms for polynomial arithmetic over finite fields, including evaluation, interpolation, polynomial remainders and vanishing-polynomial generation.

Independent OpenViST project profile, based on linked sources.

Ecfft — OpenViST project profile in Developer Tools.
OpenViST project illustration. See the linked sources for product details.
Understand the project

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.
Before you choose

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.

Source-based practical guide

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

  1. In build.rs, call the field’s build_fftree method with the desired size.

  2. Serialize the resulting FFTree to a file under Cargo’s OUT_DIR.

  3. In the runtime code, include the generated file and deserialize it with CanonicalDeserialize.

  4. 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.
Evidence and transparency

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