WebRTC integration for Urbit: https://grants.urbit.org/proposals/21131866-webrtc-gall-agent-and-external-app
icepond
: Gall agent and marks for ICE server acquisitionicepond-js
: Javascript library for fetching ICE servers over airlock from icepondicepond-test
: React app demonstrating icepondswitchboard
: Gall agent and marks for signalling WebRTC peer connectionsswitchboard-js
Javascript library for setting up WebRTC peer connections via Urbit airlock to switchboardurchatfm
: React app demonstrating peer-to-peer ephemeral chat over WebRTC, signalled over Urbit
See DESIGN.md
Run npm i && npm run bootstrap
to get started. This project uses lerna to manage the switchboard-js
and icepond-js
packages. Add a .env.local
file to the urchatfm
directory with the following entry VITE_SHIP_URL=https://yourshipurl.com
replacing "https://yourshipurl.com" with your actual url.
Whenever working you can simply run npm run dev
from the root directory which will simultaneously watch both packages for any changes and run the development server for urchatfm
. It will proxy requests to the ship url added above. That ship will have to have urchatfm
installed.
When it's time to release urchatfm
running npm run build
will build all packages and urchatfm
itself. The resulting urchatfm/dist
folder is then ready to be made into a glob.
If either switchboard-js
or icepond-js
are updated, they can be published to npm using npm run publish
.