Stream primitive
- IDP
- CLI chat client https://crates.io/crates/sequoia-openpgp
- CLI command to create screen capture session https://crates.io/crates/webrtc https://github.com/webrtc-rs/webrtc
- Basic screen recording https://github.com/bryal/captrs
- Flutter client
- Cardano donations
- WebRTC
Send encrypted decryption key with invite that can only be decrypted with info upon joining so it is clear when an additional party is given a decryption key
backend
- create/manage streams
- friend management
- chat (direct message) management
- chat interaction
- send image, video
- channel management (use same primitive as chat?)
- channel group management
- quic socket for stream and voip chunks https://github.com/quinn-rs/quinn
- kick/ban user from chat (regen encryption keys)
- attach chats and streams together
- REALLY handy for playing with streamers
- automatic uploads to Rumble?
- instant playback
microservices:
- HTTP gateway w/ IDP (golang)
- Liaison microservice
- create/delete/attach/detach RTMP streams and chats
- WebSocket server for messages and events (golang)
- Rudimentary chat history logger (includes log of chat public keys)
- SMTP UDP video/VOIP stream broadcaster
operator role:
- create & distribute new hybrid keys to individuals
when user is blocked, all new messages must be encrypted with a new private key generated by an operator