Featured
Holo v0.7 Released — What’s New and What’s Next?

Today marks the release of Holo v0.7, an MIT-licensed open-source routing protocol suite written in Rust. This update brings a more mature IS-IS implementation, introducing new features and numerous bug fixes. Significant progress has also been made on the BIER front, and our contributor, Nicolas, was even kind enough to prepare a containerlab topology for testing the Holo control plane with a custom BIER data plane. Additionally, we have several other improvements, including VRRP version 3 support, contributed by Paul.
At this stage, Holo already supports all major routing protocols, including the “holy triad” — BGP, OSPF, and IS-IS. But that doesn’t mean the work is done! It’s time for the project to take a step back and focus on the fundamentals to ensure long-term growth. In this post, I’ll discuss the main priority for this year: improving the user and developer experience.
Improve the User Experience
Deploying Holo on a router is simple: just start the holod daemon — an all-in-one package. Configuration is handled via holo-cli, which can run locally or remotely over TLS. Naturally, anything you can do via the CLI can also be automated programmatically using gRPC, gNMI, and, in the future, NETCONF and RESTCONF.
That said, the monolithic nature of holod might not appeal to everyone. For those who swear by microservices, rest assured — it’s possible to run separate daemons for each protocol instance, since protocols are implemented as libraries. This flexibility comes with trade-offs, as detailed in the project documentation.
When we talk about user experience in software, we think of software that not only performs its intended functions but is also easy to use and interact with. So far, we’ve focused heavily on functionality, but we haven’t given enough attention to ease of use.
The primary interface for holod is holo-cli, but compared to the CLIs of other routing stacks, it’s quite limited and difficult to use. Configuration commands, in particular, are auto-generated from IETF YANG models and are anything but simple. Improving this should be a top priority this year. We want users to feel comfortable when using Holo. Given our API-first design, we can even support multiple CLI programs. In addition to a traditional-style CLI, we should also explore something more modern that could bring something new to the table, such as a CLI that integrates with nushell as a plugin, as suggested by Frederic.
Another important issue is the lack of fine-grained control over logging. Right now, users rely on the RUST_LOG environment variable, which has significant filtering limitations. Adding comprehensive debug knobs to provide better control over log messages is another high-priority goal.
Improve the Developer Experience
One of the most rewarding aspects of working on Holo is seeing new people come in and make meaningful contributions. It’s beautiful to see people from all over the world, with different backgrounds and motivations, join forces to build something together. This is the magic of open source.
For Holo to continue growing, it’s important to attract contributors and ensure they have a good developer experience. I personally think the project is uniquely positioned to attract the next generation of routing protocol developers (maybe I’m biased though!). One of the factors, of course, is that it’s written in Rust, with all the benefits that come with it. Put simply, no one wants to be debugging segmentation faults in 2025 and beyond. Another important factor is that the project is written following modern software development practices. The protocol implementations are modular and adhere to the Sans I/O design pattern. Combined with the Actor model and message passing, this facilitates troubleshooting, unit testing and profiling. Additionally, the emphasis on programmability and a model-driven management architecture makes Holo especially appealing to those working on automation-driven networks.
That said, it’s not all smooth sailing. The first contributors faced a fair share of difficulties when working with Holo. One of the initial hurdles was setting up a testing environment with virtual network topologies. This has since been resolved by creating dedicated repositories with pre-configured containerlab and munet topologies (thank you, Jake!), making it much easier for contributors to get started. Another big challenge has been incomplete documentation, which currently lives in the project’s wiki. Although progress has been made in this area, there’s still much work to be done, and improving the documentation continues to be a top priority.
Beyond documentation, internal APIs — especially in the northbound layer — can be made more user-friendly. Currently, handling configuration changes requires writing a significant amount of repetitive callback code to update internal data structures. This year, we aim to leverage YANG code generation to automate these updates, reducing boilerplate code and minimizing the risk of bugs. Improving this and other internal APIs is another top priority.
Expand the Feature Set
While improving the user and developer experience is the main priority at this point in time, it’s hard to resist adding new features! After all, implementing RFCs and running interoperability tests is where the real fun is — and at its core, Holo is a passion project.
In the short term, the goals for the next release include VRF support for all protocols, as well as several IS-IS extensions, such as Segment Routing, Multi-Topology support, and BFD integration. For OSPF, it’s probably about time to implement virtual links and NSSA support — the main omissions in the current implementation. Additionally, other contributors are working on RIFT and SRv6 extensions.
Overall, users can expect the feature set to evolve rapidly with each release cycle. Thanks to the strictness of the Rust compiler, a commitment to clean code, and thorough unit testing, the project enjoys a low maintenance cost, allowing most development efforts to focus on new features. I invite everyone to stay tuned and follow our progress as we move forward!
Getting Involved
If you’re interested in Holo, consider joining our community! Whether you want to be an early adopter, a developer contributing code, or simply follow along, you’re welcome. Join us on Holo’s Discord server or reach out directly at contact@holo-routing.org.