Java API Embedded Software Development

Libraries

MicroEJ Library

Check out our available APIs from a large number of software libraries and discover how to add APIs specific to your projects.

MicroEJ VEE supports several languages. The tag next to each library name shows the language of its API: Java or C (ManagedC).

  • Core Libraries:
B-ON Java B-ON introduces new concepts tailored to these constrained environments, while still adhering to the boundaries of Java semantics, hence the term “Beyond.” Documentation and Javadoc
EDC (Embedded Device Configuration) Java The Embedded Device Configuration specification defines the minimal standard runtime environment for embedded devices. Documentation and Javadoc
KF (Kernel and Features) Java The Kernel & Features semantic (KF) extends the runtime for managing Multi-Sandboxed Applications. KF also has focus on software security and resources control. Documentation and Javadoc
Lua C MicroEJ port of Lua 5.3, an embeddable scripting language with a small interpreter. Application logic can be scripted and updated on the device without rebuilding the firmware, with garbage collection paced for constrained heaps. Contact Us
Service Loader Java Contains service management base interfaces and classes. Javadoc
SNI (Simple Native Interface) Java SNI provides a simple mechanism for implementing native Java methods in the C language. Documentation and Javadoc
WASI (POSIX APIs) C MicroEJ implementation of the WASI 0.1 specification, extended with POSIX APIs that wasi-libc does not provide. C sources compiled to WebAssembly with the wasi-sdk toolchain reach the file system, sockets, DNS, clocks, POSIX threads (pthreads), and TLS. Contact Us

 

  • Featured VEE:
VEE Wear Documentation and Javadoc
LPFE (Low Power Facer Engine) VEE Wear supports the Facer Engine, expanding Facer’s extensive watch face catalog of 500,000 faces across all smartwatches, including low-power RTOS watches, enriching the user experience for all users. Documentation
Power Library available to control an MCU’s power modes. Documentation
VEE Script VEE Script is a scripting language supported on MICROEJ VEE. Its syntax is a subset of JavaScript. Documentation

 

VEE Energy Documentation
DLMS A library supporting the metering metrology standard DLMS. On demand
Energy Metrology The Energy Metrology Library is responsible for accessing meter metrology data and parameters. Javadoc

 

  • UI/UX Libraries:
Drawings (Raster Graphics Engine) Java The raster graphics engine allows the use of shapes rendering and image with transformation rendering algorithms. Javadoc
MicroUI Java MicroUI Foundation Library provides access to a pixel-based display and inputs. Documentation and Javadoc
MicroVG Java MicroVG Foundation Library provides vector drawing capabilities. Documentation and Javadoc
Motion Java Motion is a library that provides some of the most commonly used easing functions and allows users to define new ones. Documentation and Javadoc
MWT Java MWT is a toolkit that simplifies the creation and use of graphical user interface widgets on a pixel-based display. Documentation and Javadoc
Navigation Framework Java The Navigation Framework structures a multi-page application. It navigates between pages identified by a key, maintains the navigation history, and animates each page change with a transition. It builds on MWT. Documentation and Javadoc
NLS Java Native Language Support (NLS) allows the application to facilitate internationalization. It provides support to manipulate messages and translate them in different languages. Documentation and Javadoc
Widgets Java The Widget library provides very common widgets with basic implementations. Documentation and Javadoc

 

  • Connectivity Libraries:
Android Connectivity Java Network connection state and notifications. Documentation and Javadoc
Bluetooth Java The Bluetooth API Library provides APIs to use BLE (Bluetooth Low Energy) in an Application. Documentation and Javadoc
Bluetooth Utility Java Utility methods for developing a Bluetooth Application, built on top of the Bluetooth API Library. Documentation and Javadoc
Ecom Java A lightweight connection framework. Javadoc
Ecom-network Java Network interfaces management and IP configurations. Documentation and Javadoc
Ecom-wifi (Wi-Fi Configuration Agent) Java Wi-Fi connectivity manager. Documentation and Javadoc
libev C MicroEJ port of libev, a compact event loop library. Dispatches socket, timer, and signal events from a single loop, for client and server applications. Contact Us
libuv (Asynchronous I/O) C MicroEJ port of libuv, a multi-platform asynchronous I/O library. Provides an event loop with non-blocking file system, network, and timer operations, extended with threads created at a chosen stack size. Contact Us
Network Java Client and Server TCP/IP sockets. Documentation and Javadoc
Serial Java A serial connector library. Documentation and Javadoc

 

  • Communication Libraries:
AWS IoT Core Client Java AWS IoT Core client, providing publish/subscribe functionalities. Documentation and Javadoc
Hoka (HTTP Server) Java HOKA is a tiny extensible Java web server for embedded applications. Documentation and Javadoc
HTTP Client Java OpenJDK HTTP client. Documentation and Javadoc
libwebsockets C MicroEJ port of libwebsockets, a lightweight HTTP and WebSocket library. Implements HTTPS clients and servers, with TLS provided by the WASI SSL extension. Contact Us
MQTT Client (MicroPaho) Java Tiny footprint MQTT 3.1.1 client based on Eclipse Paho Java APIs. Documentation and Javadoc
NTP Client Java Simple Network Time Protocol (SNTP) client, used to retrieve the current time from an NTP server. Documentation and Javadoc
REST Client (Resty) Java REpresentational State Transfer (REST) client. Documentation and Javadoc
Websocket Java WebSocket client. Documentation and Javadoc

 

  • Security Libraries:
