Ferrett
FreeFerret is a free software Clojure implementation for real time embedded control systems.
About Ferrett
Ferret is a free and open-source Lisp implementation designed specifically for real-time embedded control systems. It compiles Ferret Lisp source code into self-contained C++11 code, which can run on any platform with a C++11-compliant compiler, from microcontrollers with as little as 2KB of RAM to general-purpose computers. Key features include deterministic execution for real-time applications, immutable data structures, functional macros, an easy foreign function interface (FFI) for inline C/C++, memory pooling to operate without heap allocation, and a module system. Ferret supports a wide range of hardware, including Arduino boards, Raspberry Pi, ESP8266, and various ARM and AVR microcontrollers, making it suitable for IoT, robotics, and automation projects.
Key Features
Pros & Cons
- Deterministic execution suitable for hard real-time applications
- Runs on extremely resource-constrained devices (as low as 2KB RAM)
- Memory pooling allows operation without dynamic heap allocation
- Seamless integration with existing C and C++ code via inline FFI
- Portable across a wide range of architectures and operating systems
- Functional and expressive Lisp syntax with macros and immutable data
- Small community and limited third-party libraries compared to mainstream languages
- Documentation is primarily a technical manual, may lack tutorials for beginners
- Requires familiarity with Lisp-like syntax which has a learning curve
- Compiled C++ code may have overhead compared to hand-tuned C for extreme optimization