## v1.60.2
* Fix deletion of TXT records with spaces in dynamic updates (thanks Sean Dilda)
* Fix use of non-default ports in Dnsruby::Resolver (thanks Thomas Morgan)
* Fix NAPTR encoding for null rdata dynamic update packets
* Fix CAA resource record encoding
* Avoid changing ruby global thread abort behavior (thanks Brent Cook)
## v1.60.1
* DNSSEC validation switched OFF by default (but can still be switched on)
* Add APL RR support (thanks Manabu Sonoda)
* Various test fixes (thanks Keith Bennett)
* 'include' issues fixed (thanks Keith Bennett!)
* Fixnum replacement (thanks Keith Bennett)
* Zone transfer fixes (thanks Manabu Sonoda)
* Name decoding fix
* MX record passing error now raised
* CAA RR support (thanks Richard Luther)
* TLSA RR support (thanks Manabu Sonoda)
## v1.58.0
* Add TCP pipelining (reusing a single TCP connection for multiple requests).
* Enhance zone reading, including reading data from a string.
* Add add_answer! method for adding duplicate answers, as needed for an AXFR response.
* Add support for GPOS and NXT resource records.
* Test cleanup, including removal of use of Nominet servers, soak_test cleanup.
* Refactorings: MessageDecoder, Resolv, Resolver (part).
* Fix zone reader adding unwanted dot to relative hostnames being converted to absolute.
* Fix default access for tsig options in Resolver.
* Fix ZoneTransfer not to use deprecated SingleResolver.
* Fix Resolver bug in parameter to create_tsig_options.
* Fix tests to always use working copy and not gem.
## v1.57.0
* Add query_raw method as alias for send_plain_message, with option to raise or return error.
* Fixed a bug in RR hash calculation where TTL should have been ignored but wasn't.
* Add support for (obsolete) GPOS resource record type.
* Tweak Travis CI configuration.
* Fix zone reader for case where a line contains whitespace preceding a comment.
* Add post install message.
* Improve README.
* Moved content of NEWS to RELEASE_NOTES.md.
* Use git ls-files now to determine files for inclusion in gem.
## v1.56.0
* Drop support for Ruby 1.8, using lambda -> and hash 'key: value' notations.
* First release since the move from Rubyforge to Github (https://github.com/alexdalitz/dnsruby).
* Add EDNS client subnet support.
* Relocate CodeMapper subclasses, Resolv, RR, and RRSet classes.
* Add Travis CI and coveralls integration.
* Improve Google IPV6 support.
* Convert some file names to snake case.
* Remove trailing whitespace from lines, and ensure that comments have space between '#' and text.
* Restore test success when running under JRuby.
* Disabled attempt to connect to Nominet servers, which are no longer available.
* Convert from test/unit to minitest/autorun to support Ruby 2.1+.
* Remove setup.rb.
* Other minor refactoring and improvements to production code, test code, and documentation.
o Validation routine fixes
o Ruby 1.9 fixes
o Recursor fixes
o IPv4 Regex fixes
o Fixes for A/PTR lookups with IP-like domain name
o TXT and SSHFP processing fixes
o Default retry parameters in Resolver more sensible
* TXT record presentation format parsing fixes.
* NAPTR record presentation format parsing fixes.
* SEP flag no longer required (for use with Combined Signing Key).
* Validation routines improved.
* Recursor now handles hints and nameservers better.
* Various bug fixes.
* Fixes for CERT and TSIG, DNAME and RRSet.
* Fixes for RP records.
* Some handling of priming responses with no additional section.
* Validation disabled for the DNS class
* DNSKEY#key= raises ArgumentError if bad key used at creation.
* Arrays of DNSKEYs allowed for verify_rrset().
* dnssec-bis-updates recommendation for NSEC and RRSIG.
* ZoneReader handles absolute binary names properly.
* Test fixes for more platforms.
It provides a complete DNS client implementation, including full DNSSEC support.
Dnsruby is currently used in projects such as OpenDNSSEC and ISC's DLV service.