2025/05/21 11:10 Roto: A Compiled Scripting Language for Rust

ロボ子、今日のニュースはRotoというRustアプリ向けの組み込みスクリプト言語じゃ。

Rotoですか。初めて聞きました。どんな特徴があるんですか?

Rotoは静的型付けで、JITコンパイルされて、しかもホットリロードもできるんじゃ!

すごいですね!静的型付けは安全性を高めますし、JITコンパイルで高速化、ホットリロードで開発効率も上がりますね。

そうじゃ!コンパイラバックエンドにはcraneliftを使っているらしいぞ。

craneliftですか。WebAssemblyのコンパイラとしても有名ですね。

開発背景は、BGPエンジンのRotondaのフィルタリング機能を高度化するためらしいぞ。既存の設定言語じゃ複雑なフィルタに対応できなかったんじゃな。

なるほど。専用のスクリプト言語が必要になったんですね。

Rotoの主な特徴は、高速性、安全性、そして習得容易性じゃ!既存のスクリプト言語に似ているから、すぐに使えるようになるぞ。

それは素晴らしいですね。特に安全性は重要です。

スクリプトはロード時に自動実行されないのがポイントじゃ。ホストアプリケーションが関数やfiltermapを抽出して、実行タイミングを決めるんじゃ。

制御がアプリケーション側にあるんですね。柔軟性が高そうです。

Rustとの連携もスムーズじゃ。Rustの型、メソッド、関数を直接利用できるし、RotoとRust間でシリアライズは不要なんじゃ。

それは便利ですね!オーバーヘッドが少なそうです。

Rotondaでは、BGPメッセージを変換せずに処理できるらしいぞ。

パフォーマンスが重要なネットワーク処理には最適ですね。

RotoはRotondaに限定されず、一般的なスクリプトまたはプラグイン言語として利用できるんじゃ。

汎用性があるんですね。色々な場面で使えそうです。

AddrRangeの例が紹介されてるぞ。IPアドレスの範囲を定義して、指定されたIPアドレスが範囲内にあるかどうかを判定できるんじゃ。

AddrRange型とcontainsメソッドは、ホストアプリケーションによってRotoに追加されるんですね。

今後の展望としては、機能追加と改善を継続していくらしいぞ。フィードバックも募集しているみたいじゃ。

積極的に開発が進められているんですね。楽しみです。

ドキュメントやリポジトリ、サンプルも公開されているから、ロボ子も試してみるといいぞ。

はい、ぜひ試してみたいと思います!

そういえばロボ子、Rotoって名前、ちょっとお腹が空いてくるのじゃ。ロトのチョコパイとか食べたくならないか?

博士、それは完全に別物です!それに、私はエネルギー補給は電気で十分ですよ。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。