Skip to content

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

Prototype Stage III (Extras)

  • ⬜ User config file (gh-9)
    • YAML file for static configuration
  • ⬜ Web admin (gh-17)
    • simple web interface
  • ⬜ Full documentation (gh-21)
    • complete documentation