finds.dev← search

// the find

open62541/open62541

★ 3,139 · C · MPL-2.0 · updated Jun 2026

Open source implementation of OPC UA (OPC Unified Architecture) aka IEC 62541 licensed under Mozilla Public License v2.0

A C99 implementation of the OPC UA industrial communication protocol — the standard that lets PLCs, sensors, and SCADA systems talk to each other. If you're building anything that needs to speak to industrial hardware or integrate with factory automation systems, this is the library you reach for. Not for general-purpose networking.

Zero-dependency core (C99 stdlib only) with optional mbedTLS/OpenSSL for encryption — you can actually run this on embedded hardware; the plugin architecture isn't just marketing, it's how they ship Zephyr, lwIP, and FreeRTOS support from the same codebase. Official OPC Foundation CTT certification for the Standard Server 2017 Profile — this means the protocol conformance is verified, not aspirational. The single-file distribution (one .c + one .h) is genuinely useful for dropping into projects that don't want to deal with CMake submodules. OSSFuzz integration with active fuzzing means the attack surface is continuously tested, which matters a lot for anything on an industrial network.

C manual memory management throughout — UA_Variant, UA_NodeId, and friends all need explicit cleanup calls, and missing one leaks. The examples are the main learning resource and some are clearly written to demonstrate API surface, not to show how you'd actually structure a production implementation. PubSub support (the newer real-time transport) is still maturing; the RT offsets examples show it's possible but the documentation gap between the client/server path and pubsub is significant. Commercial support is funneled through a single company (o6 Automation GmbH), which is fine until it isn't — the contributor base is relatively concentrated.

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 →