diff --git a/CHANGELOG.md b/CHANGELOG.md
index 40b4c969..742ff4a9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,9 +1,10 @@
-### 1.6.0-M1 ###
+### 1.6.0-M2 ###
* :star: Add master station support for writing files to the outstation. See [#338](https://github.com/stepfunc/dnp3/pull/338).
* :star: Add master station support for command events (groups 13 and 43). See [#332](https://github.com/stepfunc/dnp3/pull/332).
* :star: Add master station support for group 102. See [#335](https://github.com/stepfunc/dnp3/pull/335).
-* :star: See TCP port from server in Rust API. [#335](https://github.com/stepfunc/dnp3/pull/331).
+* :star: Add master and outstation support for UDP. See [#353](https://github.com/stepfunc/dnp3/pull/353).
+* :star: Obtain TCP port from server in Rust API. [#331](https://github.com/stepfunc/dnp3/pull/331).
### 1.5.2 ###
* :bug: Fix bug where the outstation would sleep before all unsolicited data was transmitted. See [#341](https://github.com/stepfunc/dnp3/pull/341).
diff --git a/Cargo.lock b/Cargo.lock
index 5394da54..d0b94430 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -192,9 +192,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.0.92"
+version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41"
+checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b"
[[package]]
name = "cesu8"
@@ -210,16 +210,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
-version = "0.4.37"
+version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
dependencies = [
"android-tzdata",
"iana-time-zone",
"js-sys",
"num-traits",
"wasm-bindgen",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
]
[[package]]
@@ -280,9 +280,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]]
name = "combine"
-version = "4.6.6"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
dependencies = [
"bytes",
"memchr",
@@ -343,7 +343,7 @@ dependencies = [
[[package]]
name = "dnp3"
-version = "1.6.0-M1"
+version = "1.6.0-M2"
dependencies = [
"assert_matches",
"chrono",
@@ -367,7 +367,7 @@ dependencies = [
[[package]]
name = "dnp3-bindings"
-version = "1.6.0-M1"
+version = "1.6.0-M2"
dependencies = [
"dnp3-schema",
"oo-bindgen",
@@ -377,7 +377,7 @@ dependencies = [
[[package]]
name = "dnp3-ffi"
-version = "1.6.0-M1"
+version = "1.6.0-M2"
dependencies = [
"dnp3",
"dnp3-schema",
@@ -386,7 +386,7 @@ dependencies = [
"oo-bindgen",
"sfio-promise",
"sfio-tokio-ffi",
- "sfio-tracing-ffi 0.9.0",
+ "sfio-tracing-ffi",
"tokio",
"tracing",
"tracing-core",
@@ -395,7 +395,7 @@ dependencies = [
[[package]]
name = "dnp3-ffi-java"
-version = "1.6.0-M1"
+version = "1.6.0-M2"
dependencies = [
"dnp3-ffi",
"dnp3-schema",
@@ -405,11 +405,11 @@ dependencies = [
[[package]]
name = "dnp3-schema"
-version = "1.6.0-M1"
+version = "1.6.0-M2"
dependencies = [
"oo-bindgen",
"sfio-tokio-ffi",
- "sfio-tracing-ffi 0.8.1",
+ "sfio-tracing-ffi",
]
[[package]]
@@ -880,18 +880,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "proc-macro2"
-version = "1.0.79"
+version = "1.0.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
-version = "1.0.35"
+version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
dependencies = [
"proc-macro2",
]
@@ -978,9 +978,9 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
[[package]]
name = "rustls"
-version = "0.23.4"
+version = "0.23.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c4d6d8ad9f2492485e13453acbb291dd08f64441b6609c491f1c2cd2c6b4fe1"
+checksum = "afabcee0551bd1aa3e18e5adbf2c0544722014b899adb31bd186ec638d3da97e"
dependencies = [
"log",
"once_cell",
@@ -993,15 +993,15 @@ dependencies = [
[[package]]
name = "rustls-pki-types"
-version = "1.4.1"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247"
+checksum = "beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54"
[[package]]
name = "rustls-webpki"
-version = "0.102.2"
+version = "0.102.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf"
dependencies = [
"ring",
"rustls-pki-types",
@@ -1069,18 +1069,18 @@ checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
[[package]]
name = "serde"
-version = "1.0.197"
+version = "1.0.198"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.197"
+version = "1.0.198"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
dependencies = [
"proc-macro2",
"quote",
@@ -1089,9 +1089,9 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.115"
+version = "1.0.116"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
dependencies = [
"itoa",
"ryu",
@@ -1153,15 +1153,6 @@ dependencies = [
"tokio",
]
-[[package]]
-name = "sfio-tracing-ffi"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1be29c84c2a7b298e74b8882c3167818f43e8ce1d73840cd35e2c34e791cf5c"
-dependencies = [
- "oo-bindgen",
-]
-
[[package]]
name = "sfio-tracing-ffi"
version = "0.9.0"
@@ -1246,9 +1237,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
[[package]]
name = "syn"
-version = "2.0.58"
+version = "2.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
+checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
dependencies = [
"proc-macro2",
"quote",
@@ -1257,18 +1248,18 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.58"
+version = "1.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.58"
+version = "1.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
dependencies = [
"proc-macro2",
"quote",
@@ -1566,11 +1557,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
-version = "0.1.6"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
dependencies = [
- "winapi",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -1585,7 +1576,7 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
]
[[package]]
@@ -1603,7 +1594,7 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
]
[[package]]
@@ -1623,17 +1614,18 @@ dependencies = [
[[package]]
name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
]
[[package]]
@@ -1644,9 +1636,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
[[package]]
name = "windows_aarch64_msvc"
@@ -1656,9 +1648,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
[[package]]
name = "windows_i686_gnu"
@@ -1668,9 +1660,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
[[package]]
name = "windows_i686_msvc"
@@ -1680,9 +1678,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
[[package]]
name = "windows_x86_64_gnu"
@@ -1692,9 +1690,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
[[package]]
name = "windows_x86_64_gnullvm"
@@ -1704,9 +1702,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
[[package]]
name = "windows_x86_64_msvc"
@@ -1716,9 +1714,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
[[package]]
name = "xxhash-rust"
diff --git a/Cargo.toml b/Cargo.toml
index 030be09e..b2102e9a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -9,3 +9,28 @@ members = [
"ffi/dnp3-ffi-java",
]
+[workspace.dependencies]
+sfio-tokio-ffi = "0.8"
+sfio-tracing-ffi = "0.9.0"
+oo-bindgen = "0.8.6"
+tracing = "0.1"
+tracing-subscriber = "0.3"
+tokio = "1"
+
+[workspace.package]
+rust-version = "1.75"
+edition = "2021"
+license-file = "LICENSE.txt"
+homepage = "https://stepfunc.io/products/libraries/dnp3/"
+repository = "https://github.com/stepfunc/dnp3"
+keywords = ["dnp3", "ics", "scada", "security"]
+categories = ["network-programming"]
+
+[workspace.lints.rust]
+unsafe_code = "forbid"
+non_ascii_idents = "deny"
+unreachable_pub = "deny"
+trivial_casts = "deny"
+missing_docs = "deny"
+unused = "deny"
+missing_copy_implementations = "deny"
\ No newline at end of file
diff --git a/conformance/pom.xml b/conformance/pom.xml
index e08518f8..9af7d7cc 100644
--- a/conformance/pom.xml
+++ b/conformance/pom.xml
@@ -11,7 +11,7 @@
UTF-8
2.13.4
- 1.6.0-M1
+ 1.6.0-M2
0.1.0-SNAPSHOT
4.4.0
diff --git a/dnp3/Cargo.toml b/dnp3/Cargo.toml
index bf4fc17d..0c6c8b70 100644
--- a/dnp3/Cargo.toml
+++ b/dnp3/Cargo.toml
@@ -1,21 +1,28 @@
[package]
name = "dnp3"
-version = "1.6.0-M1"
+version = "1.6.0-M2"
+
authors = ["Step Function I/O LLC "]
-edition = "2021"
-license-file = "../LICENSE.txt"
description = "Rust implementation of DNP3 (IEEE 1815) with idiomatic bindings for C, C++, .NET, and Java"
-homepage = "https://stepfunc.io/products/libraries/dnp3/"
-repository = "https://github.com/stepfunc/dnp3"
-keywords = ["dnp3", "ics", "scada", "security", "modbus"]
-categories = ["network-programming"]
readme = "README.md"
exclude = ["codegen"] # the scala code used to generate parts of the crate
+# inherit from workspace
+rust-version.workspace = true
+edition.workspace = true
+license-file.workspace = true
+homepage.workspace = true
+repository.workspace = true
+keywords.workspace = true
+categories.workspace = true
+
+[lints]
+workspace = true
+
[dependencies]
-tracing = "0.1"
+tracing = { workspace = true }
chrono = "0.4"
-tokio = { version = "1", features = ["net", "sync", "io-util", "io-std", "time", "rt", "rt-multi-thread", "macros"] }
+tokio = { workspace = true, features = ["net", "sync", "io-util", "io-std", "time", "rt", "rt-multi-thread", "macros"] }
xxhash-rust = { version = "0.8", features = ["xxh64"] }
scursor = "0.2.0"
diff --git a/dnp3/codegen/pom.xml b/dnp3/codegen/pom.xml
index 18e85cb8..7627d7b0 100644
--- a/dnp3/codegen/pom.xml
+++ b/dnp3/codegen/pom.xml
@@ -4,7 +4,7 @@
dev.gridio.dnp3
dnp3-model
- 1.6.0-M1
+ 1.6.0-M2
jar
dnp3-rs model
diff --git a/dnp3/examples/master.rs b/dnp3/examples/master.rs
index 6d6ec299..62e2e297 100644
--- a/dnp3/examples/master.rs
+++ b/dnp3/examples/master.rs
@@ -1,3 +1,4 @@
+//! Example master application
use std::time::Duration;
use tokio_stream::StreamExt;
diff --git a/dnp3/examples/outstation.rs b/dnp3/examples/outstation.rs
index b053b9fb..6f1b6491 100644
--- a/dnp3/examples/outstation.rs
+++ b/dnp3/examples/outstation.rs
@@ -1,3 +1,4 @@
+//! Example master application
use dnp3::app::control::*;
use dnp3::app::measurement::*;
use dnp3::app::*;
diff --git a/dnp3/examples/perf.rs b/dnp3/examples/perf.rs
index 7d800059..20ca9ff4 100644
--- a/dnp3/examples/perf.rs
+++ b/dnp3/examples/perf.rs
@@ -1,3 +1,4 @@
+//! Performance test
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
use std::time::Instant;
diff --git a/dnp3/src/lib.rs b/dnp3/src/lib.rs
index d3d3156c..19f915a7 100644
--- a/dnp3/src/lib.rs
+++ b/dnp3/src/lib.rs
@@ -1,51 +1,9 @@
#![doc = include_str!("../README.md")]
-#![deny(
-//dead_code,
-arithmetic_overflow,
-invalid_type_param_default,
-missing_fragment_specifier,
-mutable_transmutes,
-no_mangle_const_items,
-overflowing_literals,
-patterns_in_fns_without_body,
-pub_use_of_private_extern_crate,
-unknown_crate_types,
-order_dependent_trait_objects,
-improper_ctypes,
-late_bound_lifetime_arguments,
-non_camel_case_types,
-non_shorthand_field_patterns,
-non_snake_case,
-non_upper_case_globals,
-no_mangle_generic_items,
-stable_features,
-type_alias_bounds,
-tyvar_behind_raw_pointer,
-unconditional_recursion,
-unused_comparisons,
-unreachable_pub,
-anonymous_parameters,
-missing_copy_implementations,
-//missing_debug_implementations,
-missing_docs,
-trivial_casts,
-trivial_numeric_casts,
-unused_import_braces,
-unused_qualifications,
-clippy::all
-)]
-#![forbid(
- unsafe_code,
- rustdoc::broken_intra_doc_links,
- while_true,
- bare_trait_objects
-)]
#![cfg_attr(test, allow(dead_code))]
#[cfg(test)]
#[macro_use]
extern crate assert_matches;
-extern crate core;
/// Current version of the library
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
diff --git a/dnp3/src/link/reader.rs b/dnp3/src/link/reader.rs
index ab26f584..1c89117e 100644
--- a/dnp3/src/link/reader.rs
+++ b/dnp3/src/link/reader.rs
@@ -58,6 +58,7 @@ impl LinkModes {
}
}
+ #[cfg(feature = "serial")]
pub(crate) const fn serial() -> Self {
Self {
error_mode: LinkErrorMode::Discard,
diff --git a/ffi/bindings/c/CMakeLists.txt b/ffi/bindings/c/CMakeLists.txt
index e647d044..d0509965 100644
--- a/ffi/bindings/c/CMakeLists.txt
+++ b/ffi/bindings/c/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.12)
project(dnp3_c LANGUAGES C CXX)
-set(DNP3_BACKUP_VERSION 1.6.0-M1)
+set(DNP3_BACKUP_VERSION 1.6.0-M2)
# 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/master/Master.csproj b/ffi/bindings/dotnet/examples/master/Master.csproj
index 012b251d..f7a39c39 100644
--- a/ffi/bindings/dotnet/examples/master/Master.csproj
+++ b/ffi/bindings/dotnet/examples/master/Master.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/ffi/bindings/dotnet/examples/outstation/Outstation.csproj b/ffi/bindings/dotnet/examples/outstation/Outstation.csproj
index 78d72b4d..e3f3b2ed 100644
--- a/ffi/bindings/dotnet/examples/outstation/Outstation.csproj
+++ b/ffi/bindings/dotnet/examples/outstation/Outstation.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/ffi/bindings/java/examples/pom.xml b/ffi/bindings/java/examples/pom.xml
index 33fde0ff..cc8577e2 100644
--- a/ffi/bindings/java/examples/pom.xml
+++ b/ffi/bindings/java/examples/pom.xml
@@ -4,7 +4,7 @@
io.stepfunc.dnp3
examples
- 1.6.0-M1
+ 1.6.0-M2
1.8
@@ -16,7 +16,7 @@
io.stepfunc
dnp3
- 1.6.0-M1
+ 1.6.0-M2
diff --git a/ffi/bindings/java/pom.xml b/ffi/bindings/java/pom.xml
index ee5976da..b53d0ebe 100644
--- a/ffi/bindings/java/pom.xml
+++ b/ffi/bindings/java/pom.xml
@@ -4,7 +4,7 @@
io.stepfunc
dnp3-parent
- 1.6.0-M1
+ 1.6.0-M2
pom
diff --git a/ffi/dnp3-bindings/Cargo.toml b/ffi/dnp3-bindings/Cargo.toml
index 8f896f2b..24aec0ec 100644
--- a/ffi/dnp3-bindings/Cargo.toml
+++ b/ffi/dnp3-bindings/Cargo.toml
@@ -1,11 +1,18 @@
[package]
name = "dnp3-bindings"
-version = "1.6.0-M1"
-authors = ["Step Function I/O LLC "]
-edition = "2021"
+version = "1.6.0-M2"
+
+# inherit from workspace
+rust-version.workspace = true
+edition.workspace = true
+license-file.workspace = true
+homepage.workspace = true
+repository.workspace = true
+keywords.workspace = true
+categories.workspace = true
[dependencies]
-oo-bindgen = "0.8"
+oo-bindgen = { workspace = true }
dnp3-schema = { path = "../dnp3-schema" }
tracing-subscriber = "0.3"
tracing = "0.1"
diff --git a/ffi/dnp3-ffi-java/Cargo.toml b/ffi/dnp3-ffi-java/Cargo.toml
index 10a137f7..dc703676 100644
--- a/ffi/dnp3-ffi-java/Cargo.toml
+++ b/ffi/dnp3-ffi-java/Cargo.toml
@@ -1,10 +1,17 @@
[package]
name = "dnp3-ffi-java"
-version = "1.6.0-M1"
-authors = ["Step Function I/O LLC "]
-edition = "2018"
+version = "1.6.0-M2"
build = "build.rs"
+# inherit from workspace
+rust-version.workspace = true
+edition.workspace = true
+license-file.workspace = true
+homepage.workspace = true
+repository.workspace = true
+keywords.workspace = true
+categories.workspace = true
+
[lib]
crate-type = ["cdylib"]
@@ -19,4 +26,4 @@ serial = ["dnp3-ffi/serial"]
[build-dependencies]
dnp3-schema = { path = "../dnp3-schema" }
-oo-bindgen = "0.8"
+oo-bindgen = { workspace = true }
diff --git a/ffi/dnp3-ffi/Cargo.toml b/ffi/dnp3-ffi/Cargo.toml
index aefcd479..70c31dde 100644
--- a/ffi/dnp3-ffi/Cargo.toml
+++ b/ffi/dnp3-ffi/Cargo.toml
@@ -1,19 +1,26 @@
[package]
name = "dnp3-ffi"
-version = "1.6.0-M1"
-authors = ["Step Function I/O LLC "]
-edition = "2021"
+version = "1.6.0-M2"
+
+# inherit from workspace
+rust-version.workspace = true
+edition.workspace = true
+license-file.workspace = true
+homepage.workspace = true
+repository.workspace = true
+keywords.workspace = true
+categories.workspace = true
[lib]
crate-type = ["rlib", "cdylib"]
[dependencies]
lazy_static = "1.0"
-tracing = "0.1"
+tracing = { workspace = true }
tracing-core = "0.1"
-tracing-subscriber = { version = "0.3", features = ["chrono", "json"] }
+tracing-subscriber = { workspace = true , features = ["chrono", "json"] }
dnp3 = { path = "../../dnp3", default-features = false, features = ["ffi"] }
-tokio = { version = "1.0", features = ["rt-multi-thread"] }
+tokio = { workspace = true, features = ["rt-multi-thread"] }
num_cpus = "1"
sfio-promise = "0.2"
@@ -24,6 +31,6 @@ serial = ["dnp3/serial"]
[build-dependencies]
dnp3-schema = { path = "../dnp3-schema" }
-oo-bindgen = "0.8"
-sfio-tracing-ffi = "0.9.0"
-sfio-tokio-ffi = "0.8"
\ No newline at end of file
+oo-bindgen = { workspace = true }
+sfio-tracing-ffi = { workspace = true }
+sfio-tokio-ffi = { workspace = true }
\ No newline at end of file
diff --git a/ffi/dnp3-schema/Cargo.toml b/ffi/dnp3-schema/Cargo.toml
index 5448b1af..81756090 100644
--- a/ffi/dnp3-schema/Cargo.toml
+++ b/ffi/dnp3-schema/Cargo.toml
@@ -1,11 +1,18 @@
[package]
name = "dnp3-schema"
# this version is what gets applied to the FFI libraries
-version = "1.6.0-M1"
-authors = ["Step Function I/O LLC "]
-edition = "2021"
+version = "1.6.0-M2"
+
+# inherit from workspace
+rust-version.workspace = true
+edition.workspace = true
+license-file.workspace = true
+homepage.workspace = true
+repository.workspace = true
+keywords.workspace = true
+categories.workspace = true
[dependencies]
-oo-bindgen = "0.8"
-sfio-tracing-ffi = "0.8"
-sfio-tokio-ffi = "0.8"
+oo-bindgen = { workspace = true }
+sfio-tracing-ffi = { workspace = true }
+sfio-tokio-ffi = { workspace = true }
diff --git a/guide/sitedata.json b/guide/sitedata.json
index 22c40c68..e4f19474 100644
--- a/guide/sitedata.json
+++ b/guide/sitedata.json
@@ -1,4 +1,4 @@
{
- "version": "1.6.0-M1",
+ "version": "1.6.0-M2",
"github_url": "https://github.com/stepfunc/dnp3"
}
\ No newline at end of file