Sobre el proyecto
Diffuse es un reproductor de música que se conecta a almacenamiento en la nube y distribuido. Está construido como una colección de elementos DOM personalizados independientes de framework (componentes web) que permiten a los desarrolladores ensamblar un reproductor de audio, procesar y explorar metadatos de audio, listar archivos y transmisiones de audio de varias fuentes, APIs y servidores, y definir cómo se guardan o sincronizan los datos de usuario.
Partes clave del proyecto:
- Elementos personalizados: componentes web reutilizables para construir reproductores, manejo de metadatos, listado de fuentes y persistencia de datos de usuario.
- Cargador HTML: carga "interfaces" desde la caché local de datos de usuario, el conjunto predeterminado de Diffuse, URLs HTTP(S), o URIs de AT Protocol. Las interfaces reciben "funciones" opcionales llamadas facets, también cargadas desde la caché local.
- La base: una configuración predeterminada de los elementos personalizados utilizada en los facets predeterminados. Los elementos pueden comunicarse entre pestañas y marcos mediante un atributo `group`.
- Léxicos: esquemas de datos en forma de léxicos de atproto, almacenados en el directorio `lexicons`.
El objetivo es software cooperativo y maleable. Más detalles están en el sitio web del proyecto.
Uso para desarrolladores: la librería se puede consumir a través de la instancia desplegada (los elementos enlazan a archivos JavaScript) o mediante el paquete JavaScript en JSR. Los elementos personalizados se usan como cualquier otro elemento DOM, ya sea en HTML o instanciando una clase. Un ejemplo muestra la carga del elemento del motor de cola mediante una etiqueta script o importándolo y añadiéndolo al cuerpo del documento con un atributo `group`.
La compilación desde el código fuente requiere Deno. Los comandos incluyen generar definiciones de tipos, compilar y servir. La pila incluye Deno, componentes web, web workers (shared y service workers), signals (actualmente alien-signals, con esperanza en la propuesta de TC39), lit-html, music-metadata, Lume y ESBuild.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.