À propos du projet

Burble est une plateforme de communications vocales auto-hébergeable destinée aux utilisateurs qui privilégient la latence, la confidentialité et le contrôle. Son objectif déclaré est de combiner un traitement audio sérieux avec une connexion sans friction via navigateur : aucun téléchargement, aucun compte. Le README décrit le déploiement comme une seule commande, avec un serveur, un client web et un composant VeriSimDB lancés via un pilote compose Rust interne à l'arborescence appelé selur-compose. Architecture et fonctionnalités - Ossature Erlang/OTP fournissant des arbres de supervision, des mises à jour de code à chaud et l'isolation des fautes, afin qu'une salle plantée ne fasse pas tomber le reste du système. - Voix WebRTC avec connexion via navigateur ; les corps SDP de signalisation sont transportés par défaut sur un plan binaire Bebop, avec JSON comme option de désactivation explicite et repli automatique. - Quatre modes de topologie, du serveur unique (monarchique) à un maillage entièrement distribué avec E2EE obligatoire, sélectionnés via une variable d'environnement. - Détection de source d'horloge Precision Time Protocol (IEEE 1588) avec repli gracieux vers phc2sys, NTP ou l'horloge système ; mesure de gigue et télémétrie d'alignement multi-nœuds incluses. - Une bibliothèque cliente intégrable, citée comme utilisée dans un jeu coopératif asymétrique et un espace de travail en panneaux. - Interopérabilité de pont expérimentale : un module de relais Mumble/Murmur existe mais n'est pas démarré par l'arbre de supervision ni validé contre un vrai serveur Murmur. Les ponts Jitsi et Matrix ne sont que des éléments de feuille de route. Rapport d'état honnête Le README est remarquablement explicite sur ce qui n'est pas encore réel. Il indique que le projet est en pré-production (auto-évaluation CRG grade C, visant B) et associe chaque affirmation à du code plus un test, ou la signale. Le transport QUIC et l'isolation des plantages WASM nécessitent des NIF optionnels désactivés dans la construction par défaut. Le PTP sub-microseconde exige une carte réseau compatible PTP et le chemin matériel n'est pas validé. Les preuves ABI Idris2 compilent et passent le contrôle de types, mais l'application à l'exécution n'est pas câblée. La latence de bout en bout micro-à-haut-parleur et l'échelle de plus de 500 utilisateurs simultanés ne sont pas évaluées. Le README documente aussi le retrait de plusieurs badges de conformité et de bonnes pratiques parce qu'aucun artefact justificatif n'existait, et oriente les lecteurs vers un fichier de dette énumérant les problèmes connus, y compris des barrières qui ne peuvent pas échouer. Benchmarks Un tableau de microbenchmarks historiques en NIF direct (compression LZ4, annulation d'écho, FFT, convolution, débruitage neuronal) est conservé à titre de provenance uniquement ; le chargeur direct a été retiré et le chemin d'appel actif transmet de l'Opus opaque sans traverser ces noyaux. Développement et tests Construire depuis les sources nécessite Elixir 1.17+, Zig 0.15+ et Bun, plus des paquets système pour la bibliothèque de transport QUIC. Les commandes de test couvrent les tests du serveur Elixir (300+), les tests du coprocesseur Zig et les benchmarks. La barrière de réussite/échec de la CI est décrite comme armée, avec une voie Dialyzer restant consultative. Licence Publié sous CC-BY-SA-4.0, copyright 2026 Jonathan D.A. Jewell.