Version 2.2.0 (released on July 22, 2024)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Improved handling of very large DNS responses.
- Solved a memory access violation in the address cache.
- Removed the User-Agent header from all DNS-over-HTTPS requests.
- Improved handling of HTTPS query types for domain names in the hosts cache.
- Solved a bug that let Acrylic send reverse lookups for private addresses in ANY query types even when ForwardPrivateReverseLookups was set to "No".
Version 2.1.1 (released on August 5, 2022)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Solved a file permission vulnerability in Acrylic's setup.
- Solved an unquoted path vulnerability in Acrylic's setup.
- Solved a bug that made Acrylic discard DNS responses larger than 4096 bytes as malformed packets.
Version 2.1.0 (released on June 30, 2021)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Added a domain name affinity mask tester to the Acrylic UI desktop application.
- The time it takes for the Acrylic service to stop or restart has been significantly improved.
- Solved a bug that made Acrylic ignore the value of the DoHProtocolReuseConnections configuration parameter for WinHttp when set to "No".
Version 2.0.0 (released on October 31, 2020)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Stability and performance improvements in many areas.
- Added support for query type affinity masks when saving items into the address cache.⁽¹⁾
- Added support for domain name affinity masks when saving items into the address cache.⁽²⁾
- Improved handling of truncated DNS responses with support for resolving DNS requests over TCP.
- The sinkholing of IPv6 lookups is now easier thanks to a dedicated parameter in the Acrylic configuration file.⁽³⁾
- The hit log has been improved with better DNS dissection and the addition of the DNS Server Index and the DNS Response Time fields.
(1) The AddressCacheQueryTypeAffinityMask parameter has been added to the Acrylic configuration file.
(2) The AddressCacheDomainNameAffinityMask parameter has been added to the Acrylic configuration file, while the CacheExceptions section, now redundant, has been removed.
(3) The SinkholeIPv6Lookups parameter has been added to the Acrylic configuration file.
Version 1.2.2 (released on February 13, 2020)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Fixed a bug potentially producing transient connectivity errors with some affinity masks when dual stack connectivity is active.
Version 1.2.1 (released on February 9, 2020)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Fixed a bug potentially impacting some DNS-over-HTTPS protocol resolutions when using more than one DNS resolver.
Version 1.2.0 (released on January 25, 2020)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- When using the DNS-over-HTTPS protocol you can now tell Acrylic to use the WinHttp library, instead of the WinInet library.
Version 1.1.1 (released on November 24, 2019)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Fixed a bug potentially impacting the DNS-over-HTTPS protocol when a DNS resolver is configured with a wildcard SSL certificate.
Version 1.1.0 (released on September 30, 2019)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Added support for the DNS-over-HTTPS protocol.
Version 1.0.2 (released on May 31, 2019)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- More informations can now be written into the hit log.⁽¹⁾
- Support for legacy mode in the hit log has been removed.
- The hit log and the debug log performance has been improved.
- The address cache performance has been improved with the periodic pruning of obsolete items.⁽³⁾
- Reverse lookups (a.k.a. PTR queries) for private IP ranges are not forwarded by default to upstream DNS servers anymore.⁽²⁾
- All query types can now be used in affinity masks, either explicitly using A, AAAA, CNAME, MX, NS, PTR, SOA, SRV and TXT or implicitly using their decimal values.
(1) The HitLogFullDump parameter has been added to the Acrylic configuration file.
(2) The ForwardPrivateReverseLookups parameter has been added to the Acrylic configuration file.
(3) The AddressCachePeriodicPruningTime parameter has been added to the Acrylic configuration file.
Version 1.0.1 (released on February 28, 2019)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- The HitLogMinPendingHits and the HitLogMaxPendingHits parameters have been added to the Acrylic configuration file.
Version 1.0.0 (released on January 31, 2019)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- The stats log has been removed.
- Added caching support for failure DNS responses.⁽¹⁾
- Improved the stability and the performance of the communication layer.
- All file I/O operations now use buffered streams for increased throughput.
- Writing to the hit log is now asynchronous and does not block the resolver thread anymore.
- The AddressCacheInMemoryOnly parameter has been added to the Acrylic configuration file.
- Added configuration parameters for better control of communication timeouts and behaviour.
- The DNS request hashing algorithm is now MD5, which has better collision resistance than Crc64.⁽²⁾
- The setup now aborts the installation if an old version of Acrylic is detected (because it must be uninstalled first).
- Added cache exceptions to the Acrylic configuration file to improve the reliability of the Network Connection Status icon.
- The hosts cache data structure has been rewritten to improve its performance and to reduce its memory consumption for heavy workloads.
- The address cache data structure has been rewritten to improve its performance and to reduce its memory consumption for heavy workloads.⁽²⁾
- The OpenAcrylicConfigurationFile and OpenAcrylicHostsFile command line options have been added to the Acrylic DNS Proxy UI desktop application.
(1) The AddressCacheFailureTime and IgnoreFailureResponsesFrom... parameters have been added to the Acrylic configuration file.
(2) The format of the AddressCache.dat file has changed. If you are upgrading Acrylic be sure to delete any existing AddessCache.dat file before use.
Version 0.9.39 (released on June 25, 2018)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Added batch files for controlling the Acrylic service.
- Fixed a stack overflow bug when inserting a large number of items in the address cache.
- The Acrylic DNS Proxy UI desktop application now opens as a normal window and remembers its state, position and size when closed.
Version 0.9.38 (released on May 1, 2018)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Added support for FORWARD entries in the AcrylicHosts.txt file.
- The experimental http server has been removed. It was not worth the effort to maintain it.
- The Acrylic service name has been changed from AcrylicServiceController to AcrylicDNSProxySvc for clarity.
- The Acrylic DNS Proxy UI desktop application has been added to the project to simplify editing configuration and controlling the service.
- As a consequence of the previous point the AcrylicController.exe and the AcrylicRegExTester.exe console applications (now redundant) have been removed.
- The syntax for specifying exceptions to regular expressions and patterns in the AcrylicHosts.txt file has been changed in favor of the more powerful FORWARD entries.
- The WhiteExceptionsSection in the AcylicConfiguration.ini file is not supported anymore. Better results can be obtained using the more powerful FORWARD entries in the AcrylicHosts.txt file.
Version 0.9.37 (released on November 12, 2017)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Fixed a regression (introduced in version 0.9.36) when loading hosts files containing multiple entries per line.
Version 0.9.36 (released on November 5, 2017)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Added support for NXDOMAIN entries in the AcrylicHosts.txt file.
- Fixed a bug when loading hosts files containing domain names already sorted in alphabetical order.
Version 0.9.35 (released on November 6, 2016)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- The number of simultaneous requests that can be handled by Acrylic has been increased.⁽¹⁾
(1) You will probably notice a difference only if you are using Acrylic as a DNS server for a relatively large number of clients on your home network.
Version 0.9.34 (released on July 1, 2016)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- The setup now tries to add a firewall rule to allow inbound traffic to the Acrylic service.
- A console application (AcrylicRegExTester) to test regular expressions against domain names has been added to the project.
- Fixed a rare bug in the way the AcrylicHosts.txt file was read. Support for Old Macintosh line terminator style has been dropped.
- The regular expression engine has been replaced with PCRE (many more features and about 3.5 times faster than the previous one).⁽¹⁾
(1) More info about the regular expression engine and its syntax can be found at the PCRE Project official page.
Version 0.9.33 (released on June 17, 2016)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- The time to live can now be explicitly configured for DNS responses generated by Acrylic.
- Added support for multiple line terminator styles (Windows, Unix & Old Macintosh) in the AcrylicHosts.txt file.
- Added %TEMP%, %APPDATA% and %LOCALAPPDATA% to the list of templates supported within the hit log and stats log file names.
Version 0.9.32 (released on May 27, 2016)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Improved logging (now including Windows IP configuration at startup).
- Added support for including external files from within the AcrylicHosts.txt file.
- Added support for the SOCKS 5 protocol (allowing for example DNS over TCP resolution through TOR).⁽¹⁾
- Introduced an experimental HTTP server (disabled by default) useful for providing default content to browsers.
(1) For the time being only the NO AUTHENTICATION REQUIRED method for SOCKS 5 is available. More will come in the future.
Version 0.9.31 (released on April 13, 2016)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Solved a bug which prevented Acrylic to read configuration entries larger than 2048 characters.
- Improved resolving of A (IPv4) and AAAA (IPv6) requests from the AcrylicHosts.txt file when one of the two entries is missing.⁽¹⁾
(1) If Acrylic receives an AAAA request and only the A record has been specified inside the AcrylicHosts.txt file (or vice-versa) it will send an empty response to the client, instead of forwarding the request.
Version 0.9.30 (released on February 15, 2016)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Improved handling of missing or incomplete IPv6 support on Windows versions prior to Windows Vista or Windows Server 2008.
Version 0.9.29 (released on February 12, 2016)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Added support for IPv6.⁽¹⁾
- Added support for DNS over TCP.
- Added source port randomization to DNS over UDP.
- The NSIS installer has been upgraded to the latest version.
- Added /NoLog and /NoBanner command line options to the console version.
- Added batch files for the most common control operations on the Acrylic service.
- Gaps are now allowed in DNS server configurations (e.g. a primary and a tertiary DNS server without a secondary DNS server configured.)
- The *ServerHostNameAffinityMask configuration options have been renamed to *ServerDomainNameAffinityMask for consistency with the source code.
- The LocalBindingAddress and LocalBindingPort configuration options have been replaced by LocalIPv4BindingAddress, LocalIPv4BindingPort, LocalIPv6BindingAddress and LocalIPv6BindingPort.
(1) IPv6 addresses can now be specified for any of the configured DNS servers and within the AcrylicHosts.txt file.
Version 0.9.28 (released on September 22, 2015)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Solved a bug regarding AAAA queries not resolved properly from the AcrylicHosts.txt file.
Version 0.9.27 (released on July 9, 2015)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- A "portable" version is now available.⁽¹⁾
- Added a better description to the Acrylic DNS Proxy service.
- Fixed a mismatch between implemented DNS query types and IANA codes.
- Better handling of the '>' operator for wildcards within the AcrylicHosts.txt file.
- Service name changed from AcrylicController to AcrylicServiceController. The service display name though is still "Acrylic DNS Proxy Service".
(1) It is truly portable only if you use the console version. If you use the Acrylic DNS Proxy service you still have to register it using one of the provided batch files.
Version 0.9.26 (released on April 4, 2015)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- The DNS server response dissector has been improved.
- UPX compression of executables has been removed due to the higher probability of anti-virus' false alarms.
- The hit log can now be produced in legacy (0.9.24) mode to ease compatibility issues with already existing log analyzers.
Version 0.9.25 (released on March 29, 2015)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- EDNS & DNSSEC are now supported (via UDP only).
- Handling of DNS server failure responses has been improved.
- All executables are now compressed with UPX to reduce the size of the setup package.
- Preconfigured to point to Google Public DNS servers instead of OpenDNS servers upon installation.
- The AcrylicController application now supports silent operations (no dialog boxes) for easier automation.
- The AcrylicController application now looks for files in the installation directory instead of in the current directory.
- Added support for the '>' shortcut character inside the AcrylicHosts.txt file for matching a domain and all its subdomains.
- Logging has been improved everywhere with better request and response dissectors available in the debug file and in the hit log.
- Loading performance of the AcrylicHosts.txt file when domain names are sorted alphabetically in ascending order has been improved.
Version 0.9.24 (released on January 3, 2014)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- It is now possible to disable the address cache altogether making Acrylic work as a forwarding-only DNS proxy.
- It is now possible to specify query type affinity masks for DNS servers (defining which server is going to resolve requests for particular query types).⁽¹⁾
(1) The configuration option previously used to set the host name affinity mask for DNS servers has been renamed for consistency.
Version 0.9.23 (released on August 25, 2013)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- It is now possible to configure up to 10 simultaneous DNS servers.
- By not configuring any DNS server it is now possible to use Acrylic as a static cache.
Version 0.9.22 (released on January 28, 2013)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Solved a bug which prevented proper forwarding to DNS servers when certain affinity mask patterns were specified.
Version 0.9.21 (released on October 8, 2012)
Acrylic files are hosted on external servers. If you want to check their integrity verify that their hashes match with the ones shown here.
- Solved a bug for which requests of type AAAA (IPv6) did not get resolved by Acrylic through the AcrylicHosts.txt file even when correctly entered.
Version 0.9.20 (released on September 26, 2012)
- It is now possible to configure up to 4 simultaneous DNS servers.
- Wildcards in the AllowedAddressesSection, CacheExceptionsSection and WhiteExceptionsSection are now allowed.
- Solved a bug for which requests for hosts defined in the AcrylicHosts.txt file got a response of type A no matter what the request query type was.
- It is now possible to specify affinity masks for DNS servers (patterns defining which server is going to resolve requests for particular domain names).
Version 0.9.19 (released on September 7, 2011)
- Solved a bug which prevented Acrylic to work with DNS servers on localhost.
Version 0.9.18 (released on June 24, 2011)
- Preconfigured to point to OpenDNS servers upon installation.
- It is now possible to disable real-time data compression through a configuration option.
- It is now possible to ignore negative responses coming from DNS servers through configuration options.
- It is now possible to define regular expressions in the AcrylicHosts.txt file.⁽¹⁾
- Added support for host name compression in the AcrylicHosts.txt file.⁽¹⁾
- Solved a bug related to incorrect forwarding of silent updates.
(1) The format of exceptions has changed. Please see the comments within the AcrylicHosts.txt file for further details.
Version 0.9.17 (released on January 8, 2011)
- Slightly improved performance statistics.
- Acrylic cache data can now be purged through a shortcut in the Start Menu.⁽¹⁾
(1) This feature, removed in the past, has been reintroduced into the project.
Version 0.9.16 (released on December 19, 2010)
- Finally added an about dialog with info on installed version.
- Better handling of comments within lines in the AcrylicHosts.txt file.
- Activation of the stats log has been moved into the AcrylicConfiguration.ini file.
- Acrylic can now be run as a standalone console application and not only as a Windows service.⁽¹⁾
(1) This feature, removed in the past, has been reintroduced into the project.
Version 0.9.15 (released on November 24, 2010)
- The setup is now compatible with Windows Vista and Windows 7.
- Comparisons within the AcrylicHosts.txt file are now case insensitive.
- Solved a bug which affected only the dates (the times were correct) written inside the hit log.
- It is now possible to specify a UDP port other than the default (53) for any of the DNS servers (primary, secondary and tertiary).