Releases: HMIProject/open62541
Releases · HMIProject/open62541
v0.7.0
Added
- Add type
PrivateKey
to wrap private keys when using Mbed TLS. - Add types
ua::SecurityLevel
,ua::EndpointDescription
,ua::MessageSecurityMode
. - Add method
ClientBuilder::get_endpoints()
to get remote server endpoints. - Add method
ClientBuilder::certificate_verification()
and typeua::CertificateVerification
. - Add method
ua::CertificateVerification::custom()
and traitCustomCertificateVerification
to allow custom certificate verification.
Changed
- Breaking: Bump Minimum Supported Rust Version (MSRV) to 1.80.
- Breaking: Change type
Certificate
to hold certificate without private key. - Breaking: Use new types
Certificate
andPrivateKey
instead of raw&[u8]
inClientBuilder::default_encryption()
,ServerBuilder::default_with_security_policies()
, andServerBuilder::default_with_secure_security_policies()
.
v0.6.6
v0.6.5
Added
- Add ability to create SSL certificates using Mbed TLS with
create_certificate()
. - Allow converting
ua::String
intoua::ByteString
with methodua::String::into_byte_string()
. - Add type
ua::KeyValueMap
. - Add method
ua::QualifiedName::ns0()
for creating qualified names in namespace 0.
Changed
- Upgrade to open62541 version 1.4.8.
v0.6.4
[0.6.4] - 2024-11-23
Added
- Add feature flag
mbedtls
to build with encryption support by using bundled Mbed TLS version 3.6.2. - Add method for client encryption by using
ClientBuilder::default_encryption()
. - Add methods for server encryption by using
ServerBuilder::default_with_security_policies()
,ServerBuilder::default_with_secure_security_policies()
. - Add
ClientBuilder::accept_all()
andServerBuilder::accept_all()
to skip certificate checks. - Add method
ServerRunner::run_until_cancelled()
to allow gracefully shutting down server (#169). - Add method
ServerRunner::access_control()
and related traitAccessControl
with implementationDefaultAccessControl
andDefaultAccessControlWithLoginCallback
to allow custom authentication and authorization of clients in the server. - Add method
ua::ByteString::new()
to create new OPC UA byte strings.
Changed
v0.6.3
v0.6.2
v0.6.1
v0.6.0
Added
- Add support for creating OPC UA server (#89), including callback-driven variable nodes, adding and removing nodes from the server namespace, querying the server namespace, adding and removing references, reading and writing object properties, creating and triggering events, browsing the server namespace, reading attributes, implementing callback-driven method nodes.
- Add
ua::StatusCode::is_uncertain()
,is_bad()
for checking status code severity (#63). - Add
ua::StatusCode::name()
to get human-readable representation of status code (#93). - Add support for
ua::Argument
data type and basic support forua::ExtensionObject
(#71). - Add
Debug
implementation forua::Array<T>
data types. - Add
ValueType
enum to checkua::Variant
without unwrapping (alsoua::Argument
). - Add tracing log messages when processing service requests and responses (#80).
- Add methods to
ClientBuilder
to set response timeout, client description, and connectivity check interval (#81). - Add logical OR combinator for
ua::BrowseResultMask
andua::NodeClassMask
. - Add const
ua::NodeClassMask
variants to initialize masks. - Add
serde
serialization forua::Array
andua::Variant
with array value. - Add constructors
ua::Variant::scalar()
andua::Variant::array()
. - Add constructor
ua::DataValue::new()
. - Add helper method
ua::Array::into_array()
for conversion into native Rust array. - Add known enum variants to
ua::StatusCode
. - Add method
ua::ExpandedNodeId::numeric()
to create numeric expanded node IDs. - Add types
ua::RelativePath
,ua::RelativePathElement
,ua::BrowsePath
,ua::BrowsePathResult
,ua::BrowsePathTarget
. - Add
ua::NodeAttributes
and subtypesua::ObjectAttributes
,ua::VariableAttributes
,ua::MethodAttributes
,ua::ObjectTypeAttributes
,ua::VariableTypeAttributes
,ua::ReferenceTypeAttributes
,ua::DataTypeAttributes
,ua::ViewAttributes
. - Add method
Error::status_code()
to get original OPC UA status code that caused the error. - Add method
ua::NodeId::into_expanded_node_id()
. - Implement
Index
andIndexMut
forua::Array
to allow direct element access. - Add methods to
ua::DataValue
to get source/server timestamps.
Changed
- Breaking: Return
Result
instead ofOption
for references inAsyncClient::browse_many()
andbrowse_next()
(#59, #60). - Breaking: Return
Result
wrappingua::DataValue
fromAsyncClient::read_attributes()
(#61). - Breaking: Move
ua::VariantValue
andua::ScalarValue
to top-level export outsideua
. - Breaking: Remove
ua::ArrayValue
for now (until we have a better interface). - Breaking: Return output arguments without
Option
fromAsyncClient::call_method()
(#79). - Breaking: Remove misleading
FromStr
trait implementation and offerua::String::new()
instead. - Breaking: Upgrade to open62541 version 1.4.4 (#82). This affects the API of this crate as follows:
- Automatically unwrap
ua::ExtensionObject
arrays insideua::Variant
.
- Automatically unwrap
- Breaking: Remove
cycle_time
parameter fromAsyncClient
's interface (#91). The relevance of this parameter has been reduced by the upgrade to open62541 version 1.4. - Breaking: Remove associated functions for enum data types deprecated in 0.5.0, e.g.
ua::AttributedId::value()
. Use uppercase constantsua::AttributedId::VALUE
instead. - Breaking: Split
Server::new()
andServerBuilder::build()
result type intoServer
andServerRunner
to allow interacting with server's data tree while server is running. - Coerce empty arrays of
ua::ExtensionObject
into the requested data type. This mirrors the auto-unwrapping behavior of open62541 version 1.4. - Include appropriate trait bounds in return type of
AsyncMonitoredItem::into_stream()
. - Breaking: Add prefix
with_
inua::BrowseNextRequest::with_release_continuation_points()
. - Breaking: Change signatures of
AsyncClient::browse()
andAsyncClient::browse_many()
to acceptua::BrowseDescription
instead ofua::NodeId
for better control over the resulting references. - Breaking: Return typed variant
DataValue
instead ofua::DataValue
fromAsyncClient
read operations.
Fixed
- Return browsing error instead of empty references list from
AsyncClient::browse()
(#60). - Return reading error instead of unset
ua::DataValue
fromAsyncClient::read_value()
andread_attribute()
(#61). - Check only severity in
ua::StatusCode::is_good()
(#63). Previously this would be an exact comparison toua::StatusCode::GOOD
. - No longer panic when unwrapping
ua::Variant
with array value. - Treat invalid references array as empty in
ua::BrowseResult
on successful request (#77). - Handle graceful disconnection when dropping synchronous
Client
. - Include subscription ID in request when deleting monitored items (#93).
- Avoid memory leak when calling
ua::Variant::with_scalar()
multiple times on the same value.
v0.6.0-pre.6
Added
- Allow defining callback-driven variable nodes with
Server::add_data_source_variable_node()
. - Allow deletion of server nodes with
Server::delete_node()
. - Add known enum variants to
ua::StatusCode
. - Add method
ua::ExpandedNodeId::numeric()
to create numeric expanded node IDs. - Add types
ua::RelativePath
,ua::RelativePathElement
,ua::BrowsePath
,ua::BrowsePathResult
,ua::BrowsePathTarget
. - Add
ua::NodeAttributes
and subtypesua::ObjectAttributes
,ua::VariableAttributes
,ua::MethodAttributes
,ua::ObjectTypeAttributes
,ua::VariableTypeAttributes
,ua::ReferenceTypeAttributes
,ua::DataTypeAttributes
,ua::ViewAttributes
. - Add generic way of adding nodes with
Server::add_node()
and associatedNode
type. - Add methods
Server::add_namespace()
,Server::get_namespace_by_name()
, andServer::get_namespace_by_index()
. - Add methods
Server::add_reference()
andServer::delete_reference()
. - Add method
Error::status_code()
to get original OPC UA status code that caused the error. - Add method
ua::NodeId::into_expanded_node_id()
. - Add method
Server::translate_browse_path_to_node_ids()
. - Implement
Index
andIndexMut
forua::Array
to allow direct element access. - Add methods
Server::write_object_property()
andServer::read_object_property()
. - Add methods
Server::create_event()
andServer::trigger_event()
. - Add methods
Server::browse()
,Server::browse_next()
,Server::browse_recursive()
, andServer::browse_simplified_browse_path()
. - Add method
Server::read_attribute()
to read node attributes in a type-safe way. - Add methods to
ua::DataValue
to get source/server timestamps. - Add method
Server::add_method_node()
, and accompanyingMethodCallback
trait, to implement method nodes.
Changed
- Include appropriate trait bounds in return type of
AsyncMonitoredItem::into_stream()
. - Breaking: Add prefix
with_
inua::BrowseNextRequest::with_release_continuation_points()
. - Upgrade to open62541 version 1.4.4.
- Breaking: Change signatures of
AsyncClient::browse()
andAsyncClient::browse_many()
to acceptua::BrowseDescription
instead ofua::NodeId
for better control over the resulting references. - Breaking: Return typed variant
DataValue
instead ofua::DataValue
fromAsyncClient
read operations. - Breaking: Adjust signatures of
Server::add_object_node()
andServer::add_variable_node()
to match the new methods, returning the inserted node IDs. - Breaking: Rename
Server::write_variable()
toServer::write_value()
to better match client interface. - Breaking: Remove special-cased helper method
Server::write_variable_string()
.
v0.6.0-pre.5
Changed
- Upgrade to open62541 version 1.4.1. This removes the workaround introduced in 0.6.0-pre.3, it is no longer necessary.