Об этом проекте

Diffuse — это музыкальный плеер, который подключается к облачным и распределенным хранилищам. Он построен как набор независимых от фреймворков пользовательских DOM-элементов (веб-компонентов), которые позволяют разработчикам собирать аудиоплеер, обрабатывать и просматривать аудиометаданные, перечислять аудиофайлы и потоки из различных источников, API и серверов, а также определять, как сохраняются или синхронизируются пользовательские данные. Ключевые части проекта: - Пользовательские элементы: переиспользуемые веб-компоненты для создания плееров, обработки метаданных, перечисления источников и сохранения пользовательских данных. - HTML-загрузчик: загружает «интерфейсы» из локального кэша пользовательских данных, стандартного набора Diffuse, HTTP(S)-URL или URI AT Protocol. Интерфейсы получают дополнительные «функции», называемые фасетами, также загружаемые из локального кэша. - Основа: стандартная конфигурация пользовательских элементов, используемая в стандартных фасетах. Элементы могут обмениваться данными между вкладками и фреймами через атрибут `group`. - Лексиконы: схемы данных в виде лексиконов atproto, хранящиеся в каталоге `lexicons`. Цель — кооперативное, податливое программное обеспечение. Более подробная информация доступна на сайте проекта. Использование разработчиками: библиотеку можно использовать либо через развернутый экземпляр (элементы ссылаются на JavaScript-файлы), либо через JavaScript-пакет на JSR. Пользовательские элементы используются как любые другие DOM-элементы, либо в HTML, либо путем создания экземпляра класса. Пример показывает загрузку элемента движка очереди через тег script или его импорт и добавление в тело документа с атрибутом `group`. Сборка из исходников требует Deno. Команды включают генерацию определений типов, сборку и обслуживание. Стек включает Deno, веб-компоненты, веб-воркеры (shared и service workers), сигналы (в настоящее время alien-signals, с надеждой на предложение TC39), lit-html, music-metadata, Lume и ESBuild.