Skip to content

Latest commit

 

History

8,558 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Ze

Ze is an open-source configuration and protocol engine written in Go. The network operating system built on it speaks BGP, manages Linux network interfaces, and programs the forwarding table. Operators use a shared configuration model through an SSH CLI or a web editor.

Pre-release. Ze has not been released yet. Some features are incomplete or experimental, and APIs and configuration syntax can change. The feature inventory records their status. A lab is the right place to evaluate Ze before putting it on a live network.

I wrote ExaBGP, and its users are the people I had in mind while building Ze. The aim is to keep programmable routing and add control of the device around it, with one configuration for the protocols and the system they run on.

Start Here

To explore Start with
A first BGP session Quick Start
A network lab netlab and containerlab
An existing ExaBGP deployment Migration guide
A dedicated device or VM Appliance guide

What Ze Includes

Features depend on the build and configuration. The guides describe how to use each area, and the feature inventory distinguishes supported, experimental, and partial implementations.

Area Guides
Routing BGP, route injection, OSPF, and RPKI validation
Linux networking Interfaces, static routes, firewall, and IPsec
Configuration and operations Configuration, CLI, command reference, and operations
Automation and visibility Plugins, MCP, monitoring, and looking glass

Build from Source

Development requires Go 1.27 or newer on Linux or macOS. Linux is the platform for the network operating system's kernel features.

git clone https://github.com/ze-software/ze.git
cd ze
./ze --help

On a fresh checkout, the ./ze launcher builds the daemon before it runs the command. It derives the feature tags from feature-gates.txt, so there is no tag list to maintain by hand. Later invocations reuse the existing binary.

The Quick Start guide covers credentials, an example configuration, and commands to start Ze and inspect its peers. The Ubuntu installation guide covers a systemd installation.

Build Only What You Run

Subsystems have ze_<feature> build tags. A custom build can omit BGP or an operator interface along with its registered schema. The architecture guide explains the component boundaries, and the feature manifest names the packages behind each tag.

Architecture and Plugins

The core is a protocol-independent supervisor. It manages subsystem lifecycles through a message bus, a configuration provider, and a plugin manager. Protocols and system features register themselves and contribute their own YANG modules.

Those modules form a shared configuration schema for validation and the editors. The Model Context Protocol (MCP) server derives tools from the running daemon's command catalog, so AI clients can discover its available commands.

Plugins can be compiled Go modules or separate processes. Compiled plugins contribute their YANG to the daemon's configuration validator. External plugins can expose a model through ze schema, but that model does not automatically extend the daemon's validator.

The architecture overview describes the runtime and BGP wire design. The plugin development guide covers the SDK and process protocol.

From ExaBGP

ze exabgp migrate converts ExaBGP configuration files, and ze exabgp plugin provides a bridge for existing process scripts. The migration guide documents the syntax and API differences to check when moving a deployment.

If you run ExaBGP, I would appreciate reports from your own configurations and process scripts. A report that shows what failed and what ExaBGP did with the same input gives me something concrete to fix. You can use the issue tracker or Discord.

Testing and Project Status

The testing overview explains the unit, functional, fuzz, mutation, and chaos tests, plus Linux checks under QEMU. The interop guide describes scenarios against other implementations, including FRR, BIRD, and GoBGP.

The RFC requirement ledger publishes requirements and their test evidence, including gaps. These records help evaluate the current implementation. They do not replace deployment experience.

AI-Assisted Development

Ze is developed with AI coding assistants. I decide the architecture, the tradeoffs, and what the code must preserve. Tests and independent review are part of that process. I explain the reasoning in AI slop is the wrong test.

Contributing and License

Bug reports and contributions are welcome through the contribution process. A Contributor License Agreement applies to contributions.

Ze is licensed under the GNU Affero General Public License v3.0.

About

Ze networking software you didn't know you were looking for.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

53 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages