25 releases (9 breaking)

new 0.10.0 Nov 7, 2024
0.9.0 Sep 20, 2024
0.8.0 Jul 15, 2024
0.6.1 Mar 12, 2024
0.1.20 Feb 1, 2022

#2 in #chia

Download history 1531/week @ 2024-07-18 2081/week @ 2024-07-25 3958/week @ 2024-08-01 1722/week @ 2024-08-08 1148/week @ 2024-08-15 3898/week @ 2024-08-22 2856/week @ 2024-08-29 2634/week @ 2024-09-05 2517/week @ 2024-09-12 3801/week @ 2024-09-19 1618/week @ 2024-09-26 2015/week @ 2024-10-03 2363/week @ 2024-10-10 7433/week @ 2024-10-17 4916/week @ 2024-10-24 1864/week @ 2024-10-31

17,124 downloads per month
Used in 29 crates (25 directly)

Apache-2.0

755KB
8K SLoC

Rust implementation of clvm.

The cargo workspace includes an rlib crate, for use with rust or other applications, and a python wheel.

The python wheel is in wheel. The npm package is in wasm.

Tests

In order to run the unit tests, run:

cargo test

Fuzzing

The fuzzing infrastructure for clvm_rs uses cargo-fuzz.

Documentation for setting up fuzzing in rust can be found here.

To generate an initial corpus (for the run_program fuzzer), run:

cd tools
cargo run generate-fuzz-corpus

To get started, run:

cargo fuzz run fuzz_run_program --jobs=32 -- -rss_limit_mb=4096

But with whatever number of jobs works best for you.

If you find issues in clvm_rs please use our bug bounty program.

Build Wheel

The clvm_rs wheel has python bindings for the rust implementation of clvm.

Use maturin to build the python interface. First, install into current virtualenv with

$ pip install maturin

While in the wheel directory, build clvm_rs into the current virtualenv with

$ maturin develop --release

On UNIX-based platforms, you may get a speed boost on sha256 operations by building with OpenSSL.

$ maturin develop --release --features=openssl

To build the wheel, do

$ maturin build --release

or

$ maturin build --release --features=openssl

Dependencies

~11MB
~274K SLoC