Repolode
mattwparas

mattwparas/steel

用 Rust 实现的可嵌入、可扩展 Scheme 方言,附带独立解释器和 REPL。

Star
2,629
Fork
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
  • 02类似 Racket 的 require / provide 模块系统
  • 03支持 syntax-rules 和 syntax-case 宏
  • 04可通过嵌入或 FFI 调用原生 Rust 函数和结构体
  • 05提供高阶契约及内置不可变列表、向量、哈希表和哈希集合

适用场景

  • 为 Rust 应用增加脚本语言能力
  • 学习或实验 Scheme 语言与解释器实现
  • 编写调用 Rust 代码的配置或扩展脚本

快速上手

  1. 1

    安装 Rust(构建 Steel 所需)

  2. 2

    克隆仓库

  3. 3

    使用 cargo 启动 REPL

    cargo run

使用前须知

  • API 处于 1.0 之前阶段,可能随时变更。
  • 目前基本兼容 R5RS,缺少 let-syntax,对 R7RS 的支持仍在进行中。

收录于专题

标签

常见问题

steel 是什么?
用 Rust 实现的可嵌入、可扩展 Scheme 方言,附带独立解释器和 REPL。 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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目