6 releases

0.1.5 Jan 13, 2023
0.1.4 Jan 8, 2023
0.1.3 Dec 25, 2022
0.1.2 Nov 27, 2022

#25 in #blocking

MIT license

740 lines

rhole: Rust local DNS adblocker

Latest version dependency status codecov

Highly configurable Rust local DNS adblocker.

Main advantages

  • Highly configurable
    • Use of many kinds of blocking lists
    • Remote DNS proxy server configuration
  • Easy to setup
    • Can be cross-compiled to various targets
    • Default configuration file
    • RPM package build

How does it work ?

rhole reads blacklist entries from various remote sources, inserts them in a sled database and checks against it for every DNS entries asked.


  • Fedora
# Adds support for arm-gnueabihf toolchain
sudo dnf copr enable lantw44/arm-linux-gnueabihf-toolchain
sudo dnf install arm-linux-gnueabihf-{binutils,gcc,glibc}

# armv7-musl
CC=arm-linux-gnueabihf-gcc cargo build --release --target armv7-unknown-linux-musleabihf

# armv7
cargo build --release --target armv7-unknown-linux-gnueabihf
  • Ubuntu

Work to do

This is an in-progress work, many things must still be achieved to reach version 1.0.0:

  • Web monitoring interface
  • Code audit to improve performances + possible mistakes
  • Regularly update input sources
  • Making everything async
  • Increase DNS record TTL for blocked addresses
  • Log requests per equipments


~1.5M SLoC