v1.0.0 - Production Release (2026-04-16)
🎉 First Stable Release — Production-ready WebRTC learning platform
Overview
This release marks the first stable version of the WebRTC project, incorporating all features developed over the past year into a production-ready package with comprehensive documentation and bilingual support.
✨ Major Features
Real-time Communication
- WebSocket Signaling — Robust signaling hub with room management
- 1-on-1 Calls — Direct peer-to-peer video/audio calls
- Multi-party Mesh — Support for up to 50 concurrent participants per room
- DataChannel Chat — Peer-to-peer text messaging without server relay
Media Controls
- Mute/Unmute — Real-time audio toggle
- Camera On/Off — Video stream control
- Screen Sharing — Display media capture and streaming
- Local Recording — Browser-side MediaRecorder with WebM export
Security & Stability
- Origin Validation — Configurable WebSocket origin whitelist
- Identity Binding — Server-verified client identities
- Resource Limits — Protection against DoS (max 1000 rooms, 50 clients/room)
- Goroutine Safety — Race-condition-free connection lifecycle
Deployment
- Docker Support — Multi-stage builds for minimal image size
- HTTPS/TURN Ready — Docker Compose with Caddy and coturn
- GitHub Pages — Documentation hosting with Jekyll
- CI/CD — GitHub Actions for testing and deployment
📝 Documentation
New in This Release
- Comprehensive bilingual documentation (English & 简体中文)
- Complete API reference guide
- Troubleshooting and FAQ section
- Professional README with navigation
Documentation Structure
1
2
3
4
5
6
7
docs/
├── README.md / README.zh-CN.md # Documentation index
├── guide.md / guide.zh-CN.md # Technical guide
├── deployment.md / deployment.zh-CN.md # Deployment guide
├── signaling.md / signaling.zh-CN.md # Protocol specification
├── api.md / api.zh-CN.md # API reference
└── troubleshooting.md / troubleshooting.zh-CN.md # Troubleshooting
🔧 Technical Improvements
Backend (Go)
- Modular hub architecture with clean separation of concerns
- 100% test coverage for critical paths
- Comprehensive linter configuration (11 linters)
- Graceful shutdown handling
Frontend (JavaScript)
- Modular ES6 architecture
- State machine for connection management
- Perfect negotiation pattern for WebRTC
- Auto-reconnection with exponential backoff
📦 Dependencies
| Package | Version | Purpose |
|---|---|---|
| Go | 1.22+ | Runtime |
| Gorilla WebSocket | v1.5.3 | WebSocket implementation |
| Caddy | 2.x | HTTPS reverse proxy |
| coturn | latest | TURN/STUN server |
🚀 Quick Start
1
2
3
4
5
6
7
8
9
# Clone the repository
git clone https://github.com/LessUp/webrtc.git
cd webrtc
# Run locally
go run ./cmd/server
# Or with Docker
docker compose up -d
Visit http://localhost:8080 and join a room to start calling!
🙏 Acknowledgments
This release consolidates work from multiple development phases:
- v0.1.0 — Project initialization
- v0.8.0 — DataChannel & Mesh architecture
- v0.9.0 — Major refactoring and modularization
Full Changelog: changelog/