Announcing CoreDNS
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:
- errors:
- log errors, not tested, it compiles, no idea if it actually works.
- log:
- same story as
errors.
- proxy:
- proxy request to a remote server, works, although flaky (prolly).
- prometheus:
- metrics; works. Not tested (i.e. full scraping with Prometheus).
- reflect:
- reflection service whenever you query for
who.<domain>
. Mainly used for testing. - rewrite:
- can rewrite types in the request. Lightly tested.
- file:
- horrendous implementation that sort of works (some of the time).
- etcd:
- 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.
Read other posts