Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pmeinhardt/rtc
RTC from the Terminal ⚡️
https://github.com/pmeinhardt/rtc
bidirectional p2p real-time
Last synced: 13 days ago
JSON representation
RTC from the Terminal ⚡️
- Host: GitHub
- URL: https://github.com/pmeinhardt/rtc
- Owner: pmeinhardt
- License: mit
- Created: 2023-02-24T13:44:26.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-05-03T21:21:27.000Z (over 1 year ago)
- Last Synced: 2024-10-25T11:48:49.433Z (2 months ago)
- Topics: bidirectional, p2p, real-time
- Language: Go
- Homepage:
- Size: 115 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# rtc
*Note: This is still in a very early stage ⚠️*
```txt
╭────────────╮ ╔═══════|~|══════╗ ╭────────────╮
│ stdin │ ║ signaling ║ │ stdin │
▼ │ ▽ ▽ │ ▼
app-1 rtc ◁══════════════▷ rtc app-2
│ ▲ ▲ │
│ stdout │ RTCDataChannel │ stdout │
╰────────────╯ ╰────────────╯
```TODO: What about app stderr?
## Usage
```shell
rtc init [flags] COMMAND [ARG ...]
rtc join [flags] COMMAND [ARG ...]
rtc web [flags]
```## Apps
### Chat
Build:
```shell
(cd apps/chat && go build .)
```Use:
```shell
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.```shell
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
- https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling
- https://en.wikipedia.org/wiki/WebRTC
- https://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol
- https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security
- https://github.com/pion