After some soul searching and help on twitter, I settled on “CoreDNS” as a name for my Caddy fork. CoreDNS, as it is just a shell to run middleware.
The code is up on Github.com. A little warning: The zone implementation is poor, the current middleware is lightly tested, etc., etc. The one thing it does well is chaining the middleware, currently implemented:
- log errors, not tested, it compiles, no idea if it actually works.
- same story as
- proxy request to a remote server, works, although flaky (prolly).
- metrics; works. Not tested (i.e. full scraping with Prometheus).
- reflection service whenever you query for
who.<domain>. Mainly used for testing.
- can rewrite types in the request. Lightly tested.
- horrendous implementation that sort of works (some of the time).
- etcd backend (ala SkyDNS): not implemented.
Also the tests don’t compile :) This seems like a large list, but it is mostly fixing the details (a proper zone implementation will take some time though). In other words:
IF YOU WANT TO HELP, THE TIME IS NOW!
And all help is welcome. I will be filing issues as soon as possible from the TODO file I compiled.