Crypto Java Cryptographic operations library, implementing a subset of the Java Cryptography Architecture: cipher, digest, MAC, signature, secure random, and key and certificate management. Documentation and Javadoc
Monocypher (Cryptography) C MicroEJ port of Monocypher, a compact cryptographic library. Provides authenticated encryption, hashing, key exchange, and Ed25519 signatures in a small code footprint. Contact Us
SSL/TLS Java Client and Server secure sockets layer using Transport Layer Security (TLS) protocols. Documentation and Javadoc

 

  • Device Management Libraries:
Device Java The Device Foundation Library provides access to the device information. This includes the architecture name and a unique identifier of the device for this architecture. Documentation and Javadoc
Event Java The Event Queue Foundation Library provides an asynchronous communication interface between the native world and the Managed world based on events. Documentation and Javadoc
HAL (Hardware Abstraction Layer) Java The Hardware Abstraction Layer (HAL) Foundation Library features API that target IO devices, such as GPIOs, analog to/from digital converters (ADC / DAC), etc. The API are very basic in order to be as similar as possible to the BSP drivers. Documentation and Javadoc
Logging Java An implementation of the standard java.util.logging API, providing named loggers and adjustable log levels for application and library code. Documentation and Javadoc
SP (Shielded Plug) Java The Shielded Plug (SP) library provides data segregation with a clear publish-subscribe API. The data-sharing between modules uses the concept of shared memory blocks, with introspection. Documentation and Javadoc
Time Java The library introduces different classes for date, time, date-time, and variations for offset and time zone. Documentation.
Trace Java A trace library used for code introspection. Documentation and Javadoc
Watchdog Java The WatchdogTimer Foundation Library provides a way to handle hardware watchdog timer. A watchdog is particularly useful if you want to monitor different items of your software system during the runtime. Documentation and Javadoc

 

  • Persistent Data Libraries:
File System Java The FS Foundation Library defines a low-level File System framework for embedded devices. It allows you to manage abstract files and directories without worrying about the native underlying File System kind. Javadoc
SQLite C MicroEJ port of SQLite, a self-contained transactional SQL database engine. Stores structured application data in a single file on the device, with no separate server process. Contact Us
Storage Java The storage library uses an identifier to store, retrieve or remove an entry. Documentation and Javadoc

 

  • Multimedia Libraries:
Audio Java The Audio API Library provides APIs to record and play audio in an Application. Documentation and Javadoc
FLAC (Free Lossless Audio Codec) C MicroEJ port of the libFLAC reference implementation from the Xiph.Org Foundation. Decodes and encodes lossless audio streams, preserving the original samples bit for bit. Contact Us

 

  • AI Libraries:
MicroAI Java The MicroAI Library provides APIs to interact with trained Machine Learning models, especially to run inferences. Documentation and Javadoc

 

  • Location Libraries:
GNSS/GPS Java GNSS stream data retriever. Documentation and Javadoc

 

  • Serialization and Data Format Libraries:
CBOR Java CBOR Encoder and Decoder Library. Documentation and Javadoc
Flatbuffers Java FlatBuffers Runtime library to support encoders/decoders generated by the FlatBuffers schema compiler. Module
Jansson (JSON) C MicroEJ port of Jansson, a C library for encoding, decoding, and manipulating JSON. The parse buffer is sized in a single allocation, which lowers the peak memory needed for large documents. Contact Us
java.io.DataInput & DataOutput Java For serialization of Java primitive types and UTF-8 String. From the EDC library. Javadoc DataInput and Javadoc DataOutput.
JSON (streamed) Java JSON Writer and Reader Library. Javadoc
libarchive C MicroEJ port of libarchive, a multi-format archive and compression library. Creates and extracts tar.gz archives on the device, using zlib as the compression library. Contact Us
libexpat (XML Parser) C MicroEJ port of Expat, a stream-oriented XML parser. Parses XML documents incrementally, without holding the whole document in memory. Contact Us
org.json.me (buffered) Java An org.json.me port. Manipulates JSON objects in Java. Documentation and Javadoc
Protobuf Java Protobuf Library. Javadoc
ResourceBuffers Java MicroEJ ResourceBuffers provides a compact format with random read access from an Application resource. From the B-ON library. Javadoc
XML Java org.kxml2 port. Documentation and Javadoc

 
All the Java libraries are available through MicroEJ Module Repositories and integrated to application projects.

MicroEJ Consolidated Javadoc

C and Legacy API for your Embedded Software Development

ABSTRACTION LAYERS

VEE Abstraction Layer

