awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
open62541 avatar

open62541/open62541

0
View on GitHub↗
3,033 stars·1,392 forks·C·mpl-2.0·13 viewsopen62541.org↗

Open62541

open62541 is an open-source implementation of the OPC Unified Architecture standard, providing a complete stack for industrial automation and data exchange. It functions as both an OPC UA server and client, enabling the creation of an object-oriented address space to model physical industrial assets and their relationships.

The project is designed for versatility across diverse hardware, offering a C99 library that can be deployed to both cloud servers and resource-constrained embedded environments. It distinguishes itself through a pluggable network layer and interface-based security backends, allowing developers to swap communication APIs and encryption providers like OpenSSL or mbedTLS.

The framework covers a broad range of industrial communication capabilities, including publish-subscribe messaging, secure channel management with elliptic curve cryptography, and real-time data monitoring via subscriptions. It also provides tools for automated information modeling, such as transforming XML node set definitions into C source code.

The library can be integrated into projects via amalgamated source files to simplify the build process.

Features

  • Industrial Server Implementations - Provides a complete implementation of an OPC UA server for industrial interoperability.
  • OPC UA Clients - Provides a complete client implementation to connect to remote servers using the standardized industrial protocol.
  • OPC UA Stacks - Provides a complete open-source implementation of the OPC Unified Architecture standard for industrial automation and data exchange.
  • Information Models - Implements an object-oriented system for defining structured hierarchies of nodes and references to represent physical assets.
  • C99 Constrained Deployments - Supports deployment to embedded systems and cloud servers with a small memory footprint and C99 compliance.
  • Attribute Change Notifications - Tracks changes to specific data points using monitored items to receive notifications when values update.
  • Sharded Read-Write Operations - Retrieves or updates attributes of nodes in the address space using standard read and write operations.
  • Address Space Management - Provides tools to add, delete, and configure variables, objects, and reference types within the address space.
  • Data Change Subscriptions - Implements mechanisms for pushing real-time data changes to clients via subscriptions.
  • Information Model Management - Provides tools to add, delete, and organize nodes and references within the server address space.
  • Information Models - Provides an object-oriented system for defining industrial information models and asset relationships.
  • Node Attribute Access - Accesses or modifies the values and metadata of nodes, including individual elements or array ranges.
  • Variant Data Type Storage - Uses a variant-based generic storage system to handle scalar values and multi-dimensional arrays.
  • Embedded Communication Libraries - A C99 library providing binary and JSON encoding and secure channels for resource-constrained hardware.
  • Embedded Implementations - Deploying standardized communication protocols on resource-constrained hardware with minimal memory and binary footprints.
  • Industrial Node Attribute Accessors - Retrieves the current values of attributes from specific nodes in the server address space.
  • Industrial Node Attribute Modifiers - Updates the values of attributes for specific nodes in the server address space.
  • Address Space Browsing - Discovers nodes by traversing references and translating browse paths into node identifiers.
  • Address Space Path Resolvers - Processes browse path expressions to resolve nodes using reference types and browse names within the address space.
  • Network Communication Implementations - Implements the standardized industrial communication protocol for data exchange between clients and servers.
  • Industrial Communication Libraries - A C99 library providing binary and JSON encoding, secure channels, and pub-sub messaging for embedded and cloud systems.
  • Monitored Item Subscriptions - Creates and configures subscriptions to track multiple monitored items and retrieve notifications via publish requests.
  • Pluggable Network Layers - Provides a pluggable network layer allowing the communication API to be swapped for different hardware targets.
  • OPC UA Servers - Provides a complete server implementation that hosts a data model and provides access to variables and methods.
  • Publish-Subscribe Systems - Implements publish-subscribe messaging by creating data sets and metadata for distribution to subscribers.
  • Data Change Notifications - Monitors variables for changes and triggers notifications for events, alarms, and conditions via subscriptions.
  • Remote Procedure Execution - Allows clients to trigger specific functions on remote server nodes and retrieve the resulting output.
  • Secure Communication Channels - Opens and manages encrypted communication channels to ensure the confidentiality and integrity of messages.
  • Secure Industrial Communications - Implementing encrypted channels and certificate-based authentication to protect data exchange between industrial devices.
  • Server Metadata Queries - Allows clients to issue queries to the server to retrieve filtered sets of industrial data.
  • Session Establishment - Handles the creation of secure channels and authenticated sessions required to connect clients to servers.
  • Global Address Space Management - Organizes industrial information into a hierarchy of nodes and references using an object-oriented type system.
  • Node Method Invocation - Resolves node identifiers to execute associated logic on specific object instances.
  • Node-Level Access Controls - Controls which users or clients can access or modify individual nodes within the information model.
  • Communication Encryption - Secures data transmission using encryption backends such as OpenSSL or mbedTLS including hardware TPM support.
  • Security and Access Control - Authenticates identities and encrypts data streams to prevent unauthorized access and ensure privacy.
  • Traffic Encryption - Secures communication between clients and servers using encrypted binary protocols.
  • Industrial Alarms and Events - Generates and emits alarms and conditions to notify clients of specific system occurrences.
  • Monitored Item Management - Creates subscriptions to track changes in server values and receives notifications when conditions are met.
  • State Change Monitoring - Sets up subscriptions and monitored items to receive automatic notifications when specific data values change.
  • Server Method Exposures - Enables the attachment of executable logic to nodes in the address space for remote execution.
  • Server-Side Method Invokers - Triggers functions on server objects using input arguments and receives validated outputs.
  • Model Code Generators - Produces data types and server-side information models from standard XML node set definitions.
  • Code Generators - Automatically generates C code for complex data types from CSV and BSD definition files.
  • Historical Data Querying Interfaces - Provides interfaces to read and update historical values and events associated with nodes.
  • Multi-Format Encoders - Translates complex data types between binary, JSON, and XML formats for flexible network transmission.
  • Data Type Managers - Provides utilities for handling and managing standard OPC UA data types and variants.
  • Data Type Mappings - Translates between application-level structures and data type descriptions for various types.
  • Address Space Node Management - Adds, deletes, and manages nodes and their references within the server information hierarchy.
  • Server Discovery APIs - Locates available servers and endpoint configurations using discovery services or network multicast.
  • Event Loop Integrations - Supports plugging in custom event loop implementations to manage timers and asynchronous operations.
  • XML to DSL Converters - Transforms XML files into source and header files to automatically instantiate information models within a server.
  • Binary Data Encoding - Converts data structures to and from binary formats using configurable namespace mappings.
  • Publish-Subscribe Messaging - Sets up asynchronous data exchange where servers publish data fields to middleware or subscribers.
  • PubSub Subscribers - Implements subscriber logic to consume data messages from middleware based on specific data interests.
  • Local Service Discovery - Locates available servers using a local discovery service with optional multicast support.
  • PubSub Publishers - Implements publishing capabilities for distributing data via broker-less or broker-based transport protocols.
  • Message Encoders and Decoders - Translates internal network message structures to and from binary or JSON formats.
  • Custom Network Transport Layers - Plugs in custom networking APIs to support specific hardware targets or embedded environments.
  • PubSub Messaging Systems - Manages real-time data distribution using publish-subscribe patterns over UDP multicast.
  • Remote Procedure Calls - Executes service sets on a remote node to perform specific actions or logic.
  • Service Discovery Integrations - Registers servers with discovery services to help clients find available network endpoints.
  • Binary Size Optimizations - Strip debug information and disable unused features to lower the total RAM and ROM usage.
  • Elliptic Curve Certificate Generators - Creates public-private key pairs and certificates using elliptic curves for secure identity verification.
  • Secure Communication Implementations - Uses elliptic curve cryptography to provide strong encryption with short keys for resource-constrained deployments.
  • Session and Credential Handling - Manages the creation, activation, and closure of user sessions by assigning specific attributes and context pointers.
  • Session-Based Access Controls - Validates user identities and assigns roles to active sessions to restrict access to specific nodes.
  • Pluggable Security Backends - Abstracts encryption and certificate management to allow swapping between providers like OpenSSL or mbedTLS.
  • Role-Based Access Control - Restricts access to nodes or namespaces by assigning roles to sessions and defining permissions.
  • Secure Publish-Subscribe Messaging - Encrypts and signs network messages using security policies and keys managed via a security service.
  • Security Policies - Implements custom security policies and certificate handling to manage encrypted communication and identity verification.
  • Server Certificate Management - Updates server certificates and manages trusted issuer lists or revocation lists at runtime.
  • Certificate Trust Managers - Adds, removes, and verifies certificates within a trusted list to handle secure connections.
  • Session Authentication - Authenticates requests by creating and activating application-layer sessions using software certificates and user identities.
  • Async Operation Coordinators - Handle long-running read or write tasks in the background to prevent blocking the main execution loop.
  • Data Encoders and Decoders - Transforms complex data types between binary, JSON, and XML formats for network transmission.
  • Dynamic Address Space Management - Allows adding or removing nodes from the information model at runtime to change the server structure.
  • Binary Footprint Optimizers - Allows reducing the binary footprint for embedded devices by stripping debug info and disabling unused features.
  • Schema-to-Code Generators - Transforms standardized XML node set definitions into C source code to automate model instantiation.
  • Asynchronous Service Invocations - Supports non-blocking service requests with callback-based responses to maintain system responsiveness.
  • Asynchronous Event Loops - Manages timers and asynchronous network operations through an injectable loop that handles interrupts.
  • Event Monitoring - Allows clients to receive notifications when specific events occur on monitored server nodes.
  • Event Monitoring Systems - Generates events that bubble up the object hierarchy to notify monitored clients or local callbacks.
  • Server Lifecycle Management - Provides mechanisms for controlling the start, stop, and operational state of the server instance.
  • Miscellaneous Tools - C-based implementation of the OPC UA standard.

