One year of Roto, a compiled scripting language for Rust
NLnet Labs celebrates one year of Roto, its JIT-compiled, statically typed scripting language designed for Rust applications. This update highlights significant language enhancements, a revamped integration mechanism, and its first external adoption. The story resonates with HN's interest in performant, Rust-adjacent tooling and practical software development milestones.
The Lowdown
NLnet Labs has released an update commemorating one year since the initial announcement of Roto, a JIT-compiled embedded scripting language for Rust applications. The article details the progress made over the past year, emphasizing Roto's static typing and performance advantages over other scripting languages, particularly within its primary project, Rotonda.
- Version Releases: Six new Roto versions were released, incorporating numerous features and bug fixes.
- Community Engagement: Roto was presented at EuroRust 2025 (general introduction) and FOSDEM 2026 (deep dive into internals and
Listimplementation). - Branding & Documentation: A new logo was designed, and the Roto manual was extensively improved with professional technical writing.
- Language Evolution: Significant language features were added, including
whileandforloops, f-strings,enums, compound assignments, globalconstbindings, and generic parameters. TheListtype was a major addition, allowing efficient Rust-Roto data transfer. - Syntax Alignment: Roto's syntax was adjusted to more closely resemble Rust, using
fninstead offunctionand//for comments, aiming for easier adoption by Rust developers. - Improved Rust Integration: The
library!macro was introduced to streamline the registration of Rust types, functions, and constants into Roto scripts, significantly cleaning up the integration API. - External Adoption: Iocaine, a scriptable proxy defending web servers against AI crawlers, became the first external project to adopt Roto, citing its superior performance compared to Lua or Fennel. This adoption provided valuable real-world testing and feedback.
Looking ahead, NLnet Labs plans to continue developing Roto, with future features targeting hashmaps, user-defined state, and generic functions. They also aim to improve tooling, including formatters and Language Server Protocol (LSP) support, inviting community feedback on missing critical features.