All Projects → urbit → urbit-webrtc

urbit / urbit-webrtc

Licence: MIT license
WebRTC integration for Urbit: https://grants.urbit.org/proposals/21131866-webrtc-gall-agent-and-external-app

Programming Languages

typescript
32286 projects
hoon
3 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

urbit-webrtc

WebRTC integration for Urbit: https://grants.urbit.org/proposals/21131866-webrtc-gall-agent-and-external-app

awesome urbit badge

Packages

  • icepond: Gall agent and marks for ICE server acquisition
  • icepond-js: Javascript library for fetching ICE servers over airlock from icepond
  • icepond-test: React app demonstrating icepond
  • switchboard: Gall agent and marks for signalling WebRTC peer connections
  • switchboard-js Javascript library for setting up WebRTC peer connections via Urbit airlock to switchboard
  • urchatfm: React app demonstrating peer-to-peer ephemeral chat over WebRTC, signalled over Urbit

Design

See DESIGN.md

Getting Started

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].