finds.dev← search

// the find

ThisSeanZhang/landscape

★ 1,433 · Rust · GPL-3.0 · updated Jun 2026

The goal is to make it easier to configure your favorite Linux distribution as a router. Built with Rust and eBPF.

Landscape turns a standard Linux box into a router using eBPF for traffic steering, with a web UI and REST API for management. It handles NAT, DNS-per-flow, DHCP, PPPoE, firewall rules, and geo-based routing — basically a software router platform aimed at people who want OpenWrt-level control without leaving their preferred distro. Requires kernel 6.9+ and BTF support.

eBPF-based forwarding path means policy decisions happen in-kernel without touching userspace per packet — direct-path traffic keeps moving even if container-based proxies die. Per-flow DNS configuration is genuinely useful: you can route different clients through different DNS upstreams without cache poisoning across tenants. The NAT granularity (NAT1 for specific IPs/domains, strict NAT4 for everything else) solves a real problem for mixed BT/general-internet LANs. Migration story is solid — config lives in a single directory, upgrades and rollbacks are drop-in binary swaps with automatic schema migration on start.

Kernel 6.9 minimum cuts out a lot of real hardware running LTS kernels (5.15, 6.1) that most people actually deploy on routers. Default credentials are root/root with no prompt to change them, and the management interface is HTTP by default until you configure certs — bad default posture for something sitting at the network edge. WiFi support appears to be there but the quick start says nothing about AP mode, which is the first thing anyone setting up a home router needs. The store layer has multiple versioned implementations (storev2/v3/v4) with no explanation of what changed or which one is current, which is a red flag for anyone trying to understand the data model before trusting it with their network config.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →