vaha_
FR Français
← Index No. 17 / 21

Dossier · Open source · media server

Rustiio

DLNA/UPnP media server

A DLNA/UPnP media server written in Rust as a Serviio replacement: one binary, no runtime dependencies, device profiles instead of hardcoded rules. Ten crates cover discovery, the UPnP services, a SQLite-backed library, the playback decision and an embedded web UI. It serves films and series to TVs on the LAN, remembers watch positions and pulls posters by title ID.

Domaine
Open source · media server
Années
2026 → present
État
en ligne
Système
macOS · Linux · Windows · Web
Rustiio — DLNA/UPnP media server
Capture · No. 17 Rustiio — library, devices and the playback decision on one screen.

Ce qu'il fait

01 / 10
  1. SSDP announce and M-SEARCH responder, probe to see what is on the network
  2. ContentDirectory with Browse, paging and DIDL-Lite output
  3. Byte-range streaming with DLNA headers, seeking works on the TV
  4. Direct / remux / transcode decision per device profile, with the NVENC encoder
  5. 17 built-in profiles plus capture of an unknown device's real headers into a new profile
  6. SQLite catalogue with stable IDs and FTS5 search, watch positions tied to those IDs
  7. Posters by title ID (TMDB, Wikipedia, TVmaze), one poster per series
  8. Locked folders: a PIN from the phone and a QR the TV opens as a video
  9. Web UI (Svelte) embedded in the binary, plus a Tauri desktop app
  10. v1.0.0 release: macOS, Linux and Windows, each shipping its own ffmpeg

Couches

02 / 03

Protocols

SSDPSOAPDIDL-LiteHTTP Range
  • Discovery on UDP 1900, announce and M-SEARCH responder
  • ContentDirectory with Browse and paging, Fault with the right codes
  • protocolInfo and contentFeatures per item, subtitles as their own res
  • Byte-range and seek so the TV can scrub

Library and transcode

RustSQLiteFTS5ffmpegNVENC
  • Folders scanned into a catalogue with stable IDs, the TV remembers ObjectID
  • FTS5 search: prefix on titles, whole words on paths
  • ffprobe metadata, bit depth and subtitles stored, not held in memory
  • Direct / remux / transcode decision, with h264_nvenc and a libx264 fallback
  • Prepare for TV: video copied, audio to AC-3, output every device plays

Interface and packaging

Svelte 5ViteTauri 2rust-embed
  • The web UI builds into dist and is embedded in the binary
  • Bento cards you can drag and collapse, layout kept in localStorage
  • Pages: library, devices, profiles, transcode, logs, statistics
  • The Tauri desktop app runs the same server inside its own process

Technologies

03 / 03
Langages RustTypeScriptSQL 03
Frameworks et outils axumtokioSQLite + FTS5ffmpegSvelte 5Tauri 2 06
Infrastructure systemdNVIDIA NVENCLAN 03

Tous les systèmes au dossier

Retour à l'index →