maplant/scheme-rs

Embedded Scheme for the Rust Ecosystem

Rust

330

220 commits

updated Sep 22, 2026

See the code

README

Scheme-rs: Embedded Scheme for the Rust Ecosystem

github crates.io docs.rs

Scheme-rs is an implementation of the R6RS specification of the Scheme programming language that is designed to be embedded within sync and async Rust.

Scheme-rs is safe, fast, and does not sacrifice modern conveniences.

Features:

  • Modern: scheme-rs is a modern scheme implementation of the R6RS standard and includes advanced features such as delimited continuations.
  • Fast: scheme-rs uses JIT compilation to provide performance on par with other modern scheme implementations.
  • Easy to use: scheme-rs makes it trivial to define Rust functions and data structures that are accessible from scheme code and vice-versa.
  • Safe: scheme-rs provides a completely safe API that is impossible to misuse.
  • Supports both async and sync Rust: by enabling the async feature flag it becomes possible (and easy) to define async scheme functions in Rust.
  • Language server protocol: scheme-rs includes a language server protocol implementation for editor agnostic tooling, requires enabling the lsp feature. The LSP only reports read/parse diagnostics by default; macro-expanding diagnostics require passing --dangerously-allow-macro-expansion-in-lsp.

Getting started:

For embedding scheme-rs in your Rust project, take a look at the API documentation.

For installing scheme-rs as a standalone executable, cargo can be used:

$ cargo install scheme-rs 

To enable async features, install with the async and tokio features:

$ cargo install scheme-rs --features "async,tokio"

Documentation

Contributing

If you have any questions or comments about the project, feel free to join the scheme-rs discord server.

async
compiler
r6rs
rust
scheme

Contributors

maplant

166 commits

lshoravi

34 commits

asdfish

11 commits

Inc0n

3 commits

maplant/scheme-rs

Embedded Scheme for the Rust Ecosystem

Rust

330

220 commits

updated Sep 22, 2026

See the code

README

Scheme-rs: Embedded Scheme for the Rust Ecosystem

github crates.io docs.rs

Scheme-rs is an implementation of the R6RS specification of the Scheme programming language that is designed to be embedded within sync and async Rust.

Scheme-rs is safe, fast, and does not sacrifice modern conveniences.

Features:

  • Modern: scheme-rs is a modern scheme implementation of the R6RS standard and includes advanced features such as delimited continuations.
  • Fast: scheme-rs uses JIT compilation to provide performance on par with other modern scheme implementations.
  • Easy to use: scheme-rs makes it trivial to define Rust functions and data structures that are accessible from scheme code and vice-versa.
  • Safe: scheme-rs provides a completely safe API that is impossible to misuse.
  • Supports both async and sync Rust: by enabling the async feature flag it becomes possible (and easy) to define async scheme functions in Rust.
  • Language server protocol: scheme-rs includes a language server protocol implementation for editor agnostic tooling, requires enabling the lsp feature. The LSP only reports read/parse diagnostics by default; macro-expanding diagnostics require passing --dangerously-allow-macro-expansion-in-lsp.

Getting started:

For embedding scheme-rs in your Rust project, take a look at the API documentation.

For installing scheme-rs as a standalone executable, cargo can be used:

$ cargo install scheme-rs 

To enable async features, install with the async and tokio features:

$ cargo install scheme-rs --features "async,tokio"

Documentation

Contributing

If you have any questions or comments about the project, feel free to join the scheme-rs discord server.

async
compiler
r6rs
rust
scheme

Contributors

maplant

166 commits

lshoravi

34 commits

asdfish

11 commits

Inc0n

3 commits

Languages

Rust

86.9%

Scheme

12.5%