Libdns: Core interfaces for universal DNS record manipulation across providers

  • There's this note about Octodns and Dnscontrol that needs clearing:

      WARNING: OctoDNS assumes ownership of any domain you point it to. When you tell it to act it will do whatever is necessary to try and match up states including deleting any unexpected records. Be careful when playing around with OctoDNS.
    
    That makes it sound like a design failure, but Octodns and Dnscontrol are not the same type of tool. Those tools are declarative, and libdns is imperative.

    With Octodns you declare a state, and the tool makes whatever is needed to sync it. That's why it will delete any records that aren't declared in your configuration (you can configure it to ignore certain records, though). Hence, it's idempotent.

    Libdns is imperative, you ask it to do certain task (be it creation, modification or deletion) regardless of the initial or final state.

    So, both are useful, but for different tasks.

  • I've been thinking about making something like this for years, so I'm really glad it exists now!

    A cool idea now would be to make a little lightweight web GUI out of it to manage all your domains in one place...