breez-sdk icon indicating copy to clipboard operation
breez-sdk copied to clipboard

WASM

Open dangeross opened this issue 1 year ago • 16 comments

This is a tracking issue to manage the WASM implementation of the Breez SDK.

Tasks

  • [x] Test different WASM/WASI/emscripten build methods
  • [ ] Identify changes required for Breez SDK / Greenlight
  • [ ] Investigate generation of WASM bindings from UDL

Research

  • Prokio An asynchronous runtime compatible with WebAssembly and non-WebAssembly targets
  • Strings in WASM
  • WASIX WASI ABI plus additional non-invasive syscall extensions
  • WASM GC WASM Garbage Collection
  • Tokio Tungstenite WebSocket library and Tokio bindings/wrappers

Issues

  • Allow async traits
    • https://github.com/rustwasm/wasm-bindgen/issues/2409
  • WASM incompatibilities GRPC
    • https://github.com/forbole/cosmos-rust-wallet/issues/4
  • Building WASM on macOS
    • https://github.com/rust-bitcoin/rust-secp256k1/issues/134
  • Transitive dependency bitcoinconsensus doesn't build for WASM
    • https://github.com/rust-bitcoin/rust-bitcoinconsensus/issues/32
  • Can't use ring on wasm32-unknown-unknown die to a missing import
    • https://github.com/briansmith/ring/issues/1453
    • https://github.com/briansmith/ring/pull/1754
  • Support wasm (socket2)
    • https://github.com/rust-lang/socket2/issues/268
  • Rusqlite: Error building for wasm32-wasi
    • https://github.com/rusqlite/rusqlite/issues/1408
  • Rusqlite: Add wasm32-unknown-unknown support
    • https://github.com/rusqlite/rusqlite/pull/1010
  • gRPC transport over WebSocket
    • https://github.com/hyperium/tonic/issues/491
  • reqwest: Wasm Support
    • https://github.com/seanmonstar/reqwest/issues/288
    • https://github.com/seanmonstar/reqwest/pull/630
  • Status of rust+C bindings for wasm targets
    • https://github.com/rustwasm/team/issues/291#issuecomment-1343315089

dangeross avatar Nov 07 '23 20:11 dangeross