Repolode
mattwparas

mattwparas/steel

Встраиваемый и расширяемый диалект Scheme на Rust с отдельными REPL и байткодной виртуальной машиной.

Звёзды
2,629
Форки
143
Открытые issues
87
Последний коммит
позавчера

Что это?

Steel — интерпретатор Scheme на Rust, который можно запускать отдельно как интерпретатор с REPL или встраивать в приложения на Rust. Язык реализован как байткодная виртуальная машина и в основном соответствует R5RS; поддержка R7RS находится в разработке.

В языке есть модули с require и provide по аналогии с Racket, а также макросы syntax-rules и syntax-case. Кроме того, предусмотрены контракты высшего порядка и встроенные неизменяемые структуры данных: списки, векторы, hashmap и hashset.

Нативные функции и структуры Rust можно предоставлять коду Steel через встраивание или FFI. В проект также входят менеджер пакетов, языковой сервер и стандартная библиотека. Проект пока не достиг версии 1.0, поэтому API может измениться.

Ключевые возможности

  • 01Scheme, в основном совместимый с R5RS и реализованный как байткодная виртуальная машина
  • 02Система модулей с require и provide, аналогичная Racket
  • 03Поддержка макросов syntax-rules и syntax-case
  • 04Встраивание и FFI для вызова нативных функций и структур Rust
  • 05Контракты высшего порядка и встроенные неизменяемые списки, векторы, hashmap и hashset

Сценарии использования

  • Добавление языка скриптов в приложение на Rust
  • Изучение Scheme и устройства интерпретаторов или эксперименты с ними
  • Написание скриптов конфигурации или расширений, которые вызывают код на Rust

Быстрый старт

  1. 1

    Установите Rust (необходим для сборки Steel)

  2. 2

    Клонируйте репозиторий

  3. 3

    Запустите REPL с помощью cargo

    cargo run

Что важно знать

  • API ещё не достигла версии 1.0 и может измениться в любой момент.
  • Соответствие R5RS неполное: let-syntax отсутствует, а поддержка R7RS всё ещё находится в разработке.

В подборках

Темы

Частые вопросы

Что такое steel?
Встраиваемый и расширяемый диалект Scheme на Rust с отдельными REPL и байткодной виртуальной машиной. Steel — интерпретатор Scheme на Rust, который можно запускать отдельно как интерпретатор с REPL или встраивать в приложения на Rust. Язык реализован как байткодная виртуальная машина и в основном соответствует R5RS; поддержка R7RS находится в разработке.
steel можно использовать бесплатно? Какая у него лицензия?
steel распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
steel всё ещё поддерживается?
Активно поддерживается. Последний коммит в steel — 22 окт. 2026 г..
Для чего можно использовать steel?
Добавление языка скриптов в приложение на Rust Изучение Scheme и устройства интерпретаторов или эксперименты с ними Написание скриптов конфигурации или расширений, которые вызывают код на Rust
Как установить steel?
Установите Rust (необходим для сборки Steel) Клонируйте репозиторий Запустите REPL с помощью cargo: cargo run
Где скачать steel?
Исходный код и инструкции по установке — на GitHub: https://github.com/mattwparas/steel

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты