feat: Minimal in-browser compatibility for the crate (#149)

* change: CircomWrapper constructor to use raw bytes

* chore: tmp update to latest circom-compat

* feat: Introduce PathOrBin to support in-browser CircomWrapper usage

This changes the associated type `Params` of the `CircomFCircuit` to use
the newly created `PathOrBin` type.

This allows the user of the lib to directly send the binary of the files
already read or instead, provide a path to it and let `sonobe` do the
work.

With this, Circom should be already usable from the browser if we allow
JS to take care of reading the `.wasm` and `.r1cs` files.

* feat: Introduce PathOrBin to support in-browser NoirFCircuit usage

This commit temporarilly stands on top of
https://github.com/dmpierre/arkworks_backend/pull/1 referenced as `rev`.

This changes the associated type `Params` of the `CircomFCircuit` to use
the newly created `PathOrBin` type.

This allows the user of the lib to directly send the binary of the files
already read or instead, provide a path to it and let `sonobe` do the
work.

With this, Noir should be already usable from the browser if we allow
JS to take care of reading the `circuit.json` files

* chore: Update deps to branch instead of `rev`

* fix: use PathOrBin in examples

* fix: clippy

* fix: read file length for initializing vec size

---------

Co-authored-by: dmpierre <pdaixmoreux@gmail.com>
This commit is contained in:
Carlos Pérez
2024-08-27 16:34:58 +02:00
committed by GitHub
parent 7097c001fc
commit 52de2d185c
6 changed files with 100 additions and 35 deletions

View File

@@ -25,12 +25,12 @@ num-bigint = "0.4"
num-integer = "0.1"
color-eyre = "=0.6.2"
sha3 = "0.10"
ark-noname = { git = "https://github.com/dmpierre/ark-noname", branch="feat/sonobe-integration" }
ark-noname = { git = "https://github.com/dmpierre/ark-noname", branch = "feat/sonobe-integration" }
noname = { git = "https://github.com/dmpierre/noname" }
serde_json = "1.0.85" # to (de)serialize JSON
serde = "1.0.203"
acvm = { git = "https://github.com/noir-lang/noir", rev="2b4853e", default-features = false }
arkworks_backend = { git = "https://github.com/dmpierre/arkworks_backend", branch="feat/sonobe-integration" }
arkworks_backend = { git = "https://github.com/dmpierre/arkworks_backend", branch = "feat/sonobe-integration" }
log = "0.4"
# tmp import for espresso's sumcheck