finds.dev← search

// the find

eclipse-milo/milo

★ 1,368 · Java · EPL-2.0 · updated Jun 2026

Eclipse Milo™ - an open source implementation of OPC UA (IEC 62541).

Milo is a Java implementation of OPC UA (the IEC 62541 industrial protocol), providing both a low-level stack (binary encoding, security, channels) and higher-level client/server SDKs. It targets Java 17+ and is the de facto standard OPC UA library for JVM environments. If you're connecting to industrial hardware, PLCs, or SCADA systems from Java, this is what you use.

1. Covers the full stack: you can use just the transport layer or the high-level SDK — the layering is clean and the separation between stack and SDK is genuine, not cosmetic. 2. Ships a live public demo server at opc.tcp://milo.digitalpetri.com:62541/milo, which makes integration testing against a real OPC UA server possible without standing up your own. 3. Security is first-class: certificate-based auth, message signing/encryption, and role-based access control are all implemented, not bolted on. 4. Active maintenance (pushed today), targets OPC UA 1.05, and has a proper integration test suite that runs client and server against each other rather than just unit-testing the encoding.

1. OPC UA is a deeply complex protocol and Milo doesn't hide that complexity — the learning curve is steep, and you will spend time reading the spec before the API makes sense. 2. The async API is CompletableFuture-based (not reactive or coroutines), which gets ugly fast in complex session management code; subscription handling in particular produces callback pyramids. 3. Documentation is thin outside the examples directory — the examples are good but there's no real conceptual guide explaining the address space model, session lifecycle, or subscription mechanics for people new to OPC UA. 4. Custom data type handling (structs, unions, enums over the wire) requires understanding BSD dictionaries and codec registration, which is genuinely painful and the examples only scratch the surface.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →