eclipse/mraa
FreeLinux Library for low speed IO Communication in C with bindings for C++, Python, Node.js & Java. Supports generic io platforms, as well as Intel Edison, Intel Joule, Raspberry Pi and many more.
About eclipse/mraa
Eclipse MRAA (Libmraa) is a C/C++ library with bindings to Java, Python, and JavaScript for low-level I/O communication on GNU/Linux platforms. It provides a structured API where port names and numbering match the specific board being used, enabling portable code that works across supported hardware through runtime board detection. The library supports a wide range of x86, ARM, MIPS, FPGA, USB, and RISC-V boards, including Intel Edison, Raspberry Pi, Beaglebone Black, and many more. It is designed to simplify sensor and actuator mapping for IoT and edge devices, allowing high-level languages to control low-level communication protocols. MRAA is an Eclipse IoT project and is distributed under an open-source license.
Key Features
Pros & Cons
- Open-source and free to use
- Wide board support including x86, ARM, MIPS, FPGA, and USB platforms
- Runtime board detection enables portable code without hardware-specific modifications
- Multiple language bindings allow use from C++, Java, Python, and JavaScript
- Active Eclipse IoT project with community backing
- Limited to GNU/Linux operating systems
- Running tools or applications may require elevated permissions (sudo) on Ubuntu
- Steep learning curve for beginners unfamiliar with low-level I/O concepts
- Not an AI tool; focused purely on hardware abstraction and communication