djbdns with Felix von Leitner's IPv6 patch will work for your requirements on GNU/Linux.
You run the authoritative nameserver from DJB dæmontools, which takes care of the UDP/53 side of things. The zone file format is plaintext, but compiled into a “const” database. The SOA serial number can be set freely and defaults to the mtime of the database. You can easily manage and compile the database on your PC/laptop and rsync
it to the tiny box.
The axfrdns
utility, part of djbdns, is run from inetd (in my own setup) or dæmontools/ucspi-tcp, and takes care of the TCP/53 side. It allows BIND, PowerDNS and other clients to do AXFR (and, with Fefe's patch, IXFR) transfers from the zones.
If you have a secondary server running djbdns, it's much easier to just rsync
the compiled zone file to it (take care to use rsync options that ensure the mtime is the same, such as -a
) instead of doing AXFR.
DJBDNS is extremely memory efficient: on my MirBSD/i386 system, the nameserver with eight zones takes up only 236K RAM (while being statically linked; you can do static or dynamic, possibly with dietlibc), and a fully recursive DNS cache comes in at just under 2 MiB. The overhead for dæmontools and logging is in the same range. Only AXFR requests cause a new process to be spawned temporarily; the authoritative nameserver is one single long-running executable.