This issue serves as a way to track overall progress on WebAssembly/browser compatibility. A lot of progress has already been made. For example, we added WebAssembly support to pion/webrtc which will serve as the underlying mechanism for establishing a direct connection between two browser-based peers.
Here are the remaining tasks (including those already in progress):
[ ] Depending on where we land with the signaling protocol, we may need to add Wasm support to go-ws-transport. Browser peers would use the WebSocket transport to communicate with a signaler and then switch to the WebRTC transport with the desired peer after signaling is complete.
[ ] Update go-libp2p-webrtc-direct to support direct browser-to-browser connections via the signaling protocol, or alternatively, create a new transport that supports them.
[ ] Add WebAssembly support to go-leveldb, likely by using BrowserFS. Partial Wasm support (works in Node but not in browsers) has already been implemented.
[ ] Implement JavaScript/TypeScript callback functions for interacting with 0x Mesh from the browser.
[ ] Publish JavaScript/TypeScript package which is a wrapper around our callback functions and the Wasm bundle.
This issue serves as a way to track overall progress on WebAssembly/browser compatibility. A lot of progress has already been made. For example, we added WebAssembly support to pion/webrtc which will serve as the underlying mechanism for establishing a direct connection between two browser-based peers.
Here are the remaining tasks (including those already in progress):