Skip to content
Kevin Herron edited this page Oct 5, 2026 · 6 revisions

Applies to Milo 1.2.0-SNAPSHOT. Source baseline 7faaf4f05, 2026-10-04.

Eclipse Milo is an open-source implementation of OPC UA (IEC 62541) for Java. It includes an OPC UA stack and client and server SDKs. Milo targets OPC UA 1.05 and runs on Java 17 or later.

This guide covers Milo 1.2.0-SNAPSHOT, an unreleased development version, at the source baseline above. Snapshot builds are republished as development continues, so a later 1.2.0-SNAPSHOT can differ, and APIs can change before release.

The latest release on 2026-10-04 is 1.1.7. The examples in this guide use 1.2 APIs, except the "Before" examples in the 1.2.0 feature and migration guide, which show 1.1.7 code. For other 1.1.7 workflows, use the tagged source and examples.

Start here

Whether you are writing a client, a server, or both, start with these four pages in order. The tutorial client connects to the tutorial server, so you build the server first.

  1. Getting started: set up a Maven project with the Milo SDKs.
  2. OPC UA concepts: learn the Nodes, references, and services the guide uses.
  3. Your first server: build a small thermostat server, which the rest of the guide uses as its running example.
  4. Your first client: connect to the thermostat and read its temperature.

After the tutorials, follow the path that matches your application. To consume data from an OPC UA server, continue with the Client SDK guide. To expose application or device data, continue with the Server SDK guide. Capabilities and limitations shows which parts your application must supply.

The rest of the guide

  • Client SDK: connect, browse, read, write, subscribe, and call Methods, using the thermostat as the example.
  • Server SDK: configure a server, build its address space, and connect it to live data, starting from the thermostat.
  • Feature guides: Reverse Connect, GDS client, and Alias Names cover optional OPC UA features.
  • Reference: look up exact rules and values for data types, encodings, security policies, configuration, and capabilities.
  • Operations: Deployment, Troubleshooting, and Diagnostics and Wireshark help once a program is running or failing.
  • Examples: find runnable source programs and suggested learning paths.
  • Release notes: see what is new in 1.2 and what to change when you upgrade.

Getting help

Contributing

Contributor resources link to build instructions, conventions, testing guidance, and architecture documentation in the source repository.

Clone this wiki locally