rxi/fe
FreeA tiny, embeddable language implemented in ANSI C
FreeFree tier
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.