Repolode
mattwparas

mattwparas/steel

Un dialecto de Scheme extensible e integrable, implementado en Rust, con un REPL independiente y una VM de bytecode.

Estrellas
2,629
Forks
143
Issues abiertos
87
Último commit
anteayer

¿Qué es?

Steel es un intérprete de Scheme escrito en Rust que puede ejecutarse como intérprete y REPL independiente o integrarse en aplicaciones Rust. El lenguaje está implementado como una máquina virtual de bytecode y cumple en gran medida con R5RS; la compatibilidad con R7RS está en desarrollo.

El lenguaje incluye compatibilidad con módulos mediante require y provide, al estilo de Racket, además de las macros syntax-rules y syntax-case. También ofrece contratos de orden superior y estructuras de datos inmutables integradas, como listas, vectores, hashmaps y hashsets.

Las funciones y estructuras nativas de Rust se pueden exponer al código Steel mediante embedding o FFI. El proyecto también incluye un gestor de paquetes, un servidor de lenguaje y una biblioteca estándar. Aún está en una versión anterior a la 1.0, por lo que la API puede cambiar.

Funciones clave

  • 01Scheme que cumple en gran medida con R5RS e implementado como una máquina virtual de bytecode
  • 02Sistema de módulos mediante require y provide, similar al de Racket
  • 03Compatibilidad con las macros syntax-rules y syntax-case
  • 04Embedding y FFI para llamar a funciones y estructuras nativas de Rust
  • 05Contratos de orden superior y listas, vectores, hashmaps y hashsets inmutables integrados

Casos de uso

  • Añadir un lenguaje de scripting a una aplicación Rust
  • Aprender sobre Scheme y el diseño de intérpretes, o experimentar con ellos
  • Escribir scripts de configuración o extensiones que llamen a código Rust

Inicio rápido

  1. 1

    Instala Rust (necesario para compilar Steel)

  2. 2

    Clona el repositorio

  3. 3

    Ejecuta el REPL con cargo

    cargo run

Antes de usarlo

  • La API aún es anterior a la versión 1.0 y puede cambiar en cualquier momento.
  • La compatibilidad con R5RS es parcial: falta let-syntax y la compatibilidad con R7RS aún está en desarrollo.

En colecciones

Temas

Preguntas frecuentes

¿Qué es steel?
Un dialecto de Scheme extensible e integrable, implementado en Rust, con un REPL independiente y una VM de bytecode. Steel es un intérprete de Scheme escrito en Rust que puede ejecutarse como intérprete y REPL independiente o integrarse en aplicaciones Rust. El lenguaje está implementado como una máquina virtual de bytecode y cumple en gran medida con R5RS; la compatibilidad con R7RS está en desarrollo.
¿steel es gratuito? ¿Qué licencia tiene?
steel es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿steel sigue mantenido?
Mantenimiento activo. El último commit de steel fue el 22 oct 2026.
¿Para qué puedo usar steel?
Añadir un lenguaje de scripting a una aplicación Rust Aprender sobre Scheme y el diseño de intérpretes, o experimentar con ellos Escribir scripts de configuración o extensiones que llamen a código Rust
¿Cómo se instala steel?
Instala Rust (necesario para compilar Steel) Clona el repositorio Ejecuta el REPL con cargo: cargo run
¿Dónde consigo steel?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/mattwparas/steel

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados