Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Clojure
  3. scheje

scheje

MITClojure

A Scheme interpreter implemented in Clojure, featuring hygienic macros and a REPL.

Visit WebsiteGitHubGitHub
149 stars11 forks0 contributors

What is scheje?

Scheje is a Scheme interpreter implemented in Clojure, providing a full-featured Scheme environment with hygienic macros and lexical scoping. It allows developers to run and extend Scheme code within the Clojure ecosystem, bridging two Lisp-family languages.

Target Audience

Clojure developers interested in language implementation, Lisp enthusiasts exploring Scheme, and educators teaching programming language concepts.

Value Proposition

Scheje offers a clean, minimal implementation of Scheme with proper macro hygiene and cross-platform support, making it an educational tool and a practical embedding for Clojure projects.

Overview

A little scheme implementation on top of Clojure

Use Cases

Best For

  • Learning how Scheme interpreters work
  • Experimenting with hygienic macro systems
  • Embedding a Scheme interpreter in Clojure applications
  • Teaching programming language implementation concepts
  • Building domain-specific languages on top of Scheme
  • Running Scheme code in a ClojureScript environment

Not Ideal For

  • Projects requiring a high-performance, standalone Scheme interpreter without JVM or Node.js overhead
  • Developers needing full R7RS compliance or extensive Scheme standard libraries
  • Teams looking for a production-ready Scheme environment with comprehensive debugging and tooling
  • Embedded systems or resource-constrained environments where Clojure dependencies are impractical

Pros & Cons

Pros

Hygienic Macro Implementation

Uses the KFFD algorithm to prevent symbol capture in macros, as demonstrated in examples with let and and, ensuring reliable macro expansion.

Cross-Platform Support

Runs on both JVM (Clojure) and Node.js (ClojureScript) with REPLs, offering flexibility and fast startup on Node.js compared to JVM.

Minimal and Extensible Core

Built on a small core following Lisp philosophy, allowing easy extension with define-syntax, as shown in implementing let and other forms.

Web REPL for Experimentation

Provides an online interactive REPL to try Scheje without installation, lowering the barrier for learning and testing.

Cons

Limited Standard Library

The library is minimal and bootstrapped from a starting environment, missing many features found in full Scheme implementations, as hinted in the TODOS section.

Clojure Ecosystem Dependency

Requires Clojure or ClojureScript to run, adding setup complexity with lein or npm for projects not already in this ecosystem.

Incomplete and Niche Implementation

Open issues and TODOS indicate ongoing development, which may affect stability for advanced use, and it's tailored for Clojure integration rather than standalone Scheme.

Frequently Asked Questions

Quick Stats

Stars149
Forks11
Contributors0
Open Issues6
Last commit10 years ago
CreatedSince 2015

Tags

#programming-language#compiler#lisp#macros#evaluator#repl#clojure#scheme

Built With

C
Clojure
C
ClojureScript
N
Node.js
L
Leiningen

Links & Resources

Website

Included in

Clojure2.8k
Auto-fetched 7 hours ago

Related Projects

MetabaseMetabase

The easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart:

Stars49,127
Forks6,797
Last commit8 hours ago
LogseqLogseq

A privacy-first, open-source platform for knowledge management and collaboration. Download link: http://github.com/logseq/logseq/releases. roadmap: https://logseq.io/p/NX4mc_ggEV

Stars44,819
Forks2,802
Last commit8 hours ago
malmal

mal - Make a Lisp

Stars10,728
Forks2,705
Last commit10 months ago
JepsenJepsen

A framework for distributed systems verification, with fault injection

Stars7,489
Forks754
Last commit4 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub