Camus is a video chat app that uses WebRTC for direct peer-to-peer communication. Users can create public or private rooms, optionally protected by a password. In addition to streaming audio and video from a webcam and microphone, Camus also provides screen sharing and text chat.
- Webcam streaming
- Desktop sharing
- Text chat
- Room management (public/private, password/no password, guest limits)
You can find a live demo at https://camus.chat.
Camus requires Python 3.7 or higher since it makes use of Quart and async syntax. As usual, it's best to use a virtual environment.
Install Camus:
$ pip install camus-chat
Run Camus:
$ camus
Go to localhost:5000
in your browser. For local testing, you can visit the
same room in multiple tabs and each tab will act as a separate client.
You can find a pre-built Docker image on Docker Hub. Use the following command to pull the image and run a container:
$ docker run -d -p 5000:5000 mrgnr/camus
Go to localhost:5000
in your browser. For local testing, you can visit the
same room in multiple tabs and each tab will act as a separate client.
See the technical overview to understand how Camus works.
See the development documentation for build & test instructions.
- [x] Audio/video streaming
- [x] Desktop sharing
- [x] Text chat
- [x] Cross-browser support (using Babel, Adapter)
- [x] Chromium/Chrome/Brave
- [x] Firefox
- [x] Safari
- [x] Support TURN server
- [ ] Rewrite the UI using React
- [ ] Make the UI accessible
- [ ] Configurable TURN server in the client
- [ ] Controls for video quality
- [ ] Debian package
- [ ] Persistent storage (SQLite, Redis, and/or PostgreSQL)
- [ ] User accounts, persistent user settings
- [ ] Support SFU for client scalability