Skip to content

Releases: HMIProject/open62541

v0.7.0

13 Dec 14:28
Compare
Choose a tag to compare

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 type ua::CertificateVerification.
  • Add method ua::CertificateVerification::custom() and trait CustomCertificateVerification 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 and PrivateKey instead of raw &[u8] in ClientBuilder::default_encryption(), ServerBuilder::default_with_security_policies(), and ServerBuilder::default_with_secure_security_policies().

v0.6.6

13 Dec 14:28
Compare
Choose a tag to compare

Added

  • Implement Send and Sync for ua::Array and ua::KeyValueMap.

v0.6.5

04 Dec 12:16
Compare
Choose a tag to compare

Added

  • Add ability to create SSL certificates using Mbed TLS with create_certificate().
  • Allow converting ua::String into ua::ByteString with method ua::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

23 Nov 13:08
Compare
Choose a tag to compare

[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() and ServerBuilder::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 trait AccessControl with implementation DefaultAccessControl and DefaultAccessControlWithLoginCallback to allow custom authentication and authorization of clients in the server.
  • Add method ua::ByteString::new() to create new OPC UA byte strings.

Changed

  • Upgrade to open62541 version 1.4.7.
  • Respect fill/alignment formatting parameters when printing ua::String (#166), as well as types ua::NodeId, ua::QualifiedName, ua::StatusCode (#167).

v0.6.3

14 Oct 14:34
Compare
Choose a tag to compare

Changed

  • Upgrade to open62541 version 1.4.6.

v0.6.2

27 Sep 10:51
Compare
Choose a tag to compare

Added

  • Implement relations PartialEq, Eq, PartialOrd, Ord for ua::Array type.
  • Add ua::NodeId::namespace_index() to get node ID's namespace index.

v0.6.1

04 Sep 13:29
Compare
Choose a tag to compare

Added

  • Add method ClientBuilder::user_identity_token() and associated types to set user identity token.

v0.6.0

20 Aug 12:47
Compare
Choose a tag to compare

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 for ua::ExtensionObject (#71).
  • Add Debug implementation for ua::Array<T> data types.
  • Add ValueType enum to check ua::Variant without unwrapping (also ua::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 and ua::NodeClassMask.
  • Add const ua::NodeClassMask variants to initialize masks.
  • Add serde serialization for ua::Array and ua::Variant with array value.
  • Add constructors ua::Variant::scalar() and ua::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 subtypes ua::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 and IndexMut for ua::Array to allow direct element access.
  • Add methods to ua::DataValue to get source/server timestamps.

Changed

  • Breaking: Return Result instead of Option for references in AsyncClient::browse_many() and browse_next() (#59, #60).
  • Breaking: Return Result wrapping ua::DataValue from AsyncClient::read_attributes() (#61).
  • Breaking: Move ua::VariantValue and ua::ScalarValue to top-level export outside ua.
  • Breaking: Remove ua::ArrayValue for now (until we have a better interface).
  • Breaking: Return output arguments without Option from AsyncClient::call_method() (#79).
  • Breaking: Remove misleading FromStr trait implementation and offer ua::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 inside ua::Variant.
  • Breaking: Remove cycle_time parameter from AsyncClient'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 constants ua::AttributedId::VALUE instead.
  • Breaking: Split Server::new() and ServerBuilder::build() result type into Server and ServerRunner 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_ in ua::BrowseNextRequest::with_release_continuation_points().
  • Breaking: Change signatures of AsyncClient::browse() and AsyncClient::browse_many() to accept ua::BrowseDescription instead of ua::NodeId for better control over the resulting references.
  • Breaking: Return typed variant DataValue instead of ua::DataValue from AsyncClient read operations.

Fixed

  • Return browsing error instead of empty references list from AsyncClient::browse() (#60).
  • Return reading error instead of unset ua::DataValue from AsyncClient::read_value() and read_attribute() (#61).
  • Check only severity in ua::StatusCode::is_good() (#63). Previously this would be an exact comparison to ua::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

20 Aug 12:21
Compare
Choose a tag to compare
v0.6.0-pre.6 Pre-release
Pre-release

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 subtypes ua::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 associated Node type.
  • Add methods Server::add_namespace(), Server::get_namespace_by_name(), and Server::get_namespace_by_index().
  • Add methods Server::add_reference() and Server::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 and IndexMut for ua::Array to allow direct element access.
  • Add methods Server::write_object_property() and Server::read_object_property().
  • Add methods Server::create_event() and Server::trigger_event().
  • Add methods Server::browse(), Server::browse_next(), Server::browse_recursive(), and Server::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 accompanying MethodCallback trait, to implement method nodes.

Changed

  • Include appropriate trait bounds in return type of AsyncMonitoredItem::into_stream().
  • Breaking: Add prefix with_ in ua::BrowseNextRequest::with_release_continuation_points().
  • Upgrade to open62541 version 1.4.4.
  • Breaking: Change signatures of AsyncClient::browse() and AsyncClient::browse_many() to accept ua::BrowseDescription instead of ua::NodeId for better control over the resulting references.
  • Breaking: Return typed variant DataValue instead of ua::DataValue from AsyncClient read operations.
  • Breaking: Adjust signatures of Server::add_object_node() and Server::add_variable_node() to match the new methods, returning the inserted node IDs.
  • Breaking: Rename Server::write_variable() to Server::write_value() to better match client interface.
  • Breaking: Remove special-cased helper method Server::write_variable_string().

v0.6.0-pre.5

31 May 07:47
Compare
Choose a tag to compare
v0.6.0-pre.5 Pre-release
Pre-release

Changed

  • Upgrade to open62541 version 1.4.1. This removes the workaround introduced in 0.6.0-pre.3, it is no longer necessary.