The project
Why difuzio
Mailing lists remain the simplest and most durable way to write to a group: no account to create, no application to install, just an address. The engines running them, however, have aged. Sympa has rendered and still renders immense service, but installing, configuring and operating it calls for expertise that has become rare.
difuzio takes on the same job with today's tools: a single executable written in Go, a database as the only source of truth, Debian packages, a web console and an API. The aim is not to do more, but to make what already existed approachable, and to take seriously what modern recipients demand - DMARC alignment, one-click unsubscribe, careful handling of bounces and complaints.
The principles behind the code
- No silent failure. Any branch that rejects, skips or fails logs its reason. Authorisation denials also go to the audit log. An incident should be diagnosed from traces, not from guesswork.
- One business layer. The web console and the API call exactly the same code. A rule cannot apply on one side and not on the other.
- Strict isolation. Anything outside your scope answers "not found", not "forbidden". The existence of a list belonging to another domain must not leak.
- No superfluous dependency. No message broker, no online service, no remote object store. A database, a binary, files.
- What is written is verified. The project ships unit and integration tests, including an end-to-end test that feeds a message in over LMTP, has it fanned out, then sends back a bounce that disables the subscriber.
Status
The project's thirteen-phase implementation plan is fully implemented, tested and published, along with the operator documentation that goes with it. difuzio is young software: it does not have Sympa's twenty years in the field behind it, and you should know that before migrating critical infrastructure. In exchange, its specification, its plan and its review checklist are public in the repository, line by line.
Licence
difuzio is free software, published under the GNU General Public License version 3
or later (SPDX: GPL-3.0-or-later). You may use, study, modify and redistribute
it, including for your own customers, under the same terms.
Contributing
The public repository is at https://inligit.fr/cap-rel/difuzio. Issues and patches are welcome there.
Before proposing code: the repository contains the full specification, the implementation plan and an expert review checklist whose identifiers are quoted directly in code comments. Conventions are strict and enforced in review - build, static analysis and tests green before anything is submitted, code comments in English, documentation in French, no unfinished code.
Who publishes difuzio
difuzio is developed and published by CAP-REL. The software is free and will remain so; guidance, installation, hosting and development of specific features are paid services. See Contact.