31: Bringing All These Failures Together

I’m writing about rspamd for Run Your Own Mail Server.

Have you ever looked at a JSON configuration and thought, That could be a regular Unix text file? YAML and JSON and Unix text all represent similar data in different formats. Each has strengths and weaknesses, and each has syntactical idiosyncracies that earn them devotees. JSON might be the most complete configuration store, but it’s not designed to be written by hand and very few people advocate doing so. YAML looks writable, until it fails to validate. Even plain text can go wrong. Every format is full of failure.

Universal Configuration Language (UCL) brings all these failures together. UCL-aware tools can read Unix-style text configurations as well as various JSONs, YAML, and messagepack. They can output configurations in any of these formats. If it makes sense for you to configure an application in YAML, do that. If someone else needs the same application to use Unix-style text configuration, that’s fine. UCL also simplifies programmatic configuration changes.

I have to finish the rspamd chapter and write two more chapters, tentatively titles “Detritus” and “Other Detritus,” and the first draft will be complete. Sponsor it while you can. Or not. Whatever.