Expand description

The OPC UA Server module contains the server side functionality - address space, services, server security, session management, local discovery server registration and subscriptions.


An implementation will usually start by building a ServerConfig, either from a configuration file, or through code. Then it will construct a Server, initialise its address space, and then run it.


This is a very simple server which runs with the default address space on the default port.

use opcua_server::prelude::*;

fn main() {
    let server: Server = ServerBuilder::new_sample().server().unwrap();


Provides functionality to create an address space, find nodes, add nodes, change attributes and values on nodes.

Callbacks that a server implementation may register with the library

Provides communication services for the server such as the transport layer and secure channel implementation

Provides configuration settings for the server including serialization and deserialization from file.

Provides constants that govern the internal workings of the server implementation.

Provides a browse continuation point type for tracking a browse operation initiated by a client.

Provides diagnostics structures and functions for gathering information about the running state of a server.

Provides debug metric of server state that can be used by anything that wants to see what is happening in the server. State is updated by the server as sessions are added, removed, and when subscriptions / monitored items are added, removed.

Provides a way to use most types and functions commonly used by server implementations from a single use statement.

Provides the Server type and functionality related to it.

Provides server state information, such as status, configuration, running servers and so on.

Provides utility routines for things that might be used in a number of places elsewhere.