Releases: qwerty541/dns-bench
Releases · qwerty541/dns-bench
v0.14.0
Added
- Added Gcore Public DNS to the built-in servers list.
- Implemented adaptive timeout behavior for clearly unresponsive servers to reduce total benchmark time. After 8 consecutive timeouts for a server, its timeout is reduced to
500 ms; after 16 consecutive timeouts, it is reduced to100 ms. - Introduced a new CLI flag
--disable-adaptive-timeoutto force a fixed timeout for every request when desired. - Docker image published to GitHub Container Registry (GHCR) alongside Docker Hub.
Changed
- Updated base image of Docker container from
debian:13.1-slimtodebian:13.2-slim. - Updated build image of Docker container from
rust:1.90.0torust:1.91.1. - Increased default threads count from
8to16to better utilize modern CPUs. - Increased default requests count from
25to50for more statistically robust results. - Decreased default timeout from
3seconds to1second, improving responsiveness while keeping reliability.
Documentation
- Updated README to reflect new defaults (threads
16, requests50, timeout1s). - Added a security protocol document describing how to report vulnerabilities.
- Updated README installation instructions to include GHCR as an alternative Docker image source.
Dependencies
- Updated
clapfrom 4.5.51 to 4.5.53 - Updated
quick-xmlfrom 0.38.3 to 0.38.4 - Updated
indicatiffrom 0.18.2 to 0.18.3
v0.13.0
Added
- Added FlashStart DNS to the built-in servers list.
- Added arrow symbol which indicates sorting column in the output table header.
Changed
- Replaced previous results table columns
First duration/Average durationwithMin./Max./Avg.columns to provide more comprehensive statistics about DNS servers performance and better matching benchmarking best practices. - Updated other output formats (JSON, XML and CSV) to reflect the changes in the results table structure.
- Centered the contents of the column titles for better appearance and readability.
- Changed base image of Docker container from alpine to debian slim which improves compatibility with various systems and architectures, and also results in a slightly larger image size (~15 MiB => ~25 MiB).
- Restored the support of
linux/arm/v7,linux/386,linux/s390xarchitectures in the Docker image. The docker image of previous version was republished to include these architectures. - Added support for the
linux/riscv64architecture in the Docker image. - Significant internal refactoring of output formatting related code to improve its readability and maintainability.
- Integrated
derive_morelibrary to reduce some boilerplate code with derived implementations.
Documentation
- Updated preview GIFs and PNGs to reflect the latest changes.
- Added clarification about skipped features (system DNS and gateway detection) when using Docker container.
- Made the license badge clickable.
- Added total lines count badge into the readme file.
- Added COCOMO estimation badge into the readme file.
- Added Docker Hub pulls badge into the readme file.
Dependencies
- Updated
clapfrom 4.5.47 to 4.5.50 - Updated
serdefrom 1.0.223 to 1.0.228 - Updated
tomlfrom 0.9.5 to 0.9.8 - Updated
csvfrom 1.3.1 to 1.4.0 - Updated
indicatiffrom 0.18.0 to 0.18.1
v0.12.0
Added
- Implemented automatic detection of gateway (router) address on Linux, Windows and macOS platforms. It will be included in the benchmark in case this address is a DNS provider.
- Added
--skip-gateway-detectionoption to skip the auto-detection of gateway (router) address. - Implemented
dns-bench config listsubcommand to list the current configurations without necessity to run the benchmark or open the file.
Changed
- Changed base image of Docker container from rust to alpine which results in significant reduction of the image size (~650 MiB => ~15 MiB) by @February30th in #301.
- Docker container now uses a
dns-benchbinary entrypoint, so you can pass arguments directly todocker runcommand without necessity to specify/bin/sh -c "dns-bench ...". - Dropped the support of several architectures in the Docker image including
linux/arm/v7,linux/386,linux/s390xdue to migration on the alpine.
Documentation
- Completely reworked the Docker Hub overview to match the style and follow the best practices of this platform.
- Updated documentation according to all the changes and newly added features.
Dependencies
- Updated
clapfrom 4.5.41 to 4.5.47 - Updated
tomlfrom 0.9.2 to 0.9.5 - Updated
quick-xmlfrom 0.38.0 to 0.38.3 - Updated
serdefrom 1.0.219 to 1.0.223 - Updated
serde_jsonfrom 1.0.141 to 1.0.145 - Updated
tokiofrom 1.32.0 to 1.47.1
v0.11.0
Added
- Implemented subcommands which allow users to perform configurations file management without the necessity to run benchmark each time. Here is the list of available subcommands:
dns-bench config init- initializes the configuration file with default values.dns-bench config set [--key value ...]- sets the specified keys to the specified values inside the configuration file.dns-bench config reset- resets the configuration file to its default values.dns-bench config delete- deletes the configuration file.
- Added Vercara UltraDNS Public to the built-in servers list.
Changed
- Updated base image of Docker container from
rust:1.87.0torust:1.88.0 - Changed help template of all commands to include author information and repository link.
Documentation
- Reworked the options section inside documentation into command-line reference section which includes options and subcommands subsections.
- Updated license copyright years.
Dependencies
- Updated
quick-xmlfrom 0.37.5 to 0.38.0 - Updated
indicatiffrom 0.17.11 to 0.18.0 - Updated
tomlfrom 0.8.23 to 0.9.2 - Updated
clapfrom 4.5.40 to 4.5.41 - Updated
anstreamfrom 0.6.7 to 0.6.19 - Updated
miofrom 0.8.8 to 0.8.11 - Updated
serde_jsonfrom 1.0.140 to 1.0.141
v0.10.1
Added
- Implemented build process of the Windows executable file. Starting from this version, the compiled executable file will be attached to each GitHub release.
- Added devcontainer configuration to the repository. It allows you to run the project in a containerized development environment using Visual Studio Code or any other compatible IDE.
Fixed
- Adjusted the automatic detection of system DNS servers on Windows to work with non-English locales. Previously, it could fail if the system language was not English.
Documentation
- Updated installation instructions in the readme file to include information about the Windows executable file.
- Updated changelog entries of previous versions to adhere to keep a changelog format.
- Fixed Docker Hub branding across all documents.
Dependencies
- Updated
clapfrom 4.5.39 to 4.5.40 - Updated
directoriesfrom 5.0.1 to 6.0.0
v0.10.0
Added
- Implemented automatic detection of the system DNS servers on Linux, Windows and macOS platforms and its inclusion in the benchmark in case these servers are not present in the built-in servers list.
- Servers that are currently configured in the system will be highlighted in the output table.
- Added
--skip-system-serversoption to skip the auto-detection of system DNS servers.
Changed
- Changed MSRV from 1.74.1 to 1.82.0
- Updated base image of Docker container from
rust:1.86.0torust:1.87.0
Documentation
- Added information about new features.
- Completely reworked features section to make it more informative and user-friendly.
- Reviewed grammar and spelling errors in the description section.
- Updated the preview gif-animation to reflect the new features.
- Added the preview image to the readme file and Docker Hub overview.
Dependencies
- Updated
quick-xmlfrom 0.37.4 to 0.37.5 - Updated
tomlfrom 0.8.20 to 0.8.23 - Updated
tabledfrom 0.18.0 to 0.20.0 - Updated
clapfrom 4.5.37 to 4.5.39
v0.9.1
Changed
- Updated base image of Docker container from
rust:1.85.1torust:1.86.0
Fixed
- Resolved several uninlined format args clippy lints on the nightly toolchain.
Build
- Removed preview git-animation from the published crate to reduce its size 30+ times (1.15 MiB => 31.1 KiB).
Documentation
- Replaced outdated preview gif-animation with two new separate ones for crate and DockerHub.
- Enhanced text in description section, fixed grammatical errors, and improved overall readability.
Dependencies
- Updated
clapfrom 4.5.34 to 4.5.37
v0.9.0
Added
- Introduced a new CSV output format. It can be used by specifying the
--formatoption with the valuecsv. - Added Surfshark DNS to the built-in servers list.
- Added SafeServe to the built-in servers list.
- Enhanced numeric command line arguments validation to ensure they are within the specified range.
- Added requests timeout value to the summary output.
- From this version, the Docker images will be multi-arch. Here is a list of supported architectures:
linux/amd64,linux/arm64,linux/arm/v7,linux/386,linux/s390x,linux/ppc64le. Previously, onlylinux/amd64was supported. - From this version, the latest Docker image will be available under the
latesttag. Previously, only the versioned tag was available. - Minor documentation improvements.
- Improved tests coverage.
Changed
- Updated base image of Docker container from
rust:1.85.0torust:1.85.1
Dependencies
- Updated
clapfrom 4.5.32 to 4.5.34
v0.8.0
Added
- Introduced a new option
--formatto specify the output format. Supported formats arehuman-readable,json, andxml. The default format ishuman-readable. - Added Hurricane Electric to the built-in servers list.
- Minor documentation improvements.
- Improved tests coverage.
Changed
- Updated base image of Docker container from
rust:1.83.0torust:1.85.0
Dependencies
- Updated
clapfrom 4.5.23 to 4.5.32 - Updated
indicatiffrom 0.17.9 to 0.17.11 - Updated
tomlfrom 0.8.19 to 0.8.20 - Updated
tabledfrom 0.17.0 to 0.18.0 - Updated
hickory-resolverfrom 0.24.2 to 0.24.4 - Updated
serdefrom 1.0.217 to 1.0.219
v0.7.2
Added
- Added Dyn to the built-in servers list.
Changed
- Updated base image of Docker container from
rust:1.82.0torust:1.83.0
Documentation
- Fixed default requests count in features section of DockerHub overview.
- Added example command of using custom servers list feature with docker container into readme file and DockerHub overview.
- Removed table of contents from the DockerHub overview because it doesn't work there.
- Table with built-in servers list was splitted into three columns to improve readability.
Dependencies
- Updated
serdefrom 1.0.214 to 1.0.217 - Updated
clapfrom 4.5.20 to 4.5.23 - Updated
indicatiffrom 0.17.8 to 0.17.9 - Updated
tabledfrom 0.16.0 to 0.17.0 - Updated
hickory-resolverfrom 0.24.1 to 0.24.2