Star history

Star history chart for open62541/open62541Star history chart for open62541/open62541

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does open62541/open62541 do?

open62541 is an open-source implementation of the OPC Unified Architecture standard, providing a complete stack for industrial automation and data exchange. It functions as both an OPC UA server and client, enabling the creation of an object-oriented address space to model physical industrial assets and their relationships.

What are the main features of open62541/open62541?

The main features of open62541/open62541 are: Industrial Server Implementations, OPC UA Clients, OPC UA Stacks, Information Models, C99 Constrained Deployments, Attribute Change Notifications, Sharded Read-Write Operations, Address Space Management.

What are some open-source alternatives to open62541/open62541?

Open-source alternatives to open62541/open62541 include: ravendb/ravendb — RavenDB is a multi-model NoSQL document database designed for high-performance, ACID-compliant data storage. It… libp2p/libp2p — libp2p is a modular peer-to-peer networking stack designed for building decentralized applications. It provides the… dicedb/dice — Dice is a low-latency key-value store based on Valkey that functions as a hierarchical storage engine. It combines a… 256dpi/arduino-mqtt — This library is an Arduino-compatible client for the messaging protocol designed for resource-constrained embedded… project-chip/connectedhomeip — This project is an open-source software development kit and framework for implementing the Matter smart home standard.… nathanlopez/stitch — Stitch is a command and control framework and post-exploitation toolkit designed for managing multiple remote systems…