An Abstraction Layer is the code (C, asm, etc.) that implements a Foundation Library’s low-level APIs over a board support package (BSP) or a C library. Discover how to abstract your hardware and BSP code for your projects to flourish.

 

  • Bluetooth Abstraction Layer:
esp-idf (v5.0) MicroEJ Bluetooth Low Level API implementation over esp-idf APIs. Github
Zephyr API MicroEJ Bluetooth Low Level API implementation over ZephyrOS APIs. On demand

 

  • Core (and essentials) Abstraction Layer:
CMX RTOS MicroEJ Core Engine Abstraction Layer implementation for CMX RTOS. On demand
FreeRTOS MicroEJ Core Engine Abstraction Layer implementation for FreeRTOS. Github
Linux This project contains a complete Abstraction Layer implementation to run the VEE on a Linux system. Github
mbedOS MicroEJ Core Engine Abstraction Layer implementation for mbedOS. On demand
NuttX MicroEJ Core Engine Abstraction Layer implementation for NuttX. Github
PikeOS MicroEJ Core Engine Abstraction Layer implementation for PikeOs. On demand
ThreadX Low Level MicroEJ Core Engine API implementation over ThreadX. GitHub
uC-OS3 MicroEJ Core Engine Abstraction Layer implementation for uC-OS3. GitHub
VxWorks MicroEJ Core Engine Abstraction Layer implementation for VxWorks. On demand
Zephyr MicroEJ Core Engine Abstraction Layer implementation for Zephyr OS. GitHub
EventQueue over ThreadX Low Level MicroEJ Event Queue API implementation over ThreadX. Github
Time over FreeRTOS MicroEJ Time Abstraction Layer implementation for FreeRTOS. Github

 

  • FS Abstraction Layer:
FatFS MicroEJ FS Low Level API implementation over FatFS. Github
FileX MicroEJ FS Low Level API implementation over FileX. (The implementation is inside an S7G2DK VEE port package.) Download
Linux FS This project contains a complete Abstraction Layer implementation to run the VEE on a Linux system. Github
littlefs MicroEJ FS Low Level API implementation over FatFS. On demand
Zephyr API MicroEJ FS Low Level API implementation over Zephyr APIs. On demand

 

  • Kernel Abstraction Layer:
Flash MicroEJ Kernel Low Level API implementation to install features in an External Flash. Github
Linux RAM This project contains a complete Abstraction Layer implementation to run the VEE on a Linux system. Github
RAM LLKERNEL implementation with allocation in RAM. Github

 

  • NET Abstraction Layer:
Linux BSD API This project contains a complete Abstraction Layer implementation to run the VEE on a Linux system. Github
lwIP MicroEJ NET Low Level API implementation over lwIP. Github
NetX MicroEJ NET Low Level API implementation over NetX. (The implementation is inside an S7G2DK VEE port package.) Download

 

  • Security Abstraction Layer:
MbedTLS Low Level MicroEJ Security API implementation for MbedTLS. Github
Linux OpenSSL This project contains a complete Abstraction Layer implementation to run the VEE on a Linux system. Github
WolfCrypt/WolfSSL This component implements the Low Level API LLSEC needed by the MicroEJ Security foundation library to connect to a Board Support Package using the Woftcrypt/WolfSSL stack. Github
escrypt-cycurlib Low Level MicroEJ Security API implementation for escrypt-cycurlib. On demand

 

  • UI Abstraction Layer:
Raster Graphics with serial or parallel display (no GPU) Low Level MicroEJ UI API implementation for serial of parallel display on ESP-WROVER-KIT. Github
Raster Graphics with serial or parallel display (no GPU) Low Level MicroEJ UI API implementation for serial of parallel display on RW612 Freedom. Github
Raster Graphics GPU-Dave2D Low Level MicroEJ UI API implementation for the Dave/2D API. On demand
Raster Graphics GPU-DMA2D Low Level MicroEJ UI API implementation for the DMA-2D API. Github
Raster Graphics GPU-RGA Low Level MicroEJ UI API implementation for the RGA library. On demand
Raster and Vector Graphics GPU-VGLITE Low Level MicroEJ UI API implementation for the VGLite API. Github
Raster Graphics on Linux (FB or libDRM) Low Level MicroEJ UI API implementation for Linux either using the framebuffer directly or through libDRM. Github
Raster Graphics GPU-NEMAGFX Low Level MicroEJ UI API implementation for the NEMAGFX API. On demand
Vector Graphics GPU-NEMAVG Low Level MicroEJ UI API implementation for the NEMAVG API. On demand

 

  • Wi-Fi Abstraction Layer:
esp-idf (v5.0) Low Level MicroEJ Wi-Fi API implementation for esp-idf APIs. Github
Realtek AMEBA-D Kit Low Level MicroEJ Wi-Fi API implementation for Realtek Ameba-D APIs. Github

Get Started with MicroEJ software solutions

GET STARTED WITH MICROEJ

Get access to our featured starter kits (available with or without hardware) to let you try and evaluate our technology.

Happy coding!

Get Started