Repolode
mattwparas

mattwparas/steel

Um dialeto de Scheme extensível e incorporável, implementado em Rust, com REPL independente e VM de bytecode.

Estrelas
2,629
Forks
143
Issues abertas
87
Último commit
anteontem

O que é?

Steel é um interpretador de Scheme escrito em Rust que pode funcionar como interpretador e REPL independente ou ser incorporado a aplicações Rust. A linguagem é implementada como uma máquina virtual de bytecode e é, em grande parte, compatível com R5RS, com suporte a R7RS em desenvolvimento.

A linguagem oferece suporte a módulos usando require e provide, no estilo do Racket, além de macros syntax-rules e syntax-case. Também inclui contratos de ordem superior e estruturas de dados imutáveis integradas, como listas, vetores, hashmaps e hashsets.

Funções e structs nativas de Rust podem ser disponibilizadas ao código Steel por meio de embedding ou FFI. O projeto também inclui um gerenciador de pacotes, um servidor de linguagem e uma biblioteca padrão. Como ainda está na versão pré-1.0, a API pode mudar.

Recursos principais

  • 01Scheme, em grande parte compatível com R5RS, implementado como uma máquina virtual de bytecode
  • 02Sistema de módulos com require e provide, semelhante ao do Racket
  • 03Suporte às macros syntax-rules e syntax-case
  • 04Embedding e FFI para chamar funções e structs nativas de Rust
  • 05Contratos de ordem superior e listas, vetores, hashmaps e hashsets imutáveis integrados

Casos de uso

  • Adicionar uma linguagem de script a uma aplicação Rust
  • Aprender ou experimentar Scheme e o design de interpretadores
  • Escrever scripts de configuração ou extensão que chamem código Rust

Início rápido

  1. 1

    Instale Rust (necessário para compilar o Steel)

  2. 2

    Clone o repositório

  3. 3

    Execute o REPL com cargo

    cargo run

Antes de usar

  • A API ainda está antes da versão 1.0 e pode mudar a qualquer momento.
  • A compatibilidade com R5RS é parcial: falta let-syntax e o suporte a R7RS ainda está em desenvolvimento.

Em coleções

Tópicos

Perguntas frequentes

O que é steel?
Um dialeto de Scheme extensível e incorporável, implementado em Rust, com REPL independente e VM de bytecode. Steel é um interpretador de Scheme escrito em Rust que pode funcionar como interpretador e REPL independente ou ser incorporado a aplicações Rust. A linguagem é implementada como uma máquina virtual de bytecode e é, em grande parte, compatível com R5RS, com suporte a R7RS em desenvolvimento.
steel é gratuito? Qual é a licença?
steel é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
steel ainda é mantido?
Manutenção ativa. O último commit de steel foi em 22 de out. de 2026.
Para que posso usar steel?
Adicionar uma linguagem de script a uma aplicação Rust Aprender ou experimentar Scheme e o design de interpretadores Escrever scripts de configuração ou extensão que chamem código Rust
Como instalar steel?
Instale Rust (necessário para compilar o Steel) Clone o repositório Execute o REPL com cargo: cargo run
Onde consigo steel?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/mattwparas/steel

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados