Skip to content

Commit ceeebaf

Browse files
committed
Prepare for release of 0.17.0
1 parent 8f43be9 commit ceeebaf

File tree

20 files changed

+111
-67
lines changed

20 files changed

+111
-67
lines changed

CHANGELOG.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,52 @@
11
# Changelog
22

3+
## [0.17.0] - 2025-12-04
4+
5+
A number of important fixes, some affecting the core protocol. Improvements to codegen, support for reverse connect, and a few other features.
6+
7+
### Common
8+
9+
#### Fixed
10+
- Treat empty remote certificate as missing during channel establishment.
11+
- Treat empty as null in a few more cases. Some misbehaving clients or servers send empty values instead of null values, but we can treat them the same in a few cases.
12+
13+
#### Added
14+
- Add fallback type loader, enabled by default. This captures `ExtensionObject` payloads without a matching type loader.
15+
- Added `NodeIdRef` and use this in a few places that accept `NodeId`s. This lets you pass, for example, `(1, "hello")` as a node ID, instead of needing to construct an owned copy.
16+
- Add support for OPC-UA reverse connect.
17+
- Add support for environment variable expansion in config files.
18+
- Added a `ValueRank` type, which is convenient in both client and server applications.
19+
20+
### Client
21+
22+
#### Fixed
23+
- Fixed nonces created as part of CreateSession, which fixes support for SHA128 legacy encryption.
24+
- Correctly use `max_chunk_count` from config in the connection.
25+
- Fixed issue that caused a race condition during secure channel renewal.
26+
27+
#### Changed
28+
- Certain errors from the subscription event loop are now forwarded to the main event loop, meaning that subscriptions can act as a keep alive in some cases.
29+
30+
### Server
31+
32+
#### Fixed
33+
- Fixed issue causing the available sequence numbers sent to the client to not include the sequence number of the publish itself.
34+
35+
#### Added
36+
- Add support for OPC-UA reverse connect.
37+
38+
#### Changed
39+
- Delay notifications that arrived too early, to emulate actually sampling the data. This avoids losing information if values are reported irregularly.
40+
41+
### Codegen
42+
43+
#### Added
44+
- Correctly set `DefaultEncodingId` in nodeset code generation.
45+
- Add support for dependent nodesets during types codegen.
46+
47+
#### Removed
48+
- Removed unused functionality to load `documentation.csv` files as part of nodeset codegen.
49+
350
## [0.16.0] - 2025-06-11
451

552
Various fixes and adjustments. Support for `IssuedToken` authentication and `OfType` event filters.

Cargo.lock

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ minimal client and server programs respectively.
6262

6363
```bash
6464
# In one bash
65-
cd opcua/samples/simple-server
65+
cd samples/simple-server
6666
cargo run
6767
# In another bash
68-
cd opcua/samples/simple-client
68+
cd samples/simple-client
6969
cargo run
7070
```
7171

@@ -79,3 +79,5 @@ The full list of samples:
7979
6. [`mqtt-client`](samples/mqtt-client) - an OPC UA client that subscribes to some values and publishes them to an MQTT broker.
8080
7. [`event-client`](samples/event-client) - an OPC UA client that will connect to a server and subscribe to alarms / events.
8181
8. [`node-managers`](samples/node-managers) - an OPC UA server exposing a simple simulated namespace using two custom node managers.
82+
9. [`custom-codegen`](samples/custom-codegen) - an OPC UA server that runs codegen on a companion standard and exposes custom types and a custom namespace.
83+
10. [`custom-structures-client`](samples/custom-structures-client) - an OPC UA client that connects to a server with a few different approaches for supporting custom structures.

async-opcua-client/Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "async-opcua-client"
3-
version = "0.16.0"
3+
version = "0.17.0"
44
description = "OPC UA client API"
55
authors = ["Adam Lock <[email protected]>", "Einar Omang <[email protected]>"]
66
homepage = "https://github.com/freeopcua/async-opcua"
@@ -31,7 +31,7 @@ tokio = { workspace = true }
3131
tokio-util = { workspace = true }
3232
tracing = { workspace = true }
3333

34-
async-opcua-core = { path = "../async-opcua-core", version = "0.16.0" }
35-
async-opcua-crypto = { path = "../async-opcua-crypto", version = "0.16.0" }
36-
async-opcua-nodes = { path = "../async-opcua-nodes", version = "0.16.0" }
37-
async-opcua-types = { path = "../async-opcua-types", version = "0.16.0" }
34+
async-opcua-core = { path = "../async-opcua-core", version = "0.17.0" }
35+
async-opcua-crypto = { path = "../async-opcua-crypto", version = "0.17.0" }
36+
async-opcua-nodes = { path = "../async-opcua-nodes", version = "0.17.0" }
37+
async-opcua-types = { path = "../async-opcua-types", version = "0.17.0" }

