Files
icicle/wrappers/rust/README.md
Jeremy Felder 40309329fb Migrate docs website + improved docs (#389) (#403)
migrate docs website + improved docs (#389)

* Update README.md (#385)

* refactor

* refactor

* refactor

* rename task

* update codespell

* multi gpu docs (#391)

* Refactor

* refacotr

* fix typo

* Apply suggestions from code review



* refactor

* refactor

---------

Co-authored-by: ImmanuelSegol <3ditds@gmail.com>
Co-authored-by: DmytroTym <dmytrotym1@gmail.com>
Co-authored-by: ChickenLover <Romangg81@gmail.com>
2024-02-28 14:40:04 +02:00

36 lines
850 B
Markdown

### Rust Bindings
`icicle-core` defines all interfaces, macros and common methods.
`icicle-cuda-runtime` defines `DeviceContext` which can be used to manage a specific GPU as well as wrapping common CUDA methods.
`icicle-curves` implements all interfaces and macros from `icicle-core` for each curve. For example `icicle-bn254` implements curve `bn254`. Each curve has its own [build script](./icicle-curves/icicle-bn254/build.rs) which will build the CUDA libraries for that curve as part of the rust-toolchain build.
## Building a curve and running tests
Enter a curve implementation.
```
cd icicle-curves/icicle-bn254
```
To build
```sh
cargo build --release
```
The build may take a while because we are also building the CUDA libraries for the selected curve.
To run benchmarks
```
cargo bench
```
To run test
```sh
cargo test
```