Skip to content

Commit

Permalink
feat: wasm (#38)
Browse files Browse the repository at this point in the history
  • Loading branch information
richard-ramos committed Sep 20, 2022
1 parent 4f08818 commit c401c0b
Show file tree
Hide file tree
Showing 14 changed files with 971 additions and 71 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/ci.yml
Expand Up @@ -22,7 +22,7 @@ jobs:
run: git submodule update --init --recursive
- name: cargo test
run: |
cargo test
cargo test --release --workspace --exclude rln-wasm
lint:
runs-on: ubuntu-latest
steps:
Expand All @@ -40,6 +40,9 @@ jobs:
- name: cargo fmt
run: cargo fmt --all -- --check
- name: cargo clippy
run: cargo clippy
run: |
(cd multiplier && cargo clippy)
(cd rln && cargo clippy)
(cd semaphore && cargo clippy)
# Currently not treating warnings as error, too noisy
# -- -D warnings
1 change: 1 addition & 0 deletions Cargo.toml
Expand Up @@ -3,4 +3,5 @@ members = [
"multiplier",
"semaphore",
"rln",
"rln-wasm",
]
27 changes: 27 additions & 0 deletions rln-wasm/Cargo.toml
@@ -0,0 +1,27 @@
[package]
name = "rln-wasm"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = ["cdylib", "rlib"]

[dependencies]
rln = { path = "../rln", default-features = false, features = ["wasm"] }
num-bigint = { version = "0.4", default-features = false, features = ["rand", "serde"] }
wasmer = { version = "2.3", default-features = false, features = ["js", "std"] }
web-sys = {version = "0.3", features=["console"]}
getrandom = { version = "0.2.7", default-features = false, features = ["js"] }
wasm-bindgen = "0.2.63"
serde-wasm-bindgen = "0.4"
js-sys = "0.3.59"
console_error_panic_hook = "0.1.7"
serde_json = "1.0.85"

[dev-dependencies]
wasm-bindgen-test = "0.3.0"
wasm-bindgen-futures = "0.4.33"

[profile.release]
debug = true

20 changes: 20 additions & 0 deletions rln-wasm/README.md
@@ -0,0 +1,20 @@
# RLN for WASM
This library is used in [waku-org/js-rln](https://github.com/waku-org/js-rln/)

## Building the library
1. Make sure you have nodejs installed and the `build-essential` package if using ubuntu.
2. Install wasm-pack
```
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
```
3. Compile zerokit for `wasm32-unknown-unknown`:
```
cd rln-wasm
wasm-pack build --release
```

## Running tests
```
cd rln-wasm
wasm-pack test --node --release
```

0 comments on commit c401c0b

Please sign in to comment.