OMA Lightweight M2M server and client in Java

What is LWM2M?

OMA Lightweight M2M is a protocol from the Open Mobile Alliance for M2M or IoT device management.

  • On top of CoAP
  • UDP and SMS transport layer support
  • Simple Object based resource model
  • Basic M2M functionalities: LWM2M Server, Access Control, Device, Connectivity, Firmware Update, Location, Connectivity Statistics
  • DTLS based security

What is Eclipse Leshan?

Leshan provides libraries that help people develop their own Lightweight M2M server and client.

  • Eclipse project since 2014
  • Modular Java libraries
  • Based on Californium CoAP implementation
  • Based on Scandium DTLS implementation
  • IPSO objects support

Discover & Test

In order to help you test your LWM2M solutions quickly, the Leshan project provides a Lightweight M2M standalone server you can freely connect to for evaluation purposes.


A problem? A missing feature? An idea? Contact the community.

Getting started

Follow the tutorial

This tutorial aims at giving you a hands-on experience with LightweightM2M by showing you the power and simplicity of the Eclipse Leshan library for managing real world IoT application.


The artifacts are hosted at Maven Central. For using Leshan in your project, simple put this snippet in your pom.xml:


Learn more

Connect objects to the cloud using Leshan

Leshan & Wakaama in action

Eclipse Wakaama

Wakaama is a LWM2M written in C and designed to be portable on POSIX compliant systems.