rxi/fe logo

rxi/fe

Free

A tiny, embeddable language implemented in ANSI C

FreeFree tier
Type
Open Source

About rxi/fe

A tiny, embeddable Lisp-like language implemented in ANSI C. It features support for numbers, symbols, strings, pairs, lambdas, and macros. The language uses lexical scoping and closures, operates within a fixed-size memory region without dynamic memory allocation (no mallocs), and employs a simple mark-and-sweep garbage collector. It provides an easy-to-use C API for embedding, is portable across 32-bit and 64-bit systems, and is concise at less than 800 source lines of code. The project includes demo scripts and documentation for the C API, language overview, and implementation. Licensed under MIT. Note that pull requests are generally not merged, but bug reports and questions are welcome.

Key Features

Supports numbers, symbols, strings, pairs, lambdas, and macros
Lexically scoped variables and closures
Fixed-size memory region with no dynamic memory allocation (no mallocs)
Simple mark-and-sweep garbage collector
Easy-to-use C API for embedding
Portable ANSI C code working on both 32-bit and 64-bit systems
Concise implementation with less than 800 source lines of code
Includes demo scripts and documentation

Pros & Cons

Pros
  • Extremely small footprint (<800 SLOC) and minimal dependencies
  • Portable to virtually any platform with an ANSI C compiler
  • No dynamic memory allocation simplifies memory management
  • Simple garbage collector reduces runtime overhead
  • Permissive MIT license allows flexible use
  • Provides a straightforward C API for integration
Cons
  • Very limited built-in functionality; not suitable for complex applications without extensive extension
  • No official releases or package management; users must build from source
  • Project is not actively maintained for contributions (pull requests typically not merged)
  • Lack of extensive documentation beyond the repository README

Best For

Embedding in C applications as a scripting languageLightweight scripting in resource-constrained environmentsEducational projects illustrating interpreter design and Lisp concepts

FAQ

What is fe?
fe is a tiny, embeddable Lisp-like language implemented in ANSI C, designed to be lightweight and minimal.
How do I embed fe in my C application?
fe provides an easy-to-use C API. The repository includes documentation and example scripts to guide integration.
What license is fe under?
fe is released under the MIT license.
Can I contribute to fe?
The project focuses on being lightweight and minimal; pull requests will likely not be merged. Bug reports and questions are welcome.