Categorygithub.com/pmeinhardt/rtc
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)

References

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author