All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Upgrade to open62541 version 1.4.7.
- Respect fill/alignment formatting parameters when printing
ua::String
(#166).
0.6.3 - 2024-10-14
- Upgrade to open62541 version 1.4.6.
0.6.2 - 2024-09-27
- Implement relations
PartialEq
,Eq
,PartialOrd
,Ord
forua::Array
type. - Add
ua::NodeId::namespace_index()
to get node ID's namespace index.
0.6.1 - 2024-09-04
- Add method
ClientBuilder::user_identity_token()
and associated types to set user identity token.
0.6.0 - 2024-08-20
- 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.
- 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.
- 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.
0.6.0-pre.6 - 2024-08-20
- 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.
- 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()
.
0.6.0-pre.5 - 2024-05-31
- Upgrade to open62541 version 1.4.1. This removes the workaround introduced in 0.6.0-pre.3, it is no longer necessary.
0.6.0-pre.4 - 2024-05-22
- Coerce empty arrays of
ua::ExtensionObject
into the requested data type. This mirrors the auto-unwrapping behavior of open62541 version 1.4.
0.6.0-pre.3 - 2024-05-18
- 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.
- 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. - Upgrade to open62541 version 1.4.0.
- Reintroduce internal mutex in
AsyncClient
to work around issue in open62541 version 1.4.
- Avoid memory leak when calling
ua::Variant::with_scalar()
multiple times on the same value.
0.6.0-pre.2 - 2024-04-12
- Add basic support for creating OPC UA server with static nodes (#89).
0.6.0-pre.1 - 2024-04-05
- 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).
- 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 (#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.
- 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).
0.5.0 - 2024-03-01
- Allow reading node attributes with
AsyncClient::read_attribute()
andread_attributes()
. - Allow continuing browsing from continuation points with
AsyncClient::browse_next()
.
- Provide uppercase variants for enum data types, e.g.
ua::AttributedId::VALUE
. This deprecates the associated functions such asua::AttributedId::value()
formerly used for this purpose. - Breaking: Return continuation points from
AsyncClient::browse()
andbrowse_many()
(when not all references were returned, to be used withAsyncClient::browse_next()
). - Breaking: Simplify argument type
node_ids: &[impl Borrow<ua::NodeId>]
to&[ua::NodeId]
inAsyncClient::browse_many()
. - Rename
ua::String::as_slice()
toas_bytes()
. Deprecate the former method.
0.4.0 - 2024-02-12
- Fallible conversion from
time::OffsetDateTime
toua::DateTime
.
- Breaking: Renamed
ua::DateTime::as_datetime()
toua::DateTime::to_utc()
. - Use RFC 3339 variant of ISO 8601 for
ua::DateTime
serialization.
0.3.0 - 2024-01-23
- Allow setting secure channel lifetime and requested session timeout in
ClientBuilder
. - Allow fetching current client state to periodically check for disconnect.
- Breaking: Remove default
Display
implementation for mostua
wrapper types (using theDebug
implementation is more appropriate in these cases).
- Fix handling of empty and invalid strings.
- Include values in log messages (#22).
0.2.2 - 2024-01-12
- Fix typo in README file and changelog.
0.2.1 - 2024-01-12
- First public release.