Skip to content

Changelog

All notable changes to Hornet are documented here.


[0.1.0] — Initial release

Added

  • Parse named.conf from a string or file path (parse_named_conf, parse_named_conf_file)
  • Parse DNS zone files from a string or file path (parse_zone_file, parse_zone_file_from_path)
  • Write ASTs back to valid BIND9 text (write_named_conf, write_zone_file)
  • WriteOptions with configurable indent, keyword style, class emission, and statement spacing
  • Semantic validation for named.conf (validate_named_conf) covering:
    • Undefined ACL references
    • Duplicate zone declarations
    • Primary zones without file directives
    • Secondary zones without primaries directives
    • Forward zones without forwarders
    • DNSSEC/recursion conflicts
    • Unrecognised key algorithms
    • Invalid CIDR prefixes
    • Empty key secrets
    • Undefined logging channels
    • Zone name length violations
  • Semantic validation for zone files (validate_zone_file) covering:
    • Missing or duplicate SOA records
    • Missing NS records
    • TXT chunk/total size limits
    • Null MX detection
    • Non-standard CAA tags
  • Support for 9 named.conf statement types: options, zone, view, acl, logging, controls, key, primaries/masters, server, include, unknown blocks
  • Support for 24+ DNS record types: A, AAAA, NS, MX, SOA, CNAME, PTR, HINFO, TXT, SRV, CAA, SSHFP, TLSA, NAPTR, LOC, DS, DNSKEY, RRSIG, NSEC, NSEC3, NSEC3PARAM, HTTPS, SVCB, ANAME/ALIAS, TYPE fallback
  • $ORIGIN, $TTL, $INCLUDE, $GENERATE zone file directives
  • Optional serde feature flag (adds Serialize/Deserialize to all AST types)
  • hornet-cli binary with parse, zone, check, check-zone, fmt, convert subcommands
  • Rich parse error reporting via miette with source spans
  • Legacy keyword normalisation (masterprimary, slavesecondary)

Versioning

Hornet follows Semantic Versioning:

  • Patch (0.1.x) — Bug fixes and documentation; no breaking changes
  • Minor (0.x.0) — New record types, statement fields, or validation rules; no breaking changes
  • Major (x.0.0) — Breaking changes to the public API or AST shape