Roadmap
Prototype Stage I (Basis)
Design docs (gh-15)
- architecture, relations to roc-toolkit and roc-cast
Daemon skeleton (gh-16)
- REST API
- OpenAPI (Swagger)
- CLI, logging
Integration tests skeleton (gh-49)
- driver mock + vault + endpoint and stream dispatchers + rest api server
- swagger-generated client
- send requests via client and check how driver mock behaves
Persistent storage (gh-32)
- persistent storage for runtime state
DeviceDriver and PipewireDriver (gh-50)
- generic driver interface
- implementation for PipeWire using C bindings to libpipewire
Endpoint management (gh-46)
- CRUD for endpoints (audio devices)
- use DeviceDriver to control devices
Stream management (gh-47)
- CRUD for streams
- use DeviceDriver for I/O
- support sending from endpoint to address
- support receiving from address to endpoint
- for now don't support endpoint-to-endpoint
Event subscription (gh-48)
- REST API to subscribe to events
- add EventDispatcher
- integrate with EndpointDispatcher and StreamDispatcher
Prototype Stage II (P2P)
P2P protocol
- choose technology (ZMQ, libp2p)
- protocol spec
- protocol implementation
Peer management
- sessions and authentication
- auto-discovery
- REST API for /peers
Cross-peer streams
- support streams connecting endpoints on different peers
User config file (gh-9)
- YAML file for static configuration
Web admin (gh-17)
Full documentation (gh-21)