[dependencies]
section of your Cargo.toml
file
for using the rust-only deterministic-bloom
crate/workspace:deterministic-bloom = "0.1.0"
[dependencies]
section of your Cargo.toml
file
for using deterministic-bloom-wasm
crate/workspace:deterministic-bloom-wasm = "0.1.0"
Run tests for crate/workspace deterministic-bloom
:
cd deterministic-bloom && cargo test
To run tests for crate/workspace deterministic-bloom-wasm
, follow
the instructions in deterministic-bloom-wasm,
which leverages wasm-pack.
For benchmarking and measuring performance, this workspaces provides
a Rust-specific benchmarking package leveraging criterion and a
test_utils
feature flag for integrating proptest within the
suite for working with strategies and sampling from randomly
generated values.
Run benchmarks
cargo bench -p deterministic-bloom-benches
Note: Currently, this workspace only supports Rust-native benchmarking, as
wasm-bindgen
support for criterion is still an open issue.
However, with some extra work, benchmarks can be compiled to wasi and
run with wasmer/wasmtime or in the brower with
webassembly.sh. Please catch-up with wasm support for criterion on their
user-guide.
The Wasm targetted version of this project relies on wasm-pack for building, testing, and publishing artifacts sutiable for Node.js, web broswers, or bundlers like webpack.
Please read more on working with wasm-pack
directly in
deterministic-bloom-wasm.
:balloon: We're thankful for any feedback and help in improving our project! We have a contributing guide to help you get involved. We also adhere to our Code of Conduct.
This repository contains a Nix flake that initiates both the Rust toolchain set in rust-toolchain.toml and a pre-commit hook. It also installs helpful cargo binaries for development. Please install nix and direnv to get started.
Run nix develop
or direnv allow
to load the devShell
flake output,
according to your preference.
For formatting Rust in particular, please use cargo +nightly fmt
as it uses
specific nightly features we recommend by default.
This library recommends using pre-commit for running pre-commit hooks. Please run this before every commit and/or push.
git commit -a -m "Your message here" --no-verify
.This project lightly follows the Conventional Commits
convention to help explain
commit history and tie in with our release process. The full specification
can be found here. We recommend prefixing your commits with
a type of fix
, feat
, docs
, ci
, refactor
, etc..., structured like so:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
For usage questions, usecases, or issues reach out to us in our Discord channel.
We would be happy to try to answer your question or try opening a new issue on Github.
These are references to specifications, talks and presentations, etc.
This project is licensed under the Apache License 2.0, or http://www.apache.org/licenses/LICENSE-2.0.