vaha_
AR العربية
← الفهرس No. 17 / 21

ملف · 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.

المجال
Open source · media server
السنوات
2026 → present
الحالة
يعمل
النظام
macOS · Linux · Windows · Web
Rustiio — DLNA/UPnP media server
لقطة شاشة · No. 17 Rustiio — library, devices and the playback decision on one screen.

ماذا يفعل

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

الطبقات

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

التقنيات

03 / 03
اللغات RustTypeScriptSQL 03
الأطر والأدوات axumtokioSQLite + FTS5ffmpegSvelte 5Tauri 2 06
البنية التحتية systemdNVIDIA NVENCLAN 03

كل الأنظمة في الملف

إلى الفهرس →