github.com/LEXUGE/dcompass ↗
A high-performance programmable DNS component aiming at robustness, speed, and flexibility
Open this visualization on its own page →
Contributors
4
Lines of Code
877
From
2020-10-30
To
2021-02-16
About LEXUGE/dcompass
dcompass is a high-performance DNS server component written in pure Rust, designed to handle approximately 50,000 queries per second. It functions as a programmable DNS router that allows users to script complex query routing logic using Rune, a Rust-like scripting language. The project emphasizes robustness, speed, and flexibility, enabling administrators to dynamically switch between network environments without downtime.
The tool supports multiple DNS query protocols including UDP, DNS over HTTPS (DoH), and DNS over TLS (DoT), with the ability to race multiple upstreams simultaneously using a hybrid method. Users can define sophisticated routing rules through configuration files that leverage matchers for GeoIP filtering, IP CIDR ranges, and domain-based blocking. The scripting engine provides access to individual DNS message components, allowing fine-grained manipulation of queries and responses, such as adding EDNS Client Subnet records or implementing custom DNS services.
dcompass targets system administrators and network engineers who need advanced DNS filtering and routing capabilities. The project is actively maintained with significant performance improvements between versions—version 0.3.0 introduced the Rune script engine which achieved 2-6x faster performance compared to previous implementations. Binaries are available for multiple architectures including x86_64, ARM, and MIPS, with NixOS packages and systemd service integration provided for Linux users.