curveforge 0.3.0

Optimised, secure, and generalised algorithms for elliptic curve arithmetic
Documentation
# CurveForge

**CurveForge** is a Rust crate that provides concrete implementations of elliptic curves and models built using the `curveforge_traits` and `curveforge_macro` libraries.

It serves as a showcase and testbed for curve and field definitions written with `curveforge_macro`, implementing standard and custom elliptic curve constructions in a modular and ergonomic way.


## Provided Models

Curveforge includes implementations of several elliptic curve models in the [`models` module](models):

| Model Name                                     | Feature Flag        |
|------------------------------------------------|---------------------|
| [Double-Odd]models::double_odd               | `double_odd`        |
| [Short Weierstrass]models::short_weierstrass | `short_weierstrass` |
| [Montgomery]models::montgomery               | `montgomery`        |
| [Twisted Edwards]models::twisted_edwards     | `twisted_edwards`   |

## Provided Curves

Curveforge includes implementations of several well-known elliptic curves, each associated with a specific model in the [`curves` module](curves):

| Curve Name                         | Feature Flag  | Underlying Model            |
|------------------------------------|---------------|-----------------------------|
| [NIST P256 and P384]curves::nist | `nist`        | Short Weierstrass           |
| [Jq255s]curves::jq255s           | `jq255s`      | Double-Odd                  |
| [Curve25519]curves::curve25519   | `curve25519`  | Montgomery                  |
| [Curve448]curves::curve448       | `curve448`    | Montgomery                  |
| [Ed25519]curves::ed25519         | `ed25519`     | Twisted Edwards             |
| [rtr family]curves::rtr          | `rtr`         | Various (mainly Double-Odd) |

Enable features in your `Cargo.toml` as needed to include these curves and models.
Enabling a curve will automatically enable its underlying model.