Note: This is still in a very early stage
╭────────────╮ ╔═══════|~|══════╗ ╭────────────╮
│ stdin │ ║ signaling ║ │ stdin │
▼ │ ▽ ▽ │ ▼
app-1 rtc ◁══════════════▷ rtc app-2
│ ▲ ▲ │
│ stdout │ RTCDataChannel │ stdout │
╰────────────╯ ╰────────────╯TODO: What about app stderr?
rtc init [flags] COMMAND [ARG ...]
rtc join [flags] COMMAND [ARG ...]
rtc web [flags]Build:
(cd apps/chat && go build .)Use:
rtc init ./apps/chat/chat # initiate connection
rtc join ./apps/chat/chat # join on the other sideFor exchanging SDP offer and answer through different channels…
Commands should support send and recv subcommands.
Commands should block until done.
signal send < sdp # send SDP received on stdin
signal recv > sdp # receive SDP and print to stdout- Adapter for exchanging session info based on GitHub user names (encrypt SDP via SSH public key + signing)
- Keybase looks like it would be a great fit: Holds pub keys and encrypts messages for specific user, identified by name and with proof of GitHub, Twitter… accounts
- Web-client interface (static HTML + JS) for non-technical users (send and or receive)