Cargo Features

[dependencies]
opcua = { version = "0.12.0", default-features = false, features = ["all", "test-vendored-openssl", "server", "client", "console-logging", "generated-address-space", "discovery-server-registration", "vendored-openssl", "http", "rumqttc"] }
default = client, server

These default features are set whenever opcua is added without default-features = false somewhere in the dependency tree.

all test-vendored-openssl? = client, console-logging, http, server
test-vendored-openssl = all, vendored-openssl

This is for CI/CD testing on platforms with unresolved OpenSSL deps, don't use otherwise.

server default all? = discovery-server-registration, generated-address-space

Server default settings

Affects opcua::server

client default all? discovery-server-registration?

Client default settings

Affects opcua::client

console-logging all? = env_logger

Console logging just installs a logger that writes out to the screen, useful for general logging

Affects opcua::console_logging

generated-address-space server

Includes all the code to populate the address space with the default node set. This is something that embedded systems may or may not require.

discovery-server-registration server = client

Allows a server to register itself with a local discovery server. It does so by becoming a client to the LDS,
which brings in a dependency to opcua-client. Omitting the feature saves some memory.

vendored-openssl test-vendored-openssl?

OpenSSL can be compiled and statically linked to with this feature

Enables vendored of openssl

http all? = actix-files, actix-web

Servers might want to show a web server with metric / diagnostic info

Affects server::http

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

rumqttc implicit feature

Enables rumqttc ^0.23

rumqttc:

An efficient and robust mqtt client for your connected devices

actix-files http?
actix-web http?
env_logger console-logging?

Enables env_logger ^0.10