diff --git a/CHANGELOG.md b/CHANGELOG.md index 7985744b..4162dcee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ -### 1.5.0 ### +### 1.5.0-RC2 ### +* :star: Add non-spawning `create_tcp_client_task_with_options()`, `create_tls_client_task_with_options()`, and `create_rtu_client_task()` that return a `ClientTask` for the caller to spawn, enabling custom task instrumentation. See [#180](https://github.com/stepfunc/rodbus/pull/180). * :lock: Update `rustls-webpki` to 0.103.13 to resolve [RUSTSEC-2026-0098](https://rustsec.org/advisories/RUSTSEC-2026-0098.html), [RUSTSEC-2026-0099](https://rustsec.org/advisories/RUSTSEC-2026-0099.html), and [RUSTSEC-2026-0104](https://rustsec.org/advisories/RUSTSEC-2026-0104.html). The two name-constraint advisories (0098, 0099) are theoretically reachable during TLS handshake but require certificate misissuance to exploit; the CRL panic (0104) is unreachable as Rodbus does not use CRLs. - -### 1.5.0-RC1 ### +* :star: TCP client performance optimizations: ~33% fewer heap allocations and ~3.4% fewer instructions per request, including an iterative MBAP parser and `ExactSizeIterator` impls for the response iterators. See [#177](https://github.com/stepfunc/rodbus/pull/177). +* :bug: Fix a `ReadBuffer` shift condition that, in a rare buffer-full edge case, caused a spurious disconnect (no data corruption). See [#177](https://github.com/stepfunc/rodbus/pull/177). * :star: Add configurable limit on consecutive client response timeouts. See [#166](https://github.com/stepfunc/rodbus/pull/166). * :wrench: Use aws-lc-rs crypto provider for TLS on most platforms. See [#164](https://github.com/stepfunc/rodbus/pull/164). * :wrench: Tunable connection logging to reduce verbosity during disrupted communication. See [#163](https://github.com/stepfunc/rodbus/pull/163). diff --git a/Cargo.lock b/Cargo.lock index 836f29a0..18702fce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -404,7 +404,7 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "example-client" -version = "1.5.0-RC1" +version = "1.5.0-RC2" dependencies = [ "rodbus", "tokio", @@ -416,7 +416,7 @@ dependencies = [ [[package]] name = "example-perf" -version = "1.5.0-RC1" +version = "1.5.0-RC2" dependencies = [ "clap", "rodbus", @@ -427,7 +427,7 @@ dependencies = [ [[package]] name = "example-server" -version = "1.5.0-RC1" +version = "1.5.0-RC2" dependencies = [ "rodbus", "tokio", @@ -633,7 +633,7 @@ dependencies = [ [[package]] name = "integration" -version = "1.5.0-RC1" +version = "1.5.0-RC2" dependencies = [ "rodbus", "tokio", @@ -1025,7 +1025,7 @@ dependencies = [ [[package]] name = "rodbus" -version = "1.5.0-RC1" +version = "1.5.0-RC2" dependencies = [ "crc", "rx509", @@ -1042,7 +1042,7 @@ dependencies = [ [[package]] name = "rodbus-bindings" -version = "1.5.0-RC1" +version = "1.5.0-RC2" dependencies = [ "oo-bindgen", "rodbus-schema", @@ -1052,7 +1052,7 @@ dependencies = [ [[package]] name = "rodbus-client" -version = "1.5.0-RC1" +version = "1.5.0-RC2" dependencies = [ "clap", "rodbus", @@ -1064,7 +1064,7 @@ dependencies = [ [[package]] name = "rodbus-ffi" -version = "1.5.0-RC1" +version = "1.5.0-RC2" dependencies = [ "lazy_static", "num_cpus", @@ -1082,7 +1082,7 @@ dependencies = [ [[package]] name = "rodbus-ffi-java" -version = "1.5.0-RC1" +version = "1.5.0-RC2" dependencies = [ "jni", "oo-bindgen", @@ -1092,7 +1092,7 @@ dependencies = [ [[package]] name = "rodbus-schema" -version = "1.5.0-RC1" +version = "1.5.0-RC2" dependencies = [ "oo-bindgen", "sfio-tokio-ffi", diff --git a/examples/client/Cargo.toml b/examples/client/Cargo.toml index a51fe647..391cb54a 100644 --- a/examples/client/Cargo.toml +++ b/examples/client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "example-client" -version = "1.5.0-RC1" +version = "1.5.0-RC2" # inherit from workspace authors.workspace = true diff --git a/examples/perf/Cargo.toml b/examples/perf/Cargo.toml index 9f8c7b8a..174b0f01 100644 --- a/examples/perf/Cargo.toml +++ b/examples/perf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "example-perf" -version = "1.5.0-RC1" +version = "1.5.0-RC2" # inherit from workspace authors.workspace = true diff --git a/examples/server/Cargo.toml b/examples/server/Cargo.toml index 6acf364d..76142a87 100644 --- a/examples/server/Cargo.toml +++ b/examples/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "example-server" -version = "1.5.0-RC1" +version = "1.5.0-RC2" # inherit from workspace authors.workspace = true diff --git a/ffi/bindings/c/CMakeLists.txt b/ffi/bindings/c/CMakeLists.txt index f9aa22d1..f013b1bc 100644 --- a/ffi/bindings/c/CMakeLists.txt +++ b/ffi/bindings/c/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.12) project(rodbus_c LANGUAGES C CXX) -set(RODBUS_BACKUP_VERSION "1.5.0-RC1") +set(RODBUS_BACKUP_VERSION "1.5.0-RC2") # Determine the architecture if(WIN32 AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64" AND CMAKE_SIZEOF_VOID_P EQUAL 8) diff --git a/ffi/bindings/dotnet/examples/client/client.csproj b/ffi/bindings/dotnet/examples/client/client.csproj index a1d6d0d7..03e7e1b3 100644 --- a/ffi/bindings/dotnet/examples/client/client.csproj +++ b/ffi/bindings/dotnet/examples/client/client.csproj @@ -14,7 +14,7 @@ - + diff --git a/ffi/bindings/dotnet/examples/server/server.csproj b/ffi/bindings/dotnet/examples/server/server.csproj index a1d6d0d7..03e7e1b3 100644 --- a/ffi/bindings/dotnet/examples/server/server.csproj +++ b/ffi/bindings/dotnet/examples/server/server.csproj @@ -14,7 +14,7 @@ - + diff --git a/ffi/bindings/java/examples/pom.xml b/ffi/bindings/java/examples/pom.xml index 49442b13..f304ad18 100644 --- a/ffi/bindings/java/examples/pom.xml +++ b/ffi/bindings/java/examples/pom.xml @@ -16,7 +16,7 @@ io.stepfunc rodbus - 1.5.0-RC1 + 1.5.0-RC2 diff --git a/ffi/bindings/java/rodbus-tests/pom.xml b/ffi/bindings/java/rodbus-tests/pom.xml index ba72f65c..0f743780 100644 --- a/ffi/bindings/java/rodbus-tests/pom.xml +++ b/ffi/bindings/java/rodbus-tests/pom.xml @@ -26,7 +26,7 @@ io.stepfunc rodbus - 1.5.0-RC1 + 1.5.0-RC2 org.junit.jupiter diff --git a/ffi/rodbus-bindings/Cargo.toml b/ffi/rodbus-bindings/Cargo.toml index 1e41186d..f193509c 100644 --- a/ffi/rodbus-bindings/Cargo.toml +++ b/ffi/rodbus-bindings/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rodbus-bindings" -version = "1.5.0-RC1" +version = "1.5.0-RC2" description = "application to generate bindings for Rodbus" readme = "../README.md" diff --git a/ffi/rodbus-ffi-java/Cargo.toml b/ffi/rodbus-ffi-java/Cargo.toml index 0c851279..62f81a30 100644 --- a/ffi/rodbus-ffi-java/Cargo.toml +++ b/ffi/rodbus-ffi-java/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rodbus-ffi-java" -version = "1.5.0-RC1" +version = "1.5.0-RC2" authors = ["Step Function I/O LLC "] edition = "2021" build = "build.rs" diff --git a/ffi/rodbus-ffi/Cargo.toml b/ffi/rodbus-ffi/Cargo.toml index 5ce35a5a..f73ad5b8 100644 --- a/ffi/rodbus-ffi/Cargo.toml +++ b/ffi/rodbus-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rodbus-ffi" -version = "1.5.0-RC1" +version = "1.5.0-RC2" authors = ["Step Function I/O LLC "] edition = "2021" description = "FFI for Rodbus" diff --git a/ffi/rodbus-schema/Cargo.toml b/ffi/rodbus-schema/Cargo.toml index 15a805f2..ca67d84d 100644 --- a/ffi/rodbus-schema/Cargo.toml +++ b/ffi/rodbus-schema/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rodbus-schema" # this is the version that all the FFI libraries get, since it's in their schema -version = "1.5.0-RC1" +version = "1.5.0-RC2" description = "oobindgen schema for Rodbus" readme = "../README.md" diff --git a/guide/sitedata.json b/guide/sitedata.json index b34b2649..02ac6af8 100644 --- a/guide/sitedata.json +++ b/guide/sitedata.json @@ -1,4 +1,4 @@ { - "version": "1.5.0-RC1", + "version": "1.5.0-RC2", "github_url": "https://github.com/stepfunc/rodbus" } \ No newline at end of file diff --git a/integration/Cargo.toml b/integration/Cargo.toml index 708da1d1..b17621f5 100644 --- a/integration/Cargo.toml +++ b/integration/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "integration" -version = "1.5.0-RC1" +version = "1.5.0-RC2" autobins = false autotests = false autobenches = false diff --git a/rodbus-client/Cargo.toml b/rodbus-client/Cargo.toml index c5fcdc24..2a1cb938 100644 --- a/rodbus-client/Cargo.toml +++ b/rodbus-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rodbus-client" -version = "1.5.0-RC1" +version = "1.5.0-RC2" description = "A command line program for making Modbus client requests using the Rodbus crate" readme = "README.md" diff --git a/rodbus-client/src/main.rs b/rodbus-client/src/main.rs index b02afc1f..9f38bdbf 100644 --- a/rodbus-client/src/main.rs +++ b/rodbus-client/src/main.rs @@ -41,7 +41,7 @@ enum Error { #[command( about = "A command line program for making Modbus client requests using the Rodbus crate" )] -#[command(version = "1.5.0-RC1")] +#[command(version = env!("CARGO_PKG_VERSION"))] struct Cli { #[arg( short = 'i', diff --git a/rodbus/Cargo.toml b/rodbus/Cargo.toml index 81752479..315f75b9 100644 --- a/rodbus/Cargo.toml +++ b/rodbus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rodbus" -version = "1.5.0-RC1" +version = "1.5.0-RC2" description = "A high-performance async implementation of the Modbus protocol using tokio" readme = "README.md"