10 releases

new 0.1.17 Jan 11, 2022
0.1.16 Dec 3, 2021
0.1.15 Oct 27, 2021
0.1.14 Sep 28, 2021
0.0.2 Jul 30, 2021

#664 in Magic Beans

Download history 22/week @ 2021-09-25 8/week @ 2021-10-02 14/week @ 2021-10-09 10/week @ 2021-10-16 21/week @ 2021-10-23 2/week @ 2021-10-30 9/week @ 2021-11-06 7/week @ 2021-11-13 9/week @ 2021-11-20 20/week @ 2021-11-27 23/week @ 2021-12-04 7/week @ 2021-12-11 1/week @ 2021-12-18 10/week @ 2021-12-25 5/week @ 2022-01-01 60/week @ 2022-01-08

76 downloads per month

Apache-2.0

600KB
6.5K SLoC

Rust implementation of clvm.

Python Wheel

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

$ pip install maturin

Build clvm_rs directly 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 --cargo-extra-args="--features=openssl"

To build the wheel, do

$ maturin build --release --no-sdist

or

$ maturin build --release --no-sdist --cargo-extra-args="--features=openssl"

WASM

Use wasm-pack to build the wasm pkg file used with npm. Install it with:

$ cargo install wasm-pack

Then build with

$ wasm-pack build --release

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 fuzz
mkdir -p corpus/fuzz_run_program/
python gen_corpus.py

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 see the Bug Bounty program.

Dependencies

~1.4–3.5MB
~69K SLoC