Changelog¶
All notable changes to Hornet are documented here.
[0.1.0] — Initial release¶
Added¶
- Parse
named.conffrom 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) WriteOptionswith 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
filedirectives - Secondary zones without
primariesdirectives - 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.confstatement 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,$GENERATEzone file directives- Optional
serdefeature flag (addsSerialize/Deserializeto all AST types) hornet-clibinary withparse,zone,check,check-zone,fmt,convertsubcommands- Rich parse error reporting via miette with source spans
- Legacy keyword normalisation (
master→primary,slave→secondary)
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