## Publishing to [crates.io](https://crates.io/) ```zsh $ cargo publish ``` ## Development Loop ```zsh $ cargo install cargo-watch $ cargo watch -x check -x test ``` This will run `cargo check`. If that passes, it will run `cargo test`. This happens every time after a file changes. ## Formatting rustfmt and clippy are used to format and lint the code. This helps us write idiomatic Rust code. ```zsh $ cargo fmt $ cargo clippy ``` ## Benchmark testing [criterion.rs](https://github.com/bheisler/criterion.rs) is used to benchmark the code. Running `$ cargo bench` will run the benchmarking suite in [benches/lib.rs](benches/lib.rs). ## Fuzz testing You need a nightly compiler to run fuzz tests since it uses unstable features. ```zsh $ rustup install nightly $ rustup default nightly $ cargo install cargo-fuzz $ cargo-fuzz list $ cargo-fuzz run ```