modulepackage
0.0.0-20230326134332-297d6526ff54
Repository: https://github.com/pmeinhardt/rtc.git
Documentation: pkg.go.dev
# README
rtc
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?
Usage
rtc init [flags] COMMAND [ARG ...]
rtc join [flags] COMMAND [ARG ...]
rtc web [flags]
Apps
Chat
Build:
(cd apps/chat && go build .)
Use:
rtc init ./apps/chat/chat # initiate connection
rtc join ./apps/chat/chat # join on the other side
Signaling plugins
For 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
Ideas
- 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)