Вышла новая версия Roto v0.11.0 — JIT-компилируемого скриптового языка, который встраивается в Rust-приложения. Roto статически типизирован и компилируется «на лету», что делает его быстрее многих аналогов. Язык разрабатывают для проекта Rotonda, но он подходит и для других приложений.
За последний год вышло шесть релизов Roto. В язык добавили циклы while и for, f-строки для форматирования, новые операторы (например %), перечисления enum, составные операторы присваивания (+=), глобальные константы и обобщённые параметры типов. Появился тип List — можно создавать списки любого типа, соединять их и итерировать. Списки теперь можно передавать между Rust и Roto, и это дёшево. Синтаксис подтянули к Rust: теперь используется fn вместо function и // для комментариев вместо #. Но полным подмножеством Rust Roto не станет — в нём будут фичи, которых в Rust нет (например, форматирование строк).
Главное нововведение для интеграции с Rust — макрос library!. Раньше регистрация типов и методов в рантайме была громоздкой: нужно было использовать атрибутный макрос и передавать параметр runtime. Теперь через library! код выглядит как обычный Rust с блоками impl, докстрингами и self. Поддерживается и построение дерева модулей для зарегистрированных функций.
У Roto появился логотип — его сделал Richard de Ruijter. Дизайн получился игривым, в духе самого проекта. Логотип уже используют в документации, слайдах и скоро появится на стикерах.
Команда выступала с докладами о Roto на EuroRust 2025 (общее введение и демо) и FOSDEM 2026 (подробности реализации списков и внутреннего устройства). Оба доклада доступны в записи.
Самый важный внешний успех — проект Iocaine, скриптуемый прокси для защиты веб-серверов от AI-краулеров. Iocaine поддерживает Roto, Lua и Fennel, но дефолтные скрипты пишут именно на Roto. По словам автора Iocaine (известного как Algernon), Roto даёт лучшую производительность из трёх языков. Использование в Iocaine помогло протестировать Roto в реальных условиях — Algernon активно слал баг-репорты и фича-реквесты.
В планах — добавить хеш-таблицы, пользовательское состояние, обобщённые функции и инструменты вроде форматтера и LSP. Исходники и документация лежат на Codeberg.