Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
laudiacay authored Oct 1, 2023
1 parent fc96a27 commit 2df1a1a
Showing 1 changed file with 6 additions and 105 deletions.
111 changes: 6 additions & 105 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,37 +36,11 @@

## Outline

- [Crates](#crates)
- [Usage](#usage)
- [Testing the Project](#testing-the-project)
- [Benchmarking the Project](#benchmarking-the-project)
- [Setting-up barustenberg-wasm](#setting-up-barustenberg-wasm)
- [Contributing](#contributing)
- [Getting Help](#getting-help)
- [External Resources](#external-resources)
- [License](#license)

## Crates

- [barustenberg](https://github.com/laudiacay/barustenberg/tree/main/barustenberg)
- [barustenberg-wasm](https://github.com/laudiacay/barustenberg/tree/main/barustenberg-wasm)

## Usage

- Add the following to the `[dependencies]` section of your `Cargo.toml` file
for using the rust-only `barustenberg` crate/workspace:

```toml
barustenberg = "0.1.0"
```

- Add the following to the `[dependencies]` section of your `Cargo.toml` file
for using `barustenberg-wasm` crate/workspace:

```toml
barustenberg-wasm = "0.1.0"
```

## Testing the Project

- Run tests for crate/workspace `barustenberg`:
Expand All @@ -75,102 +49,29 @@ barustenberg-wasm = "0.1.0"
cd barustenberg && cargo test
```

- To run tests for crate/workspace `barustenberg-wasm`, follow
the instructions in [barustenberg-wasm](./barustenberg-wasm#testing-the-project),
which leverages [wasm-pack][wasm-pack].
## Bounties

## Benchmarking the Project
There's an active bounty program supported by Aztec for completing issues in this repository. The aim of this is mostly educational- we're here to help you learn about ZK and Plonk!

For benchmarking and measuring performance, this workspaces provides
a Rust-specific benchmarking package leveraging [criterion][criterion] and a
`test_utils` feature flag for integrating [proptest][proptest] within the
suite for working with [strategies][strategies] and sampling from randomly
generated values.
If you're interested in an open bountied issue, reach out to laudiacay on Telegram to be added to the contributor chat for support/issue claiming/help finding a good issue for you.

- Run benchmarks
We'll pay when the issue is complete per description, neatly formatted, with requested tests passing. We reserve the right to ask for edits on the PR before merging it.

```console
cargo bench -p barustenberg-benches
```

*Note*: Currently, this workspace only supports Rust-native benchmarking, as
`wasm-bindgen` support for criterion is still [an open issue][criterion-bindgen].
However, with some extra work, benchmarks can be compiled to [wasi][wasi] and
run with [wasmer][wasmer]/[wasmtime][wasmtime] or in the brower with
[webassembly.sh][wasmsh]. Please catch-up with wasm support for criterion on their
[user-guide][criterion-user-guide].

## Setting-up barustenberg-wasm

The Wasm targetted version of this project relies on [wasm-pack][wasm-pack]
for building, testing, and publishing artifacts sutiable for
[Node.js][node-js], web broswers, or bundlers like [webpack][webpack].

Please read more on working with `wasm-pack` directly in
[barustenberg-wasm](./barustenberg-wasm#set-up).
First acceptable PR will get the bounty, so please use the contributor chat to de-conflict and plan collaboration!

## Contributing

:balloon: We're thankful for any feedback and help in improving our project!
We have a [contributing guide](./CONTRIBUTING.md) to help you get involved. We
also adhere to our [Code of Conduct](./CODE_OF_CONDUCT.md).

### Nix

This repository contains a [Nix flake][nix-flake] that initiates both the Rust
toolchain set in [rust-toolchain.toml](./rust-toolchain.toml) and a
[pre-commit hook](#pre-commit-hook). It also installs helpful cargo binaries for
development. Please install [nix][nix] and [direnv][direnv] to get started.

Run `nix develop` or `direnv allow` to load the `devShell` flake output,
according to your preference.

### Formatting

For formatting Rust in particular, we automatically format on `nightly`, as it
uses specific nightly features we recommend by default.

### Pre-commit Hook

This library recommends using [pre-commit][pre-commit] for running pre-commit
hooks. Please run this before every commit and/or push.

- If you are doing interim commits locally, and for some reason if you _don't_
want pre-commit hooks to fire, you can run
`git commit -a -m "Your message here" --no-verify`.

### Recommended Development Flow

- We recommend leveraging [cargo-watch][cargo-watch],
[cargo-expand][cargo-expand] and [irust][irust] for Rust development.
- We recommend using [cargo-udeps][cargo-udeps] for removing unused dependencies
before commits and pull-requests.

### Conventional Commits

This project *lightly* follows the [Conventional Commits
convention][commit-spec-site] to help explain
commit history and tie in with our release process. The full specification
can be found [here][commit-spec]. 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)]
```
## Getting Help

For usage questions, usecases, or issues please open an issue in our repository.

We would be happy to try to answer your question or try opening a new issue on Github.

## External Resources
These are references to specifications, talks and presentations, etc.
Additionally, reach out to @laudiacay on telegram to get added to the contributor chat.

## License

Expand Down

0 comments on commit 2df1a1a

Please sign in to comment.