

LibJuno
- LibJuno GitHub
- LibJuno is a lightweight C99 library designed specifically for embedded systems.
- LibJuno focuses on providing essential functionalities like memory management, data structures, string operations and more all without dynamic memory allocation!
- LibJuno optimizes for memory safety, determinism and efficiency in constrained environments.
- LibJuno is compiled without the standard library to maximize portability.
Using LibJuno
- By default, LibJuno will compile both a shared and static library
Documentation
Dependencies
- LibJuno is aims to minimze dependencies, including dependencies on the C standard library
- Dependencies of LibJuno are listed here
- This does not include dependencies on compilers or build scripting/tooling
Building and Testing
- Generate build files:
- Compile the project:
- Run unit-tests:
cmake -B build . -DJUNO_TESTS=ON
make -C build
cd build
ctest
CMake Build Option
-DJUNO_TESTS=ON
: Enables Unity unit tests
-DJUNO_POSIX=ON
: Enables the posix library for OS-dependent modules
-DJUNO_DOCS=ON
: Enables doxygen generation via make -C build docs
Current Modules
- Memory Management: Provides block-based allocation, deallocation, and memory tracking.
- String Operations: Handles string initialization, manipulation, concatenation, and cleanup.
Future Modules
- Filesystem interactions
- Networking support
- Additional utility libraries for embedded applications
Inspiration for the Name
Juno is the name of my wonderful dog and she has brought me so much comfort and stability throughout the years. I wanted to honor her legacy by naming an open-source library after her.