If you intend to use Anjay Lite in any commercial context, you must fill in a registration form to obtain a free commercial license for your product.
Register here.
Why is registration required?
We introduced registration to:
- Gain insight into usage patterns — so we can prioritize support, features, and enhancements relevant to real-world use cases.
- Engage with users — allow us to notify you about important updates, security advisories, or licensing changes.
- Offer tailored commercial plugins, professional services, and technical support to accelerate your product development.
For inquiries, please contact: sales@avsystem.com
- About The Project
- Quickstart Guide
- Documentation
- License
- Commercial Support
- LwM2M Server
- Contact
- Feedback
- Contributing
Anjay Lite is a lightweight version of the Anjay LwM2M Client SDK, designed specifically for highly resource-constrained, battery-powered IoT devices. It features a minimalistic architecture that reduces memory and code footprint, offering fine-grained control over resource usage and client behavior.
Anjay Lite is ideal for bare-metal devices without operating systems or dynamic memory allocation. It is optimized for embedded applications such as:
- Smart water metering
- Asset tracking
- Environmental monitoring
While Anjay remains the go-to solution for feature-rich, scalable LwM2M implementations — supporting a broad range of use cases and advanced capabilities, Anjay Lite addresses a complementary need: delivering lightweight LwM2M connectivity without compromise on reliability or standards compliance.
The project is actively developed and maintained by AVSystem.
For more information and a list of supported features, see the Anjay Lite Introduction.
OMA LwM2M
OMA Lightweight M2M is a communication protocol for remote device management and elemetry. It is designed for constrained wireless devices, where communication efficiency impacts battery life. LwM2M supports secure bootstrapping, configuration, and notifications over UDP or SMS using DTLS encryption.
More details about OMA LwM2M: Brief introduction to LwM2M
Anjay Lite examples use MbedTLS to implement DTLS for secure transport.
When MbedTLS support is enabled and MBEDTLS_ROOT_DIR is not set, the build
system automatically runs tools/test-framework-tools/pymbedtls/mbedtls_cache.py.
This Python tool fetches MbedTLS from GitHub, checks out the selected version,
builds it, installs it into the local .mbedtls_cache directory, and returns the
generated CMake package path to the main build.
Python is required only for this automatic fetch-and-build flow. If you provide
MBEDTLS_ROOT_DIR, CMake skips tools/test-framework-tools/pymbedtls/mbedtls_cache.py
entirely and uses the MbedTLS package from that path instead.
To override the default MbedTLS version fetched by the Python tool, set the
MBEDTLS_VERSION variable. If not specified, version 3.6.4 is used:
cd examples/tutorial/BC-Security
mkdir build
cd build
cmake .. -DMBEDTLS_VERSION=3.6.5
make -jMBEDTLS_VERSION and MBEDTLS_ROOT_DIR are mutually exclusive. Use
MBEDTLS_VERSION when the build system shall fetch and build MbedTLS for you,
and use MBEDTLS_ROOT_DIR when you already have a built MbedTLS package.
To use your own custom-built MbedTLS (for example, with specific configuration settings):
- Clone and build MbedTLS locally:
git clone https://github.com/Mbed-TLS/mbedtls
cd mbedtls
git checkout v3.6.5 # or another supported version
# change configuration using scripts/config.py or modify mbedtls_config.h directly
cmake . -DCMAKE_INSTALL_PREFIX=$PWD/install
make install- Build Anjay Lite using your installed version:
cd /path/to/anjay-lite/build
cmake .. -DMBEDTLS_ROOT_DIR=<mbedtls-path/mbedtls/install>
make -jWhen MBEDTLS_ROOT_DIR is set, Python and the Python packages
used by tools/test-framework-tools/pymbedtls/mbedtls_cache.py are not needed.
For automatic fetching and building, Python3 must be available with the
filelock and GitPython packages installed. You can install the project
Python dependencies from requirements.txt, or set up the development
environment using devconfig.
Anjay Lite requires MbedTLS 3.x. Versions from the 2.x series are not supported.
To build the Anjay Lite project, run:
mkdir build
cd build
cmake .. -DMBEDTLS_ROOT_DIR=<mbedtls-path/mbedtls/install>
# or let Python automatically fetch and build MbedTLS for you
# cmake ..
make -jThis will compile all the examples that use Anjay Lite, along with the test suite in the build directory.
To build and run a specific Anjay Lite example (e.g., from the examples/tutorial/BC-MandatoryObjects directory), you can follow these steps:
cd examples/tutorial/BC-MandatoryObjects
mkdir build
cd build
cmake .. -DMBEDTLS_ROOT_DIR=<mbedtls-path/mbedtls/install>
# or let Python automatically fetch and build MbedTLS for you
# cmake ..
make -j
./anjay_lite_bc_mandatory_objects <endpoint_name>Replace <endpoint_name> with your desired endpoint name.
To build the documentation, first install all dependencies by following the Prepare the environment
section in Compilation instructions. Then run:
mkdir build
cd build
cmake ..
make docThe generated documentation will be available in the build/doc/html directory.
Visit the official Anjay Lite documentation:
Anjay Lite is designed with portability in mind and can be integrated into various embedded environments. For details, see the integrations chapter in the documentation.
This project is available under a dual-licensing model:
- A free license for non-commercial use, including evaluation, academic research, and hobbyist projects,
- A commercial license for use in proprietary products and commercial deployments.
See LICENSE for terms and conditions.
Anjay Lite LwM2M Client SDK comes with the option of full commercial support, provided by AVSystem.
If you're interested in LwM2M Server, be sure to check out the Coiote IoT Device Management platform by AVSystem. It also includes the interoperability test module that you can use to test your LwM2M client implementation. Our automated tests and testing scenarios enable you to quickly check how interoperable your device is with LwM2M.
Find us on Discord or contact us directly.
Got a minute? Help improve Anjay IoT SDK - fill out this short form.
Contributions are welcome! See our contributing guide.
