<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Scheme on Simon Shine</title><link>https://simonshine.dk/tags/scheme/</link><description>Recent content in Scheme on Simon Shine</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 08 Nov 2026 22:30:23 +0100</lastBuildDate><atom:link href="https://simonshine.dk/tags/scheme/index.xml" rel="self" type="application/rss+xml"/><item><title>Embedding Scheme in Rust: scheme-rs vs. steel</title><link>https://simonshine.dk/articles/embedding-scheme-in-rust-scheme-rs-vs-steel/</link><pubDate>Sun, 08 Nov 2026 22:30:23 +0100</pubDate><guid>https://simonshine.dk/articles/embedding-scheme-in-rust-scheme-rs-vs-steel/</guid><description>&lt;p&gt;&lt;a href="https://github.com/mattwparas/steel"&gt;Steel&lt;/a&gt; and &lt;a href="https://github.com/maplant/scheme-rs"&gt;scheme-rs&lt;/a&gt; are both Rust crates that put a Scheme interpreter inside
your process. Steel is the older one: first commit February 2020, 1,213 commits, version 0.8.3,
2,654 GitHub stars, and about 78% of its commits from Matt Paras. scheme-rs started in August 2023,
has 263 commits, version 0.2.0, 342 stars, and about 66% from Matt Plant with another 26% from
Linus Shoravi.&lt;/p&gt;
&lt;p&gt;Steel implements &lt;a href="https://standards.scheme.org/official/r5rs.pdf"&gt;R5RS&lt;/a&gt;; scheme-rs implements &lt;a href="https://www.r6rs.org/final/r6rs.pdf"&gt;R6RS&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="tldr"&gt;
 tl;dr
 &lt;a class="heading-anchor" href="#tldr" aria-label="Link to this section"&gt;&amp;para;&lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Steel is R5RS with Racket-like modules, contracts, runtime dylibs, a package manager and an LSP.
It has 569 Rust tests and about 421 Scheme assertions.&lt;/li&gt;
&lt;li&gt;scheme-rs is R6RS with a full numeric tower, R6RS conditions, records and ports, delimited
continuations, a concurrent cycle-collecting GC and &lt;code&gt;Send&lt;/code&gt;/&lt;code&gt;Sync&lt;/code&gt; async embedding. It has 60 Rust
tests, 39 of which belong to the GC.&lt;/li&gt;
&lt;li&gt;Steel is the more adopted project. But I couldn&amp;rsquo;t find its R5RS and R7RS suites in CI.&lt;/li&gt;
&lt;li&gt;Neither is 1.0, both are bus-factor-1, and both have real correctness bugs open.&lt;/li&gt;
&lt;li&gt;Steel is MIT/Apache-2.0, builds on Linux, macOS and Windows, and its core targets wasm. scheme-rs
is MPL-2.0 and tests on Linux.&lt;/li&gt;
&lt;li&gt;Pick Steel for a batteries-included scripting layer; pick scheme-rs for a standards-shaped runtime
with async and threads.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="two-projects-six-years-apart"&gt;
 Two projects, six years apart
 &lt;a class="heading-anchor" href="#two-projects-six-years-apart" aria-label="Link to this section"&gt;&amp;para;&lt;/a&gt;
&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Signal&lt;/th&gt;
					&lt;th&gt;Steel&lt;/th&gt;
					&lt;th&gt;scheme-rs&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;First commit&lt;/td&gt;
					&lt;td&gt;2020-02-20&lt;/td&gt;
					&lt;td&gt;2023-08-12&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Release&lt;/td&gt;
					&lt;td&gt;0.8.3, August 2026&lt;/td&gt;
					&lt;td&gt;0.2.0, May 2026&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Commits&lt;/td&gt;
					&lt;td&gt;1,213&lt;/td&gt;
					&lt;td&gt;263&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Top author&lt;/td&gt;
					&lt;td&gt;~78%, Matt Paras&lt;/td&gt;
					&lt;td&gt;~66%, Matt Plant&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Stars / forks&lt;/td&gt;
					&lt;td&gt;2,654 / 147&lt;/td&gt;
					&lt;td&gt;342 / 25&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Open / closed issues&lt;/td&gt;
					&lt;td&gt;72 / 85&lt;/td&gt;
					&lt;td&gt;23 / 109&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;crate downloads, last 90 days&lt;/td&gt;
					&lt;td&gt;24.5k&lt;/td&gt;
					&lt;td&gt;156&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Rust lines&lt;/td&gt;
					&lt;td&gt;124.8k&lt;/td&gt;
					&lt;td&gt;37.2k&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Steel has the history and the audience. It also nearly died: one commit in 2022, then 298 in 2025
and 148 so far in 2026. scheme-rs is accelerating, with 126 commits in 2026 against 85 in all of
2025, and 47 commits in the last 90 days against Steel&amp;rsquo;s 25.&lt;/p&gt;</description></item></channel></rss>