async-opcua-codegen/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ thiserror = "1.0.63"
3333
tracing = { workspace = true }
3434
uuid = "1.10.0"
3535

36-
async-opcua-xml = { path = "../async-opcua-xml", version = "0.16.0" }
36+
async-opcua-xml = { path = "../async-opcua-xml", version = "0.17.0" }

async-opcua-core-namespace/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "async-opcua-core-namespace"
3-
version = "0.16.0"
3+
version = "0.17.0"
44
description = "OPC UA generated code for the core namespace"
55
authors = ["Adam Lock <[email protected]>", "Einar Omang <[email protected]>"]
66
homepage = "https://github.com/freeopcua/async-opcua"
@@ -16,5 +16,5 @@ edition = "2021"
1616
name = "opcua_core_namespace"
1717

1818
[dependencies]
19-
async-opcua-types = { path = "../async-opcua-types", version = "0.16.0" }
20-
async-opcua-nodes = { path = "../async-opcua-nodes", version = "0.16.0" }
19+
async-opcua-types = { path = "../async-opcua-types", version = "0.17.0" }
20+
async-opcua-nodes = { path = "../async-opcua-nodes", version = "0.17.0" }

async-opcua-core/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "async-opcua-core"
3-
version = "0.16.0"
3+
version = "0.17.0"
44
description = "OPC UA core utils for client and server"
55
authors = ["Adam Lock <[email protected]>", "Einar Omang <[email protected]>"]
66
homepage = "https://github.com/freeopcua/async-opcua"
@@ -28,8 +28,8 @@ tokio-util = { workspace = true }
2828
tracing = { workspace = true }
2929
url = { workspace = true }
3030

31-
async-opcua-crypto = { path = "../async-opcua-crypto", version = "0.16.0" }
32-
async-opcua-types = { path = "../async-opcua-types", version = "0.16.0" }
31+
async-opcua-crypto = { path = "../async-opcua-crypto", version = "0.17.0" }
32+
async-opcua-types = { path = "../async-opcua-types", version = "0.17.0" }
3333

3434
[dev-dependencies]
3535
tempfile = { version = "^3" }
@@ -38,4 +38,4 @@ tempfile = { version = "^3" }
3838
workspace = true
3939

4040
[features]
41-
env_expansion = ["dep:shellexpand"]
41+
env_expansion = ["dep:shellexpand"]

async-opcua-crypto/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "async-opcua-crypto"
3-
version = "0.16.0"
3+
version = "0.17.0"
44
description = "OPC UA cryptography library"
55
authors = ["Adam Lock <[email protected]>", "Einar Omang <[email protected]>"]
66
homepage = "https://github.com/freeopcua/async-opcua"
@@ -25,7 +25,7 @@ num-bigint-dig = { workspace = true }
2525
serde = { workspace = true }
2626
tracing = { workspace = true }
2727

28-
async-opcua-types = { path = "../async-opcua-types", version = "0.16.0" }
28+
async-opcua-types = { path = "../async-opcua-types", version = "0.17.0" }
2929

3030
aes = { workspace = true }
3131
cbc = { workspace = true }

async-opcua-macros/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "async-opcua-macros"
3-
version = "0.16.0"
3+
version = "0.17.0"
44
description = "OPC UA support proc macros"
55
authors = ["Einar Omang <[email protected]>"]
66
homepage = "https://github.com/freeopcua/async-opcua"

async-opcua-nodes/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "async-opcua-nodes"
3-
version = "0.16.0"
3+
version = "0.17.0"
44
description = "OPC UA node representation and import framework"
55
authors = ["Adam Lock <[email protected]>", "Einar Omang <[email protected]>"]
66
homepage = "https://github.com/freeopcua/async-opcua"
@@ -28,9 +28,9 @@ tracing = { workspace = true }
2828
regex = { workspace = true }
2929
thiserror = { workspace = true }
3030

31-
async-opcua-macros = { path = "../async-opcua-macros", version = "0.16.0" }
32-
async-opcua-types = { path = "../async-opcua-types", version = "0.16.0" }
33-
async-opcua-xml = { path = "../async-opcua-xml", optional = true, version = "0.16.0" }
31+
async-opcua-macros = { path = "../async-opcua-macros", version = "0.17.0" }
32+
async-opcua-types = { path = "../async-opcua-types", version = "0.17.0" }
33+
async-opcua-xml = { path = "../async-opcua-xml", optional = true, version = "0.17.0" }
3434

3535
[dev-dependencies]
3636
async-opcua-nodes = { path = ".", features = ["xml"] }

0 commit comments

Comments
 (0)