Le projet
Pourquoi difuzio
Les listes de diffusion restent l'outil le plus simple et le plus durable pour écrire à un groupe : pas de compte à créer, pas d'application à installer, une adresse et c'est tout. Les moteurs qui les font tourner, eux, ont vieilli. Sympa a rendu et rend encore d'immenses services, mais son installation, sa configuration et son exploitation demandent un savoir-faire.
difuzio reprend le même métier avec les outils d'aujourd'hui : un exécutable unique écrit en Go, une base de données comme seule source de vérité, des paquets Debian, une console web et une API. L'idée n'est pas de faire plus, mais de rendre accessible ce qui existait déjà, et de traiter sérieusement ce que les destinataires modernes exigent - alignement DMARC, désabonnement en un clic, gestion des rebonds et des plaintes.
Les principes qui guident le code
- Aucune erreur silencieuse. Toute situation / mail qui rejette, ignore ou échoue journalise sa raison. Les refus d'autorisation partent en plus dans le journal d'audit. Un incident doit se diagnostiquer avec les traces, pas avec une reconstitution.
- Une seule couche métier. La console web et l'API appellent exactement le même code. Une règle ne peut pas s'appliquer d'un côté et pas de l'autre.
- Isolation stricte. Ce qui est hors de votre portée répond "introuvable", pas "interdit". L'existence d'une liste appartenant à un autre domaine ne doit pas fuir.
- Pas de dépendance superflue. Pas de courtier de messages, pas de service en ligne, pas de dépôt d'objets distant. Une base, un binaire, des fichiers.
- Ce qui est écrit est vérifié. Le projet embarque une suite de tests unitaires et d'intégration, y compris un test de bout en bout qui fait entrer un message par LMTP, le fait distribuer, puis renvoie un rebond qui désactive l'abonné.
État d'avancement
Le plan d'implémentation du projet, en treize phases, est intégralement implémenté, testé et publié, avec la documentation d'exploitation qui va avec. difuzio est un logiciel jeune : il n'a pas derrière lui les vingt ans de terrain de Sympa, et il vaut mieux le savoir avant de migrer une infrastructure critique. En contrepartie, sa spécification, son plan et sa liste de vérification sont publics dans le dépôt, ligne par ligne.
Licence
difuzio est un logiciel libre, publié sous licence GNU General Public License
version 3 ou ultérieure (SPDX : GPL-3.0-or-later). Vous pouvez l'utiliser,
l'étudier, le modifier et le redistribuer, y compris pour vos clients, aux mêmes
conditions.
Contribuer
Le dépôt public est à l'adresse https://inligit.fr/cap-rel/difuzio. Les tickets et les propositions de correctifs y sont les bienvenus.
Avant de proposer du code : le dépôt contient la spécification complète, le plan d'implémentation et une liste de vérification d'expert dont les identifiants sont cités directement dans les commentaires du code. Les conventions sont strictes et tenues en revue - construction, analyse statique et tests verts avant tout envoi, commentaires en anglais, documentation en français, aucun code inachevé.
Qui publie difuzio
difuzio est développé et publié par CAP-REL. Le logiciel est libre et le restera ; l'accompagnement, l'installation, l'hébergement et le développement de fonctionnalités spécifiques sont, eux, des prestations. Voir Contact.