Skip to content

pmeinhardt/rtc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

RTC from the Terminal ⚡️

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors