- Go 92.7%
- Python 4.9%
- Shell 2.4%
|
Some checks failed
CI / Test (push) Has been cancelled
CI / Coverage (push) Has been cancelled
CI / Test (-race) (push) Has been cancelled
CI / Real E2E (Providers x Transports) (push) Has been cancelled
CI / Real E2E Stress Soak (Nightly) (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Build CLI (Binaries) (push) Has been cancelled
CI / Build Android (AAR) (push) Has been cancelled
CI / Nightly Soak (All Carriers × Transports) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .github | ||
| cmd | ||
| code | ||
| data | ||
| docs | ||
| internal | ||
| mobile | ||
| pkg/olcrtc | ||
| script | ||
| .gitignore | ||
| .golangci.yml | ||
| AGENTS.md | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| magefile.go | ||
| readme.md | ||
| readme.ru.md | ||
| SECURITY.md | ||
olcRTC
olcRTC (OpenLibreCommunity RTC) is an encrypted TCP-over-WebRTC tunnel. Traffic is disguised as an ordinary video call on allowed services (Jitsi, Yandex Telemost, WbStream). Inside there is XChaCha20-Poly1305 encryption and smux multiplexing over WebRTC data/video channels.
Status: Beta
app -> SOCKS5 -> olcrtc cnc -> WebRTC/SFU service -> olcrtc srv -> internet
Important: make sure the video call service you need is on the allow lists and works in your network. If not, use another one.
Features
- Providers:
jitsi,telemost,wbstream - Transports:
datachannel,vp8channel,seichannel,videochannel - Platforms: Linux, macOS, Windows, Android (gomobile), embeddable Go library
Recommended start: jitsi + datachannel.
Quick start
You need Go 1.26+ and mage.
go install github.com/magefile/mage@latest
git clone https://github.com/openlibrecommunity/olcrtc --recurse-submodules
cd olcrtc
mage build
Generate a shared key (the same on server and client):
openssl rand -hex 32
Run the server and the client with YAML configs:
./build/olcrtc-linux-amd64 server.yaml
./build/olcrtc-linux-amd64 client.yaml
The client starts a local SOCKS5 on 127.0.0.1:8808. Check:
curl --socks5-hostname 127.0.0.1:8808 https://icanhazip.com
Full instructions and config examples are in docs/fast.md and docs/configuration.md.
Documentation
| Document | Contents |
|---|---|
| about.md | architecture, providers, transports, public API |
| fast.md | quick start for newcomers |
| manual.md | manual build |
| configuration.md | YAML setup |
| settings.md | compatibility matrix |
| uri.md | client URI format |
| sub.md | subscription format |
Build
mage build # current platform
mage cross # cross-compilation
mage test # tests
mage lint # golangci-lint
mage mobile # gomobile bindings (Android)
Community
- Telegram: @openlibrecommunity
- Issues: github.com/openlibrecommunity/olcrtc/issues
- Community UI client: alananisimov/olcbox
License
WTFPL
Telegram: zarazaex
Email: zarazaex@tuta.io
Site: zarazaex.xyz