Open-source alternatives to Open62541

Similar open-source projects, ranked by how many features they share with Open62541.
  • ravendb/ravendbravendb avatar

    ravendb/ravendb

    3,961View on GitHub↗

    RavenDB is a multi-model NoSQL document database designed for high-performance, ACID-compliant data storage. It persists structured information as schema-flexible JSON documents and utilizes a unit-of-work session pattern to track entity changes and batch modifications into atomic transactions. The platform is built on a distributed architecture that supports horizontal scaling through sharding and ensures high availability via multi-node, master-to-master cluster replication. The database distinguishes itself through a self-optimizing query engine that automatically creates and maintains ind

    C#csharpdatabasedocument-database
    View on GitHub↗3,961
  • libp2p/libp2plibp2p avatar

    libp2p/libp2p

    2,940View on GitHub↗

    libp2p is a modular peer-to-peer networking stack designed for building decentralized applications. It provides the core infrastructure necessary for nodes to discover and connect with other participants across a network without relying on central servers. The project distinguishes itself through a flexible transport layer that abstracts multiple protocols, including TCP, QUIC, WebSockets, and WebTransport, into a single interface. It features specialized tools for NAT and firewall traversal, such as hole punching and relay nodes, to establish direct connections between peers and web browsers

    View on GitHub↗2,940
  • dicedb/diceDiceDB avatar

    DiceDB/dice

    10,760View on GitHub↗

    Dice is a low-latency key-value store based on Valkey that functions as a hierarchical storage engine. It combines a high-speed memory store with a tiered cache system to manage data across multiple storage levels. The system extends memory capacity by implementing a disk-backed cache that automatically persists evicted items to disk and restores them during cache misses. This storage tiering balances retrieval speed and operational cost by distributing data between fast memory and slower disk storage. The engine includes a query subscription service that monitors specific data patterns and

    C
    View on GitHub↗10,760
  • 256dpi/arduino-mqtt256dpi avatar

    256dpi/arduino-mqtt

    1,093View on GitHub↗

    This library is an Arduino-compatible client for the messaging protocol designed for resource-constrained embedded systems. It provides a messaging interface that enables microcontrollers to establish persistent connections with brokers to exchange data and control signals. The library distinguishes itself through a focus on predictable resource usage, utilizing manual memory buffer management and a state-machine approach to handle connection persistence and automatic reconnections. It operates on a stream-oriented network abstraction, allowing it to interface with various hardware transport

    Carduinoiotmqtt
    View on GitHub↗1,093
See all 30 alternatives to Open62541→