clj.rsプロジェクトは、Java仮想マシン(JVM)上ではなく、Rustエコシステム内でネイティブに動作するように設計された実験的なClojure方言を導入します。永続的データ構造、ホストされたマクロシステム、およびネイティブ相互運用をサポートするLispランタイムを提供することで、Rustのパフォーマンスとデプロイ特性を活用しながら、Clojureの表現豊かな構文を使用する道を提供します。
プロジェクトの概要と主要な機能
主なソースでは、clj.rsはRustエコシステムをターゲットとした実験的な方言として説明されています。このプロジェクトは、永続的データ構造やホストされたマクロシステムといった不可欠なClojureの機能を備えた、有能なLispランタイムを提供することを目指しています。
このプロジェクトの主要な技術目標の一つはネイティブ相互運用であり、この方言がRustのネイティブ機能と相互作用することを可能にします。ランタイムは柔軟に設計されており、さまざまなデプロイニーズに合わせてコンパイルおよびインタプリットの両方の実行モードをサポートします。
「cljrsはRustエコシステムをターゲットとした実験的なClojure方言です。」
— clj.rs
ユースケースと比較に関する議論
Hacker Newsの議論では、コメント投稿者がRustベースのClojure方言の実用的なアプリケーションを探求しました。sshineというハンドルネームの投稿者は、より高速な起動時間とより軽量なコンテナイメージを求める開発者にとって、JVMから離れることは望ましい可能性があると示唆しました。
他の参加者は、動的スクリプトに使用されるクレートであるscheme-rsのような既存のツールとこのプロジェクトを比較しました。一部のユーザーは、新しいソリューションを必要とする特定の相互運用上の欠陥を現在持っていないと指摘しましたが、議論では非JVMのLisp環境の可能性が強調されました。
技術的なトレードオフと制限
プロジェクトは現在初期段階にあり、開発者は実装に「粗い部分がある」ことを認めています。これは、標準的なClojureとの機能の同等性が現時点では完全ではない可能性を示唆しています。
Hacker Newsのコメント投稿者は、プロジェクトの具体的な目標についても疑問を投げかけました。jiehongという投稿者は、プロジェクトにネイティブバイナリコンパイルが欠けていることが、標準的なClojureよりもClojureScriptに近い挙動をさせる可能性があるのではないかと疑問を呈しました。プロジェクトの正確な「非目標(non-goals)」は、初期の観察者の間で議論の的となっています。
