NLnet Labs updates Roto, Rust-integrated scripting language reaches v0.11.0
Roto v0.11.0 leans harder into Rust-like syntax and faster Rust interop, pushing NLnet Labs’ embedded language closer to real use in BGP and infrastructure code.
Does a Rust-embedded scripting language finally feel close enough to Rust to stop feeling like a side project? NLnet Labs thinks Roto has crossed another useful threshold with v0.11.0, released alongside a one-year update that frames the language less as a curiosity and more as a practical tool for code that needs to live next to Rust.
Roto exists for a blunt reason: Rotonda, NLnet Labs’ Rust-based BGP engine, needs a fast and expressive way to filter incoming route announcements, and ordinary configuration languages were not enough. The project is hot-reloadable, statically typed, and JIT-compiled to machine code at runtime with Cranelift, which puts it in a sweet spot for networking and infrastructure work where speed and live updates both matter. NLnet Labs says Roto is primarily used by Rotonda, but it is also meant to be embedded into other Rust applications for general-purpose scripting.

That broader pitch got stronger over the first year. NLnet Labs says the project shipped six new versions, and the version history shows steady accumulation rather than one flashy leap. Roto 0.10.0 landed on January 14, 2026, bringing lists, for loops, type parameters, and variant types, along with contributing, testing, and security documentation. Version 0.11.0 builds on that groundwork with while loops, f-strings, enums, compound assignment operators, global const bindings, and a List type that can move efficiently between Rust and Roto.
Just as important for Rust developers, the language syntax moved closer to home. Roto now uses fn instead of function and // comments instead of #, small changes that lower the friction for anyone who wants a lightweight embedded language without relearning a completely different style. NLnet Labs also highlighted a new library! macro that makes registering Rust functions and types much easier, which is the kind of detail that matters when a scripting layer has to be wired into real Rust code instead of sitting in isolation.
The project has also started to look less internal and more ecosystem-facing. NLnet Labs says talks at EuroRust and FOSDEM helped surface the work to the wider Rust community, some external projects have begun adopting Roto, and development has moved to Codeberg. At FOSDEM 2026, the team spelled out the hard part plainly: Rust offers very little reflection and no stable ABI by default, so the Rust-Roto boundary still takes unsafe code and low-level tricks. That is exactly why v0.11.0 matters. If Roto can keep tightening that boundary, it becomes not just a scripting language for Rotonda, but a credible embedded layer for the Rust projects that need policy, filtering, and hot-reloadable logic without giving up Rust’s discipline.
This article was produced by Prism’s automated news system from verified source data, official records, and press releases, then run through automated quality and moderation checks before publishing. The system is built and supervised by the people who set the standards it runs under. Read our full AI policy.
Know something we missed? Have a correction or additional information?
Submit a Tip
