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"