continuum-proxy

Edge gateway daemon for the Continuum print farm platform. Runs on a Linux SBC on-site, discovers and talks to printers over the LAN, and maintains a resilient uplink to the cloud control plane (continuum-backend).

Responsibilities

  • Uplink (src/uplink/): persistent WebSocket connection to wss://api.domain.com/ws/edge/v1 with exponential-backoff reconnects, heartbeat ping/pong, and inbound task dispatch.
  • Printer adapters (src/adapters/): protocol clients per printer vendor — Bambu Lab (MQTT 8883 + FTPS 990), PrusaLink (REST), Klipper (Moonraker WS).
  • Plate changer (src/plate_changer/): mechanical cycle execution and sensor validation over GPIO/serial for automated plate-swap hardware.
  • Local cache (rusqlite): buffers telemetry and job state through connectivity gaps so nothing is lost if the uplink drops.
  • go2rtc watchdog: supervises the bundled go2rtc process for camera restreaming (RTSP/USB → WebRTC).

Getting started

cp .env.example .env
cargo run

Structure

src/
  main.rs            Multi-threaded async engine: uplink, discovery, go2rtc watchdog
  uplink/             Cloud WebSocket client (reconnect, heartbeat, dispatch)
  adapters/           bambu.rs, prusalink.rs, moonraker.rs printer clients
  plate_changer/      Mechanical cycle control + sensor validation
  discovery/          LAN printer discovery (SSDP / mDNS / static config)
S
Description
Continuum platform: continuum-proxy
Readme 210 KiB
Languages
Rust 100%