PHPインタープリターのソースコード。Web開発に特に適した汎用スクリプト言語です。
mattwparas/steel
Rust製の組み込み・拡張可能なScheme方言。スタンドアロンREPLとバイトコードVMを備えています。
- スター
- 2,629
- フォーク
- 143
- 未解決の Issue
- 87
- 最終コミット
- 一昨日
これは何?
SteelはRustで書かれたSchemeインタプリタで、スタンドアロンのインタプリタやREPLとして実行できるほか、Rustアプリケーションに組み込むこともできます。言語処理系はバイトコード仮想マシンとして実装されており、R5RSにはおおむね準拠しています。R7RSへの対応も進行中です。
Racket風のrequireとprovideを使ったモジュール機能に加え、syntax-rulesとsyntax-caseによるマクロを利用できます。また、高階コントラクトや、リスト、ベクター、ハッシュマップ、ハッシュセットなどの組み込み不変データ構造も備えています。
埋め込み機能またはFFIを通じて、ネイティブのRust関数や構造体をSteelのコードから利用できます。パッケージマネージャー、言語サーバー、標準ライブラリも含まれています。まだ1.0以前のため、APIが変更される可能性があります。
主な機能
- 01バイトコード仮想マシンとして実装された、R5RSにおおむね準拠するScheme
- 02Racketに似た、requireとprovideを使うモジュールシステム
- 03syntax-rulesとsyntax-caseによるマクロのサポート
- 04ネイティブのRust関数や構造体を呼び出すための埋め込み機能とFFI
- 05高階コントラクトと、組み込みの不変なリスト、ベクター、ハッシュマップ、ハッシュセット
ユースケース
- Rustアプリケーションにスクリプト言語を追加する
- Schemeやインタプリタの設計を学んだり、試したりする
- Rustコードを呼び出す設定用スクリプトや拡張スクリプトを書く
クイックスタート
- 1
Rustをインストールする(Steelのビルドに必要)
- 2
リポジトリをクローンする
- 3
cargoでREPLを起動する
cargo run
使う前に知っておきたいこと
- APIはまだ1.0未満のため、いつでも変更される可能性があります。
- R5RSへの準拠は完全ではありません。let-syntaxは未実装で、R7RSのサポートは現在も進行中です。
収録されている特集
トピック
よくある質問
- steel とは?
- Rust製の組み込み・拡張可能なScheme方言。スタンドアロンREPLとバイトコードVMを備えています。 SteelはRustで書かれたSchemeインタプリタで、スタンドアロンのインタプリタやREPLとして実行できるほか、Rustアプリケーションに組み込むこともできます。言語処理系はバイトコード仮想マシンとして実装されており、R5RSにはおおむね準拠しています。R7RSへの対応も進行中です。
- steel は無料で使えますか?ライセンスは?
- steel は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- steel は今もメンテナンスされていますか?
- 活発にメンテナンス中。steel の最終コミットは 2026年10月22日 です。
- steel は何に使えますか?
- Rustアプリケーションにスクリプト言語を追加する Schemeやインタプリタの設計を学んだり、試したりする Rustコードを呼び出す設定用スクリプトや拡張スクリプトを書く
- steel のインストール方法は?
- Rustをインストールする(Steelのビルドに必要) リポジトリをクローンする cargoでREPLを起動する: cargo run
- steel はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/mattwparas/steel
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Emacs Lispインタプリタを基盤とする、拡張・カスタマイズが可能で、自己文書化機能を備えたリアルタイム表示テキストエディタ、GNU Emacs。
Markdownファイルの切り出し、フィルタリング、変換を行う、jq風のCLIツール兼クエリ言語。
Rustプログラミング言語のメインソースリポジトリ。コンパイラ、標準ライブラリ、ドキュメントを収録しています。
Swayは、Fuelブロックチェーン上のスマートコントラクト開発向けに作られた、Rustに着想を得たプログラミング言語です。
Goアプリケーションへの組み込みに使える、純Go製のECMAScript 5.1 JavaScriptエンジン。