# Announcing CoreDNS


After some soul searching and help on twitter, I settled on "CoreDNS" as
a name [for my Caddy fork](https://miek.nl/2016/march/14/first-light/).
CoreDNS, as it is just a shell to run middleware.

The code is up on [Github.com](https://github.com/miekg/coredns). 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](https://github.com/skynetservices/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.

