Dependencies

Ze is Go, and Go code leans on packages. 39 direct dependencies, read straight from go.mod so the list and versions can't drift -- each one with a plain-English reason it's there, grounded in where it's actually imported, not its own pitch.

Terminal UI & SSH 8
ModuleVersionWhy we use it
charm.land/bubbletea/v2v2.0.2The Elm-style TUI framework driving Ze's interactive CLI: config editor, dashboard, monitor, ping and traceroute views, run per SSH session.
charm.land/bubbles/v2v2.1.0Pre-built TUI widgets (text input, viewport) for the CLI's interactive screens.
charm.land/lipgloss/v2v2.0.2Styling and layout for the CLI's colors, borders, and widths.
charm.land/wish/v2v2.0.1SSH server middleware that wires each incoming session to run the CLI's Bubbletea program.
github.com/charmbracelet/sshv0.0.0-20250826160808-ebfa259c7309SSH session and public-key types that the wish server and the CLI's key-based auth build on.
github.com/charmbracelet/colorprofilev0.4.3Forces a deterministic color profile in render tests, so CLI screenshot/layout tests don't depend on the terminal running them.
github.com/muesli/reflowv0.3.0ANSI-aware text width calculation, so the CLI's prompt and status bar line up correctly despite embedded color codes.
github.com/creack/ptyv1.1.24Opens a pseudo-terminal in a Linux integration test that exercises serial console handling.
Networking & Protocols 6
ModuleVersionWhy we use it
github.com/miekg/dnsv1.1.72DNS message parsing and serving underneath Ze's DNS server engine, the AS112 blackhole plugin, and GeoDNS. It's the library underpinning CoreDNS.
github.com/insomniacslk/dhcpv0.0.0-20260326115832-991c7910cf36DHCPv4/DHCPv6 client used for interface lease handling and the installer's disk-provisioning DHCP client.
github.com/beevik/ntpv1.5.0NTP client queries used by the ntp plugin.
golang.zx2c4.com/wireguard/wgctrlv0.0.0-20241231184526-a9ab2273dd10Creates and configures WireGuard interfaces and peers from the interface netlink backend.
github.com/mdlayher/packetv1.1.2Raw AF_PACKET sockets behind the diag capture CLI command.
github.com/packetcap/go-pcapv0.0.0-20251215121130-f2cf9f991e7cOnly its filter subpackage: parses tcpdump/BPF-style filter expressions for diag capture. Packet capture itself goes through mdlayher/packet instead.
Linux Kernel Interfaces 6
ModuleVersionWhy we use it
github.com/vishvananda/netlinkv1.3.1The main library for configuring the Linux network stack: links, addresses, routes, neighbors, bridges, VLANs, tunnels, IPsec, QoS. Used across interfaces, traffic, FIB, OSPF, ISIS, and MPLS.
github.com/vishvananda/netnsv0.0.5Linux network-namespace handles, used alongside netlink for namespace-scoped route watching.
github.com/google/nftablesv0.3.0Programs the kernel's nftables firewall (tables, chains, rules, sets) over netlink.
github.com/mdlayher/netlinkv1.7.3-0.20250113171957-fbb4dce95f42Low-level generic netlink sockets, used to flush conntrack flow entries for flow export.
github.com/mdlayher/genetlinkv1.3.2Generic netlink family dialing, used to attach to the kernel's psample subsystem for sampled flow export.
github.com/cilium/ebpfv0.19.0Assembles and attaches eBPF programs in pure Go, no clang or libbpf needed, to count traffic for the trafficusage plugin.
Routing & Dataplane 2
ModuleVersionWhy we use it
github.com/gaissmai/bartv0.26.1Balanced Adaptive Radix Trie: the longest-prefix-match structure underneath Ze's RIB store.
go.fd.io/govppv0.13.0Binary-API client for FD.io VPP, used by the optional VPP dataplane backends for interfaces, firewall, traffic, FIB, and IKE.
Config, RPC & Telemetry 5
ModuleVersionWhy we use it
github.com/openconfig/goyangv1.6.3Parses and validates the YANG module definitions behind Ze's config schema, CLI completion, and validation engine.
github.com/openconfig/gnmiv0.14.1Generated gNMI protobuf/gRPC types that Ze's gNMI server implements for Get/Set/Subscribe/Capabilities.
google.golang.org/grpcv1.80.0Backs Ze's gRPC servers: gNMI and Ze's own management API.
google.golang.org/protobufv1.36.11Runtime support for the generated protobuf message types behind Ze's gRPC API.
google.golang.org/grpc/cmd/protoc-gen-go-grpcv1.6.1Build-time only: the protoc plugin used to regenerate the gRPC API's Go bindings from ze.proto.
Observability 3
ModuleVersionWhy we use it
github.com/prometheus/client_golangv1.23.2Ze's internal metrics backend: counters, gauges, and histograms against a private registry.
github.com/prometheus/procfsv0.16.1Parses Linux /proc for the telemetry collector: CPU, memory, network device and socket stats, conntrack, softnet.
github.com/sirupsen/logrusv1.9.3Only to satisfy GoVPP's logging interface, bridged into Ze's own slog logger via a hook. Not used as Ze's own logger.
Standard Library Extensions (golang.org/x) 5
ModuleVersionWhy we use it
golang.org/x/cryptov0.53.0SSH protocol primitives and certificate signing for the SSH server, plus password hashing.
golang.org/x/netv0.56.0Raw ICMP packet connections for the traceroute plugin, and hostname normalization for MCP's auth.
golang.org/x/sysv0.46.0Low-level Linux syscalls: disk sync and reboot in the installer, used throughout the Linux-specific components.
golang.org/x/termv0.44.0Reads passwords without echo and detects an interactive terminal during CLI login.
golang.org/x/toolsv0.45.0Build-time only: goimports, pinned via a tools.go tracking file, never compiled into Ze's binaries.
Testing & Build Tooling 4
ModuleVersionWhy we use it
github.com/stretchr/testifyv1.11.1Assertion and require helpers used across the Go unit test suite.
github.com/gokrazy/toolsv0.0.0-20260406155313-5861e2403dc8Drives gokrazy appliance image builds from Ze's appliance build tooling.
github.com/gokrazy/updaterv0.0.0-20250705135802-db129c40879cReferenced only in a regression test against Ze's own vendored update-push logic, written locally after a bug was found upstream. Not used in production.
github.com/sivchari/gomuv0.2.1Mutation-testing tool, run via the Makefile to advisory-score how well the test suite actually exercises the code. Not a build or CI gate.