Producto

Visión

Qué es Styx, qué principios lo gobiernan y qué funciona hoy frente a lo que está especificado.

Especificado. La visión es el objetivo. La tabla "Qué hay hoy" separa lo que ya existe en un camino de producción de lo que es diseño.

Qué es

Styx sirve tu biblioteca de medios desde tu propio servidor a la web, a apps nativas y a la tele. Se organiza en dos mitades con una frontera estricta:

  • Bun decide. Un conjunto de servicios (identidad, catálogo, reproducción, fuentes, tareas, tiempo real) decide quién puede ver qué y cómo se reproduce.
  • Zig ejecuta. Un daemon (styx-media-daemon) lee, empaqueta y entrega los bytes de vídeo. Los bytes de vídeo no pasan por JavaScript ni por el bus de mensajes.

Esa separación es lo que permite medir y mejorar el rendimiento de verdad, y es la razón por la que Styx no es un envoltorio de FFmpeg ni de Jellyfin.

Principios que verás en el producto

  • Tu fichero es la fuente de verdad. Los metadatos y la portada se guardan dentro del propio vídeo, no en ficheros aparte (metadatos en el fichero).
  • Todo lo que hace la interfaz existe por API, y por un CLI pensado también para agentes (CLI, agentes).
  • Cuentas abiertas y opcionales: de un usuario suelto a un hogar con un perfil por persona, sin contraseñas por defecto (cuentas).
  • Seguro por diseño. El navegador no guarda tokens, cada petición al daemon lleva una capacidad firmada de un solo propósito y el daemon sólo ve las carpetas que tú le das.
  • Cada servicio es independiente: un proceso o contenedor por responsabilidad, sin modo monolito.
  • Sin claims sin medir. Esta documentación no publica comparativas con Jellyfin hasta que la campaña de medida (dec-0112) las respalde.

Qué hay hoy

Verificado contra el código de la rama de integración. "Hoy" significa que existe en un camino de producción; no que el gate de su nodo esté cerrado (eso lo dice el roadmap).

CapacidadEstado hoyPágina
Entregar un vídeo local en la web (HLS sobre HTTP/3)Implementado, con límites (un navegador normal aún no llega al daemon)Reproducción
Dos motores de medios (Zig y libav)ImplementadoMotores
Subir un fichero a un nodo con styx-uploadImplementadoSubir ficheros
Entrar con OIDC y passkeys (Pocket ID)ImplementadoIniciar sesión
Hogares, perfiles, invitaciones, API keys, quick connectEspecificado (dec-0125)Cuentas
Escanear una carpeta entera como bibliotecaEspecificado; hoy sólo se escanea un fichero sueltoRaíces y fuentes
Fuentes remotas (Storage Box por SFTP, WebDAV, SMB)Especificado; el daemon sólo lee raíces localesStorage Box
Metadatos incrustados en el ficheroEspecificado (dec-0126)Metadatos
Importar NFO de JellyfinParcial: un parser de un fichero por vídeo; sin series ni artworkImportar NFO
Subtítulos y pistas de audio alternativasEspecificado; hoy no hay subtítulos en la webPistas y subtítulos
CLI styxEspecificado; apps/cli no tiene código. Sólo existe styx-uploadCLI
Instalar con un comando y actualizarEspecificado (dec-0123, LOCKED); hoy se instala desde el repositorioInstalar
PluginsImplementado como puntos de extensión internos; SDK público pendientePlugins

A quién sirve

El primer usuario es el propio autor: una biblioteca normalizada de H.264 y H.265 en 1080p y 4K, vista sobre todo en Chrome y Chrome Canary. El diseño no se limita a eso: está pensado para que cualquiera pueda alojar su instancia, con su familia, en el hardware que tenga.