diff --git a/Cargo.lock b/Cargo.lock index f57d7ee..90c9898 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -73,9 +73,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ "anstyle", "anstyle-parse", @@ -88,33 +88,33 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -145,6 +145,45 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d62b7694a562cdf5a74227903507c56ab2cc8bdd1f781ed5cb4cf9c9f810bfc" +[[package]] +name = "asn1-rs" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", +] + [[package]] name = "async-attributes" version = "1.1.2" @@ -192,9 +231,9 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0" +checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" dependencies = [ "async-task", "concurrent-queue", @@ -211,7 +250,7 @@ checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" dependencies = [ "async-channel 2.3.1", "async-executor", - "async-io 2.3.3", + "async-io 2.3.4", "async-lock 3.4.0", "blocking", "futures-lite 2.3.0", @@ -241,9 +280,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.3" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" +checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" dependencies = [ "async-lock 3.4.0", "cfg-if", @@ -251,11 +290,11 @@ dependencies = [ "futures-io", "futures-lite 2.3.0", "parking", - "polling 3.7.2", + "polling 3.7.3", "rustix 0.38.34", "slab", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -297,11 +336,11 @@ dependencies = [ [[package]] name = "async-signal" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794f185324c2f00e771cd9f1ae8b5ac68be2ca7abb129a87afd6e86d228bc54d" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "async-io 2.3.3", + "async-io 2.3.4", "async-lock 3.4.0", "atomic-waker", "cfg-if", @@ -310,7 +349,7 @@ dependencies = [ "rustix 0.38.34", "signal-hook-registry", "slab", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -349,13 +388,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -411,9 +450,9 @@ dependencies = [ "proc-macro2", "quote", "regex", - "rustc-hash", + "rustc-hash 1.1.0", "shlex", - "syn 2.0.66", + "syn 2.0.74", "which", ] @@ -426,7 +465,7 @@ dependencies = [ "autocxx-engine", "env_logger 0.9.3", "indexmap 1.9.3", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -453,7 +492,7 @@ dependencies = [ "rustversion", "serde_json", "strum_macros", - "syn 2.0.66", + "syn 2.0.74", "tempfile", "thiserror", "version_check", @@ -469,7 +508,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -486,7 +525,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.66", + "syn 2.0.74", "thiserror", ] @@ -546,9 +585,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" dependencies = [ "serde", ] @@ -560,7 +599,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afb15541e888071f64592c0b4364fdff21b7cb0a247f984296699351963a8721" dependencies = [ "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -599,9 +638,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "cache-padded" @@ -611,9 +650,18 @@ checksum = "981520c98f422fcc584dc1a95c334e6953900b9106bc47a9839b81790009eb21" [[package]] name = "cc" -version = "1.0.99" +version = "1.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68064e60dbf1f17005c2fde4d07c16d8baa506fd7ffed8ccab702d93617975c7" +dependencies = [ + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cexpr" @@ -641,7 +689,7 @@ dependencies = [ "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -667,9 +715,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.9" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" +checksum = "11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc" dependencies = [ "clap_builder", "clap_derive", @@ -677,9 +725,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.9" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" dependencies = [ "anstream", "anstyle", @@ -689,27 +737,27 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.8" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] name = "clap_lex" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "cmake" -version = "0.1.50" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" +checksum = "fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a" dependencies = [ "cc", ] @@ -726,9 +774,19 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] [[package]] name = "concurrent-queue" @@ -783,15 +841,15 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] @@ -842,9 +900,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.124" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "273dcfd3acd4e1e276af13ed2a43eea7001318823e7a726a6b3ed39b4acc0b82" +checksum = "3c4eae4b7fc8dcb0032eb3b1beee46b38d371cdeaf2d0c64b9944f6f69ad7755" dependencies = [ "cc", "cxxbridge-flags", @@ -854,9 +912,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.124" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b2766fbd92be34e9ed143898fce6c572dc009de39506ed6903e5a05b68914e" +checksum = "6c822bf7fb755d97328d6c337120b6f843678178751cba33c9da25cf522272e0" dependencies = [ "cc", "codespan-reporting", @@ -864,36 +922,36 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] name = "cxx-gen" -version = "0.7.124" +version = "0.7.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "749d9ac61b735e0d15b041225ad97a6f74b4bdf9f9dc98469553ca6109f57a56" +checksum = "4e8ba19208b722eb93d9436b6e8de8dd65a168212f25d5b7e6607ad317cb0ec3" dependencies = [ "codespan-reporting", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] name = "cxxbridge-flags" -version = "1.0.124" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "839fcd5e43464614ffaa989eaf1c139ef1f0c51672a1ed08023307fa1b909ccd" +checksum = "719d6197dc016c88744aff3c0d0340a01ecce12e8939fc282e7c8f583ee64bc6" [[package]] name = "cxxbridge-macro" -version = "1.0.124" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2c1c1776b986979be68bb2285da855f8d8a35851a769fca8740df7c3d07877" +checksum = "35de3b547387863c8f82013c4f79f1c2162edee956383e4089e1d04c18c4f16c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -913,6 +971,29 @@ dependencies = [ "zeroize", ] +[[package]] +name = "der-parser" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + [[package]] name = "derive_more" version = "0.99.18" @@ -923,7 +1004,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -961,13 +1042,13 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -978,9 +1059,9 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "either" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "encoding_rs" @@ -1050,17 +1131,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "event-listener" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - [[package]] name = "event-listener" version = "5.3.1" @@ -1098,7 +1168,7 @@ dependencies = [ "tokio", "up-rust", "up-transport-vsomeip", - "up-transport-zenoh 0.1.0 (git+https://github.com/eclipse-uprotocol/up-transport-zenoh-rust.git?rev=7c839e7a94f526a82027564a609f48a79a3f4eae)", + "up-transport-zenoh", "zenoh", ] @@ -1132,7 +1202,7 @@ dependencies = [ "futures-core", "futures-sink", "nanorand", - "spin 0.9.8", + "spin", ] [[package]] @@ -1249,7 +1319,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -1328,7 +1398,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -1361,7 +1431,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.2.6", + "indexmap 2.4.0", "slab", "tokio", "tokio-util", @@ -1369,19 +1439,16 @@ dependencies = [ ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "half" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" [[package]] name = "hashbrown" -version = "0.13.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" @@ -1468,9 +1535,9 @@ dependencies = [ [[package]] name = "http-body" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http", @@ -1503,9 +1570,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", @@ -1531,10 +1598,10 @@ dependencies = [ "http", "hyper", "hyper-util", - "rustls 0.23.10", + "rustls", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tower-service", ] @@ -1556,9 +1623,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.5" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" dependencies = [ "bytes", "futures-channel", @@ -1597,134 +1664,14 @@ dependencies = [ "cc", ] -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "idna" -version = "1.0.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ - "icu_normalizer", - "icu_properties", - "smallvec", - "utf8_iter", + "unicode-bidi", + "unicode-normalization", ] [[package]] @@ -1740,9 +1687,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -1817,11 +1764,11 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" dependencies = [ - "hermit-abi 0.3.9", + "hermit-abi 0.4.0", "libc", "windows-sys 0.52.0", ] @@ -1834,9 +1781,15 @@ checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "iter-read" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "c397ca3ea05ad509c4ec451fea28b4771236a376ca1c69fd5143aae0cf8f93c4" [[package]] name = "itertools" @@ -1865,17 +1818,46 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] @@ -1902,11 +1884,11 @@ dependencies = [ [[package]] name = "keyed-set" -version = "0.4.5" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b79e110283e09081809ca488cf3a9709270c6d4d4c4a32674c39cc438366615a" +checksum = "0a3ec39d2dc17953a1540d63906a112088f79b2e46833b4ed65bc9de3904ae34" dependencies = [ - "hashbrown 0.13.2", + "hashbrown 0.14.5", ] [[package]] @@ -1920,11 +1902,11 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin 0.5.2", + "spin", ] [[package]] @@ -1941,12 +1923,12 @@ checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libloading" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -1961,7 +1943,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", ] @@ -1986,12 +1968,6 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" -[[package]] -name = "litemap" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" - [[package]] name = "lock_api" version = "0.4.12" @@ -2004,9 +1980,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" dependencies = [ "value-bag", ] @@ -2070,7 +2046,7 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -2087,22 +2063,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.11" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi 0.3.9", "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2146,7 +2123,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "libc", ] @@ -2177,6 +2154,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-bigint-dig" version = "0.8.4" @@ -2194,6 +2181,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-integer" version = "0.1.46" @@ -2236,13 +2229,22 @@ dependencies = [ [[package]] name = "object" -version = "0.36.0" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] +[[package]] +name = "oid-registry" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d" +dependencies = [ + "asn1-rs", +] + [[package]] name = "once_cell" version = "1.19.0" @@ -2251,11 +2253,11 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "foreign-types", "libc", @@ -2272,7 +2274,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -2283,9 +2285,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" dependencies = [ "cc", "libc", @@ -2301,9 +2303,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "ordered-float" -version = "4.2.0" +version = "4.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e" +checksum = "4a91171844676f8c7990ce64959210cd2eaef32c2612c50f9fae9f8aaa6065a6" dependencies = [ "num-traits", ] @@ -2361,9 +2363,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.10" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" dependencies = [ "memchr", "thiserror", @@ -2372,9 +2374,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.10" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" dependencies = [ "pest", "pest_generator", @@ -2382,22 +2384,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.10" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] name = "pest_meta" -version = "2.7.10" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" dependencies = [ "once_cell", "pest", @@ -2411,7 +2413,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.2.6", + "indexmap 2.4.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.74", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", ] [[package]] @@ -2431,7 +2475,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -2448,9 +2492,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", "fastrand 2.1.0", @@ -2486,18 +2530,18 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "pnet_base" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cf6fb3ab38b68d01ab2aea03ed3d1132b4868fa4e06285f29f16da01c5f4c" +checksum = "ffc190d4067df16af3aba49b3b74c469e611cad6314676eaf1157f31aa0fb2f7" dependencies = [ "no-std-net", ] [[package]] name = "pnet_datalink" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad5854abf0067ebbd3967f7d45ebc8976ff577ff0c7bd101c4973ae3c70f98fe" +checksum = "e79e70ec0be163102a332e1d2d5586d362ad76b01cec86f830241f2b6452a7b7" dependencies = [ "ipnetwork", "libc", @@ -2508,9 +2552,9 @@ dependencies = [ [[package]] name = "pnet_sys" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "417c0becd1b573f6d544f73671070b039051e5ad819cc64aa96377b536128d00" +checksum = "7d4643d3d4db6b08741050c2f3afa9a892c4244c085a72fcda93c9c2c9a00f4b" dependencies = [ "libc", "winapi", @@ -2534,9 +2578,9 @@ dependencies = [ [[package]] name = "polling" -version = "3.7.2" +version = "3.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" dependencies = [ "cfg-if", "concurrent-queue", @@ -2544,14 +2588,23 @@ dependencies = [ "pin-project-lite", "rustix 0.38.34", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "prettyplease" @@ -2560,7 +2613,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -2589,9 +2642,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -2616,7 +2669,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -2630,9 +2683,9 @@ dependencies = [ [[package]] name = "protobuf" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58678a64de2fced2bdec6bca052a6716a0efe692d6e3f53d1bda6a1def64cfc0" +checksum = "df67496db1a89596beaced1579212e9b7c53c22dca1d9745de00ead76573d514" dependencies = [ "bytes", "once_cell", @@ -2642,9 +2695,9 @@ dependencies = [ [[package]] name = "protobuf-codegen" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32777b0b3f6538d9d2e012b3fad85c7e4b9244b5958d04a6415f4333782b7a77" +checksum = "eab09155fad2d39333d3796f67845d43e29b266eea74f7bc93f153f707f126dc" dependencies = [ "anyhow", "once_cell", @@ -2657,12 +2710,12 @@ dependencies = [ [[package]] name = "protobuf-parse" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96cb37955261126624a25b5e6bda40ae34cf3989d52a783087ca6091b29b5642" +checksum = "1a16027030d4ec33e423385f73bb559821827e9ec18c50e7874e4d6de5a4e96f" dependencies = [ "anyhow", - "indexmap 1.9.3", + "indexmap 2.4.0", "log", "protobuf", "protobuf-support", @@ -2673,9 +2726,9 @@ dependencies = [ [[package]] name = "protobuf-support" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1ed294a835b0f30810e13616b1cd34943c6d1e84a8f3b0dcfe466d256c3e7e7" +checksum = "70e2d30ab1878b2e72d1e2fc23ff5517799c9929e2cf81a8516f9f4dcf2b9cf3" dependencies = [ "thiserror", ] @@ -2732,16 +2785,17 @@ checksum = "9653c3ed92974e34c5a6e0a510864dab979760481714c172e0a34e437cb98804" [[package]] name = "quinn" -version = "0.10.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" +checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156" dependencies = [ "bytes", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash", - "rustls 0.21.12", + "rustc-hash 2.0.0", + "rustls", + "socket2 0.5.7", "thiserror", "tokio", "tracing", @@ -2749,16 +2803,16 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.10.6" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" +checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd" dependencies = [ "bytes", "rand", - "ring 0.16.20", - "rustc-hash", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", + "ring", + "rustc-hash 2.0.0", + "rustls", + "rustls-platform-verifier", "slab", "thiserror", "tinyvec", @@ -2767,15 +2821,15 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.4.1" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" +checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" dependencies = [ - "bytes", "libc", + "once_cell", "socket2 0.5.7", "tracing", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2850,9 +2904,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.5" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", @@ -2920,7 +2974,7 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile 2.1.2", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", @@ -2936,21 +2990,6 @@ dependencies = [ "winreg", ] -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - [[package]] name = "ring" version = "0.17.8" @@ -2961,8 +3000,8 @@ dependencies = [ "cfg-if", "getrandom", "libc", - "spin 0.9.8", - "untrusted 0.9.0", + "spin", + "untrusted", "windows-sys 0.52.0", ] @@ -2983,7 +3022,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ "base64 0.21.7", - "bitflags 2.5.0", + "bitflags 2.6.0", "serde", "serde_derive", ] @@ -3020,6 +3059,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc_version" version = "0.4.0" @@ -3029,6 +3074,15 @@ dependencies = [ "semver", ] +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + [[package]] name = "rustix" version = "0.37.27" @@ -3049,7 +3103,7 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys 0.4.14", @@ -3058,63 +3112,27 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.12" +version = "0.23.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ "log", - "ring 0.17.8", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-pki-types", - "rustls-webpki 0.102.4", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls" -version = "0.23.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402" -dependencies = [ "once_cell", + "ring", "rustls-pki-types", - "rustls-webpki 0.102.4", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" +checksum = "a88d6d420651b496bdd98684116959239430022a115c1240e6c3993be0b15fba" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.2", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework", @@ -3122,18 +3140,9 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-pemfile" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" dependencies = [ "base64 0.22.1", "rustls-pki-types", @@ -3141,29 +3150,46 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] -name = "rustls-webpki" -version = "0.101.7" +name = "rustls-platform-verifier" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "93bda3f493b9abe5b93b3e7e3ecde0df292f2bd28c0296b90586ee0055ff5123" dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", + "core-foundation", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-roots", + "winapi", ] +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" -version = "0.102.4" +version = "0.102.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" dependencies = [ - "ring 0.17.8", + "ring", "rustls-pki-types", - "untrusted 0.9.0", + "untrusted", ] [[package]] @@ -3178,6 +3204,15 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "schannel" version = "0.1.23" @@ -3194,6 +3229,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" dependencies = [ "dyn-clone", + "either", "schemars_derive", "serde", "serde_json", @@ -3208,7 +3244,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -3223,16 +3259,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - [[package]] name = "secrecy" version = "0.8.0" @@ -3245,22 +3271,23 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", + "num-bigint", "security-framework-sys", ] [[package]] name = "security-framework-sys" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -3274,22 +3301,45 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" dependencies = [ "serde_derive", ] +[[package]] +name = "serde-pickle" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762ad136a26407c6a80825813600ceeab5e613660d93d79a41f0ec877171e71" +dependencies = [ + "byteorder", + "iter-read", + "num-bigint", + "num-traits", + "serde", +] + +[[package]] +name = "serde_cbor" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" +dependencies = [ + "half", + "serde", +] + [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -3300,16 +3350,17 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -3332,7 +3383,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.4.0", "itoa", "ryu", "serde", @@ -3414,6 +3465,12 @@ dependencies = [ "rand_core", ] +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + [[package]] name = "slab" version = "0.4.9" @@ -3455,12 +3512,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -3480,12 +3531,6 @@ dependencies = [ "der", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - [[package]] name = "static_assertions" version = "1.1.0" @@ -3541,9 +3586,9 @@ dependencies = [ [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "supports-color" @@ -3586,9 +3631,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.66" +version = "2.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" dependencies = [ "proc-macro2", "quote", @@ -3609,7 +3654,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -3635,14 +3680,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", "fastrand 2.1.0", + "once_cell", "rustix 0.38.34", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3677,22 +3723,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -3706,20 +3752,41 @@ dependencies = [ ] [[package]] -name = "tinystr" -version = "0.7.6" +name = "time" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ - "displaydoc", - "zerovec", + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", ] [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -3741,31 +3808,30 @@ dependencies = [ [[package]] name = "tokio" -version = "1.38.0" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "pin-project-lite", "socket2 0.5.7", "tokio-macros", "tracing", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -3778,43 +3844,22 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls 0.22.4", - "rustls-pki-types", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.10", + "rustls", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-tungstenite" -version = "0.21.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" +checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" dependencies = [ "futures-util", "log", @@ -3854,15 +3899,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -3884,7 +3929,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] @@ -3947,9 +3992,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.21.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" +checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" dependencies = [ "byteorder", "bytes", @@ -3960,7 +4005,6 @@ dependencies = [ "rand", "sha1", "thiserror", - "url", "utf-8", ] @@ -3988,18 +4032,24 @@ checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "uhlc" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99b6df3f3e948b40e20c38a6d1fd6d8f91b3573922fc164e068ad3331560487e" +checksum = "79ac3c37bd9506595768f0387bd39d644525728b4a1d783218acabfb56356db7" dependencies = [ "humantime", "lazy_static", "log", "rand", "serde", - "spin 0.9.8", + "spin", ] +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + [[package]] name = "unicode-ident" version = "1.0.12" @@ -4012,6 +4062,15 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + [[package]] name = "unicode-width" version = "0.1.13" @@ -4032,15 +4091,15 @@ checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "untrusted" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] -name = "untrusted" -version = "0.9.0" +name = "unwrap-infallible" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" [[package]] name = "unzip-n" @@ -4070,7 +4129,7 @@ dependencies = [ "up-rust", "up-streamer", "up-transport-vsomeip", - "up-transport-zenoh 0.1.0 (git+https://github.com/eclipse-uprotocol/up-transport-zenoh-rust.git?rev=7c839e7a94f526a82027564a609f48a79a3f4eae)", + "up-transport-zenoh", "usubscription-static-file", "zenoh", ] @@ -4091,7 +4150,7 @@ dependencies = [ "up-rust", "up-streamer", "up-transport-vsomeip", - "up-transport-zenoh 0.1.0 (git+https://github.com/eclipse-uprotocol/up-transport-zenoh-rust.git?rev=b977153265d22c4bb4bbbc20dea403342b9ab438)", + "up-transport-zenoh", "usubscription-static-file", "zenoh", "zenoh-core", @@ -4104,19 +4163,19 @@ dependencies = [ [[package]] name = "up-rust" version = "0.1.5" -source = "git+https://github.com/eclipse-uprotocol/up-rust?rev=3a50104421a801d52e1d9c68979db54c013ce43d#3a50104421a801d52e1d9c68979db54c013ce43d" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71293ba134ceaff1578bc42c874b031d4d74c694a0627bd22857ecc1ccc9ee1" dependencies = [ "async-trait", "bytes", - "chrono", "mediatype", - "once_cell", "protobuf", "protobuf-codegen", "protoc-bin-vendored", "rand", - "regex", - "reqwest", + "thiserror", + "tokio", + "tracing", "uriparse", "uuid-simd", ] @@ -4144,7 +4203,7 @@ dependencies = [ [[package]] name = "up-transport-vsomeip" version = "0.1.0" -source = "git+https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git?rev=acbb0d0c9b8b48dd35c74f461e97151f1e922000#acbb0d0c9b8b48dd35c74f461e97151f1e922000" +source = "git+https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git?tag=v0.1.0#c9d53f31c74258b66e792401a3717602a8eb725e" dependencies = [ "async-trait", "bimap", @@ -4166,44 +4225,25 @@ dependencies = [ [[package]] name = "up-transport-zenoh" -version = "0.1.0" -source = "git+https://github.com/eclipse-uprotocol/up-transport-zenoh-rust.git?rev=7c839e7a94f526a82027564a609f48a79a3f4eae#7c839e7a94f526a82027564a609f48a79a3f4eae" -dependencies = [ - "anyhow", - "async-trait", - "bitmask-enum", - "chrono", - "crossbeam-channel", - "env_logger 0.10.2", - "lazy_static", - "log", - "prost", - "prost-types", - "protobuf", - "rand", - "tokio", - "up-rust", - "zenoh", -] - -[[package]] -name = "up-transport-zenoh" -version = "0.1.0" -source = "git+https://github.com/eclipse-uprotocol/up-transport-zenoh-rust.git?rev=b977153265d22c4bb4bbbc20dea403342b9ab438#b977153265d22c4bb4bbbc20dea403342b9ab438" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfac47863644cda35e70cc4b048db3f559df6f963a2d4099dce63932164d668f" dependencies = [ "anyhow", "async-trait", "bitmask-enum", + "bytes", "chrono", + "clap", "crossbeam-channel", - "env_logger 0.10.2", "lazy_static", - "log", "prost", "prost-types", "protobuf", "rand", "tokio", + "tracing", + "tracing-subscriber", "up-rust", "zenoh", ] @@ -4220,9 +4260,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.1" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -4246,18 +4286,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - [[package]] name = "utf8parse" version = "0.2.2" @@ -4266,9 +4294,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" dependencies = [ "getrandom", ] @@ -4333,9 +4361,9 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vsimd" @@ -4346,18 +4374,18 @@ checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" [[package]] name = "vsomeip-proc-macro" version = "0.1.0" -source = "git+https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git?rev=acbb0d0c9b8b48dd35c74f461e97151f1e922000#acbb0d0c9b8b48dd35c74f461e97151f1e922000" +source = "git+https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git?tag=v0.1.0#c9d53f31c74258b66e792401a3717602a8eb725e" dependencies = [ "proc-macro2", "quote", "rayon", - "syn 2.0.66", + "syn 2.0.74", ] [[package]] name = "vsomeip-sys" version = "0.1.0" -source = "git+https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git?rev=acbb0d0c9b8b48dd35c74f461e97151f1e922000#acbb0d0c9b8b48dd35c74f461e97151f1e922000" +source = "git+https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git?tag=v0.1.0#c9d53f31c74258b66e792401a3717602a8eb725e" dependencies = [ "autocxx", "autocxx-build", @@ -4377,6 +4405,16 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "want" version = "0.3.1" @@ -4394,34 +4432,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if", "js-sys", @@ -4431,9 +4470,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4441,28 +4480,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", @@ -4507,11 +4546,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4526,7 +4565,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -4544,7 +4583,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -4564,18 +4612,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "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", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -4586,9 +4634,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -4598,9 +4646,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -4610,15 +4658,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -4628,9 +4676,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -4640,9 +4688,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -4652,9 +4700,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -4664,9 +4712,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winreg" @@ -4679,71 +4727,59 @@ dependencies = [ ] [[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.4" +name = "x509-parser" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", - "synstructure", + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", ] [[package]] name = "zenoh" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d5ca32acd0c066b82d53364715c2d74dbfd9751a1c794432805c3d6667f484" +checksum = "4327cb0cfde8016990c132a573bf14394d732e5460c95eb7eaf5d52a83c357cb" dependencies = [ "ahash", "async-trait", - "base64 0.21.7", - "const_format", - "event-listener 4.0.3", + "base64 0.22.1", + "bytes", + "event-listener 5.3.1", "flume", "form_urlencoded", "futures", "git-version", + "itertools 0.13.0", "lazy_static", + "once_cell", "ordered-float", "paste", "petgraph", + "phf", "rand", "regex", "rustc_version", "serde", + "serde-pickle", + "serde_cbor", "serde_json", + "serde_yaml", "socket2 0.5.7", "stop-token", "tokio", "tokio-util", "tracing", "uhlc", + "unwrap-infallible", "uuid", "vec_map", "zenoh-buffers", @@ -4767,18 +4803,18 @@ dependencies = [ [[package]] name = "zenoh-buffers" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e420f6a3b6fd39ef01250776a3de6a4ce43376e80b0780748954b84ee3fa5e0" +checksum = "5dc32cbe83d9c605391e0b8f4d39fef491ae9c9e54062f1352bb2e05ebd6ca0b" dependencies = [ "zenoh-collections", ] [[package]] name = "zenoh-codec" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d183ef519a16105318eebc1f520438618967f327786b092dfb86ab8abb2cdaa" +checksum = "11b0e8f93a429d052898ce8d1f9c521415b99e2acaf4e26a7eb593dd704e7d20" dependencies = [ "serde", "tracing", @@ -4789,15 +4825,15 @@ dependencies = [ [[package]] name = "zenoh-collections" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1bea7fdf4271fc8320ae4b325111feb9bec01e4de704a8193e1e7b96f5e83dd" +checksum = "374a6fc70c8f74bd025445fa035f9d556e286e3f60a000f0846a51a637f0acb4" [[package]] name = "zenoh-config" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24c6e281e386b642233bfdd5d0ab3310bfe6594414e2f45dca2a3efb783f147e" +checksum = "124514ba9fb6748a5354badf0f128112274c93f845731493ec2334c4c3f7f8c5" dependencies = [ "flume", "json5", @@ -4807,8 +4843,10 @@ dependencies = [ "serde_json", "serde_yaml", "tracing", + "uhlc", "validated_struct", "zenoh-core", + "zenoh-macros", "zenoh-protocol", "zenoh-result", "zenoh-util", @@ -4816,9 +4854,9 @@ dependencies = [ [[package]] name = "zenoh-core" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0649e021fd2cbe2831d8d808893fb1a37e96fb5296aee77beb5254c7ccdf6502" +checksum = "f01b49ea5d5cb57306b8cc13bccf2dd7d7efce19ef51f4a972e1ff07ceb752b8" dependencies = [ "async-global-executor", "lazy_static", @@ -4829,9 +4867,9 @@ dependencies = [ [[package]] name = "zenoh-crypto" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0841392b9e8d7f79eb00fcef36e924b60ac6e250be5d14e143bf3e266fbfdaa" +checksum = "7eeda8889138fcc99ea0242bcbef4a6bfa10096fbf2fb0d87c41e331c2901904" dependencies = [ "aes", "hmac", @@ -4843,9 +4881,9 @@ dependencies = [ [[package]] name = "zenoh-keyexpr" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d91aa7320294ca26770a17257b9935b10879fdf02b7e310515f9dedf82d9537" +checksum = "908e1217c0d205329f40dcfaa9a5e9768ac00e48efd4b259f3335139424726d3" dependencies = [ "hashbrown 0.14.5", "keyed-set", @@ -4858,9 +4896,9 @@ dependencies = [ [[package]] name = "zenoh-link" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9dff0d5deff5a1fa25fb46db1cdfffe185fcac46a56b17e1107c8694d57868" +checksum = "744c3378447b63c1d10f3a4308792e710a2794bf47484622494b0ad3b382909b" dependencies = [ "async-trait", "zenoh-config", @@ -4877,19 +4915,20 @@ dependencies = [ [[package]] name = "zenoh-link-commons" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a333d91bd22cb1b313430ea782461b9a0e7e31fda71fc34c7d201b3482657ca" +checksum = "a1f3ff80909e7f61fa204f367bb6d7b91a4e69502fad228fa07dd98bfe5d3836" dependencies = [ "async-trait", "flume", "futures", - "rustls 0.22.4", - "rustls-webpki 0.102.4", + "rustls", + "rustls-webpki", "serde", "tokio", "tokio-util", "tracing", + "webpki-roots", "zenoh-buffers", "zenoh-codec", "zenoh-config", @@ -4902,25 +4941,26 @@ dependencies = [ [[package]] name = "zenoh-link-quic" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a343b3ff76bcdd7529510e9def0dbb74651cd456e0fdf5c3dacf831e163f0dee" +checksum = "ac169d2de9d3b8bf3936206b3ebbe33d67236304ef26e4e4cd402d5cfb95d976" dependencies = [ "async-trait", - "base64 0.21.7", + "base64 0.22.1", "futures", "quinn", - "rustls 0.21.12", - "rustls-native-certs 0.7.0", - "rustls-pemfile 1.0.4", + "rustls", + "rustls-pemfile", "rustls-pki-types", - "rustls-webpki 0.102.4", + "rustls-webpki", "secrecy", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", "tokio-util", "tracing", "webpki-roots", + "x509-parser", + "zenoh-collections", "zenoh-config", "zenoh-core", "zenoh-link-commons", @@ -4933,11 +4973,12 @@ dependencies = [ [[package]] name = "zenoh-link-tcp" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89546efda6f9df0323c94c02867191c97e8f117467c657b20a0e4ac1e8944b31" +checksum = "7b1ab76691ef75b7e2cf8bdf2bb51d4c11e0021eb13cd92e73d4e64d620bf5c7" dependencies = [ "async-trait", + "socket2 0.5.7", "tokio", "tokio-util", "tracing", @@ -4952,23 +4993,26 @@ dependencies = [ [[package]] name = "zenoh-link-tls" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2c3fc6e5dbfb0ce374fb6b9101ca1cb03e01ff64b88770d0da2e961d47bee1" +checksum = "13f8da6ca1bfa43a6d1e301142f9d3c513336dbdc94e58391cdb549bc495d356" dependencies = [ "async-trait", - "base64 0.21.7", + "base64 0.22.1", "futures", - "rustls 0.22.4", - "rustls-pemfile 2.1.2", + "rustls", + "rustls-pemfile", "rustls-pki-types", - "rustls-webpki 0.102.4", + "rustls-webpki", "secrecy", + "socket2 0.5.7", "tokio", - "tokio-rustls 0.25.0", + "tokio-rustls", "tokio-util", "tracing", "webpki-roots", + "x509-parser", + "zenoh-collections", "zenoh-config", "zenoh-core", "zenoh-link-commons", @@ -4981,9 +5025,9 @@ dependencies = [ [[package]] name = "zenoh-link-udp" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9460a00abebb5a3f0edd9e2a1cc48089e8e2e4827070b6fc7304976dcfb1b20b" +checksum = "81d93b2efa81a82409c6425aa15a9f539bfe6a5d37b6458b2414d646b3fd1d46" dependencies = [ "async-trait", "socket2 0.5.7", @@ -5003,9 +5047,9 @@ dependencies = [ [[package]] name = "zenoh-link-unixsock_stream" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "264c2f84adb7cafaf19ca1e4f184e2a1df3477b5b239ce116ff4ae0ad1e01700" +checksum = "b5c22576c0dd0494552faa19e6c4ef48c09e064e49f35ae84c2d5175c14630a7" dependencies = [ "async-trait", "futures", @@ -5024,9 +5068,9 @@ dependencies = [ [[package]] name = "zenoh-link-ws" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "665cf494174342b10d8aadf633d9601f8d2324449fa7cdf53001d6870db9893b" +checksum = "44bd970d1f882741582b0fb91fc7f75fd7efe553d54176d321f218abf49c538a" dependencies = [ "async-trait", "futures-util", @@ -5046,23 +5090,22 @@ dependencies = [ [[package]] name = "zenoh-macros" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a48c9ddfe781b4d75a2372086db3c3f8ff993e222eb3b9328f62cbdec90af3" +checksum = "711d22524466cfb675bc6369b990d08d32e717ee3a33982c5717b16967042244" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.74", "zenoh-keyexpr", ] [[package]] name = "zenoh-plugin-trait" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55f2724b84ec2c17e15e5f806c224ebd16394c78560d5f0eb03861e119b05719" +checksum = "d77d6f534d2496eb7fe3c08951dedb52e374523df7564de2e7fe47a8a4b605d2" dependencies = [ - "const_format", "libloading", "serde", "serde_json", @@ -5075,33 +5118,34 @@ dependencies = [ [[package]] name = "zenoh-protocol" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4300a39f5f0cb53ff6aff4e730b0bf2a6a38c66fdf4ad78f55e514cc18cb948f" +checksum = "e312bcb7f9db84906a54c3bb12ed48d5a08166151f72003909c2856c18df9b04" dependencies = [ "const_format", "rand", "serde", "uhlc", "zenoh-buffers", + "zenoh-collections", "zenoh-keyexpr", "zenoh-result", ] [[package]] name = "zenoh-result" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "746cc1e755b191d650897da0ca318e67a23c420938fefa1d471b2333b10ac67e" +checksum = "acc55cac3fe4655a8687d81b918a2dfe459fd254ea5f387d5374f53911cc80b9" dependencies = [ "anyhow", ] [[package]] name = "zenoh-runtime" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3b252e5871a745ce9407135cd0b17402e13c53dccd84109623452757f3f9b3" +checksum = "4e49e1aeff100cbbee624a68a85ec7affaa4d63960a36ef2605ce4b6641005e7" dependencies = [ "futures", "lazy_static", @@ -5109,18 +5153,17 @@ dependencies = [ "ron", "serde", "tokio", - "zenoh-collections", "zenoh-macros", "zenoh-result", ] [[package]] name = "zenoh-sync" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c46eab9401b2a2bfa3d7f573b32dfaed135af5a3b95c824487554d8822e43cb" +checksum = "9bccefad1e7c30f8f4ccb7d0b46d1d99f2cc882bb09bdd050438178d4d94d910" dependencies = [ - "event-listener 4.0.3", + "event-listener 5.3.1", "futures", "tokio", "zenoh-buffers", @@ -5131,9 +5174,9 @@ dependencies = [ [[package]] name = "zenoh-task" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e98f52fe28de7d4ba4c49f4ff0b1a5aad97bf09381893c9d7364fddfd0fe2ff" +checksum = "01279e8e5fa731049e2acf5bb7eeeaa7450a3362e5b0b5f31f24cc3f1318f039" dependencies = [ "futures", "tokio", @@ -5145,9 +5188,9 @@ dependencies = [ [[package]] name = "zenoh-transport" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42893fa50da7862ac7837cc6e73d4d193ae82a389f6b1e41ed2c6a67303ba64a" +checksum = "9081d715d3fb1e153725627a115c5afc5cf40af45970c6677959c7a6a833f906" dependencies = [ "async-trait", "flume", @@ -5178,12 +5221,12 @@ dependencies = [ [[package]] name = "zenoh-util" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fc940a6a9826c2261d7db93fec56a5cad275d1866d1523a1240fb5cb3a87e48" +checksum = "92d53e24e5f203b37af4536e7e23733d9c3b1f2c5aaa8fce75dbc289c5f3909e" dependencies = [ - "async-std", "async-trait", + "const_format", "flume", "home", "humantime", @@ -5191,6 +5234,8 @@ dependencies = [ "libc", "libloading", "pnet_datalink", + "serde", + "serde_json", "shellexpand", "tokio", "tracing", @@ -5202,14 +5247,14 @@ dependencies = [ [[package]] name = "zenoh_backend_traits" -version = "0.11.0" +version = "1.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458b5c151d7e31de67d45f1ba9cc409ddeb762adc7ce35c3c81d9dcad314da97" +checksum = "af71545acaac33b83164547c30b103218cf4a6a0ab13795e4668f7e7336d84ba" dependencies = [ - "async-std", "async-trait", "const_format", "derive_more", + "either", "schemars", "serde_json", "zenoh", @@ -5220,43 +5265,23 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.34" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "zerofrom" -version = "0.1.4" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", - "synstructure", + "syn 2.0.74", ] [[package]] @@ -5264,25 +5289,3 @@ name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - -[[package]] -name = "zerovec" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] diff --git a/Cargo.toml b/Cargo.toml index e33b907..1229216 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,9 +38,9 @@ json5 = { version = "0.4.1" } serde = { version = "1.0.154", features = ["derive"] } serde_json = { version = "1.0.94" } uuid = { version = "1.7.0" } -up-rust = { default-features = false, git = "https://github.com/eclipse-uprotocol/up-rust", rev = "3a50104421a801d52e1d9c68979db54c013ce43d" } tokio = { version = "1.35.1", default-features = false } protobuf = { version = "3.3", features = ["with-bytes"] } +up-rust = { version = "0.1.5", default-features = false } [profile.dev] debug = true diff --git a/example-streamer-uses/Cargo.toml b/example-streamer-uses/Cargo.toml index fcb1c09..7f6a0bd 100644 --- a/example-streamer-uses/Cargo.toml +++ b/example-streamer-uses/Cargo.toml @@ -55,6 +55,6 @@ protobuf = { workspace = true } serde = { workspace = true } tokio = { workspace = true } up-rust = { workspace = true } -up-transport-zenoh = { git = "https://github.com/eclipse-uprotocol/up-transport-zenoh-rust.git", rev = "7c839e7a94f526a82027564a609f48a79a3f4eae" } -up-transport-vsomeip = { git = "https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git", rev = "acbb0d0c9b8b48dd35c74f461e97151f1e922000", default-features = false } -zenoh = { version = "0.11.0-rc.3", features = ["unstable"]} +up-transport-zenoh = { version = "0.1.1" } +up-transport-vsomeip = { git = "https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git", tag = "v0.1.0", default-features = false } +zenoh = { version = "1.0.0-alpha.6", features = ["unstable"]} diff --git a/example-streamer-uses/src/bin/me_client.rs b/example-streamer-uses/src/bin/me_client.rs index d6e6c1c..541098a 100644 --- a/example-streamer-uses/src/bin/me_client.rs +++ b/example-streamer-uses/src/bin/me_client.rs @@ -23,12 +23,12 @@ use up_rust::{UListener, UMessage, UMessageBuilder, UStatus, UTransport, UUri}; use up_transport_vsomeip::UPTransportVsomeip; const SERVICE_AUTHORITY: &str = "linux"; -const SERVICE_UE_ID: u16 = 0x1236; +const SERVICE_UE_ID: u32 = 0x1236; const SERVICE_UE_VERSION_MAJOR: u8 = 1; const SERVICE_RESOURCE_ID: u16 = 0x0896; const CLIENT_AUTHORITY: &str = "me_authority"; -const CLIENT_UE_ID: u16 = 0x5678; +const CLIENT_UE_ID: u32 = 0x5678; const CLIENT_UE_VERSION_MAJOR: u8 = 1; const CLIENT_RESOURCE_ID: u16 = 0; @@ -36,6 +36,10 @@ const REQUEST_TTL: u32 = 1000; const REMOTE_AUTHORITY: &str = "linux"; +fn client_uuri() -> UUri { + UUri::try_from_parts(CLIENT_AUTHORITY, CLIENT_UE_ID, CLIENT_UE_VERSION_MAJOR, 0).unwrap() +} + struct ServiceResponseListener; #[async_trait] @@ -53,10 +57,6 @@ impl UListener for ServiceResponseListener { println!("Here we received response: {hello_response:?}"); } - - async fn on_error(&self, err: UStatus) { - println!("ServiceResponseListener: Encountered an error: {err:?}"); - } } #[tokio::main] @@ -75,29 +75,28 @@ async fn main() -> Result<(), UStatus> { // TODO: Add error handling if we fail to create a UPTransportVsomeip let client: Arc = Arc::new( UPTransportVsomeip::new_with_config( - &CLIENT_AUTHORITY.to_string(), + client_uuri(), &REMOTE_AUTHORITY.to_string(), - CLIENT_UE_ID, &vsomeip_config.unwrap(), None, ) .unwrap(), ); - let source = UUri { - authority_name: CLIENT_AUTHORITY.to_string(), - ue_id: CLIENT_UE_ID as u32, - ue_version_major: CLIENT_UE_VERSION_MAJOR as u32, - resource_id: CLIENT_RESOURCE_ID as u32, - ..Default::default() - }; - let sink = UUri { - authority_name: SERVICE_AUTHORITY.to_string(), - ue_id: SERVICE_UE_ID as u32, - ue_version_major: SERVICE_UE_VERSION_MAJOR as u32, - resource_id: SERVICE_RESOURCE_ID as u32, - ..Default::default() - }; + let source = UUri::try_from_parts( + CLIENT_AUTHORITY, + CLIENT_UE_ID, + CLIENT_UE_VERSION_MAJOR, + CLIENT_RESOURCE_ID, + ) + .unwrap(); + let sink = UUri::try_from_parts( + SERVICE_AUTHORITY, + SERVICE_UE_ID, + SERVICE_UE_VERSION_MAJOR, + SERVICE_RESOURCE_ID, + ) + .unwrap(); let service_response_listener: Arc = Arc::new(ServiceResponseListener); client diff --git a/example-streamer-uses/src/bin/me_publisher.rs b/example-streamer-uses/src/bin/me_publisher.rs index 08c9be0..f038ad4 100644 --- a/example-streamer-uses/src/bin/me_publisher.rs +++ b/example-streamer-uses/src/bin/me_publisher.rs @@ -24,12 +24,22 @@ use up_rust::{UMessageBuilder, UStatus, UTransport, UUri}; use up_transport_vsomeip::UPTransportVsomeip; const PUB_TOPIC_AUTHORITY: &str = "me_authority"; -const PUB_TOPIC_UE_ID: u16 = 0x5BA0; +const PUB_TOPIC_UE_ID: u32 = 0x5BA0; const PUB_TOPIC_UE_VERSION_MAJOR: u8 = 1; const PUB_TOPIC_RESOURCE_ID: u16 = 0x8001; const REMOTE_AUTHORITY: &str = "linux"; +fn publisher_uuri() -> UUri { + UUri::try_from_parts( + PUB_TOPIC_AUTHORITY, + PUB_TOPIC_UE_ID, + PUB_TOPIC_UE_VERSION_MAJOR, + 0, + ) + .unwrap() +} + #[tokio::main] async fn main() -> Result<(), UStatus> { env_logger::init(); @@ -43,25 +53,23 @@ async fn main() -> Result<(), UStatus> { trace!("vsomeip_config: {vsomeip_config:?}"); // There will be a single vsomeip_transport, as there is a connection into device and a streamer - // TODO: Add error handling if we fail to create a UPTransportVsomeip let publisher: Arc = Arc::new( UPTransportVsomeip::new_with_config( - &PUB_TOPIC_AUTHORITY.to_string(), + publisher_uuri(), &REMOTE_AUTHORITY.to_string(), - PUB_TOPIC_UE_ID, &vsomeip_config.unwrap(), None, ) .unwrap(), ); - let source = UUri { - authority_name: PUB_TOPIC_AUTHORITY.to_string(), - ue_id: PUB_TOPIC_UE_ID as u32, - ue_version_major: PUB_TOPIC_UE_VERSION_MAJOR as u32, - resource_id: PUB_TOPIC_RESOURCE_ID as u32, - ..Default::default() - }; + let source = UUri::try_from_parts( + PUB_TOPIC_AUTHORITY, + PUB_TOPIC_UE_ID, + PUB_TOPIC_UE_VERSION_MAJOR, + PUB_TOPIC_RESOURCE_ID, + ) + .unwrap(); loop { tokio::time::sleep(Duration::from_millis(1000)).await; diff --git a/example-streamer-uses/src/bin/me_service.rs b/example-streamer-uses/src/bin/me_service.rs index 0498780..8c016d5 100644 --- a/example-streamer-uses/src/bin/me_service.rs +++ b/example-streamer-uses/src/bin/me_service.rs @@ -23,12 +23,22 @@ use up_rust::{UListener, UMessage, UMessageBuilder, UStatus, UTransport, UUri}; use up_transport_vsomeip::UPTransportVsomeip; const SERVICE_AUTHORITY: &str = "me_authority"; -const SERVICE_UE_ID: u16 = 0x4321; +const SERVICE_UE_ID: u32 = 0x4321; const SERVICE_UE_VERSION_MAJOR: u8 = 1; const SERVICE_RESOURCE_ID: u16 = 0x0421; const REMOTE_AUTHORITY: &str = "linux"; +fn service_uuri() -> UUri { + UUri::try_from_parts( + SERVICE_AUTHORITY, + SERVICE_UE_ID, + SERVICE_UE_VERSION_MAJOR, + 0, + ) + .unwrap() +} + struct ServiceRequestResponder { client: Arc, } @@ -66,10 +76,6 @@ impl UListener for ServiceRequestResponder { .unwrap(); self.client.send(response_msg).await.unwrap(); } - - async fn on_error(&self, err: UStatus) { - println!("ServiceRequestResponder: Encountered an error: {err:?}"); - } } #[tokio::main] @@ -88,32 +94,24 @@ async fn main() -> Result<(), UStatus> { // TODO: Add error handling if we fail to create a UPTransportVsomeip let service: Arc = Arc::new( UPTransportVsomeip::new_with_config( - &SERVICE_AUTHORITY.to_string(), + service_uuri(), &REMOTE_AUTHORITY.to_string(), - SERVICE_UE_ID, &vsomeip_config.unwrap(), None, ) .unwrap(), ); - let source_filter = UUri { - authority_name: "*".to_string(), - ue_id: 0x0000_FFFF, - ue_version_major: 0xFF, - resource_id: 0xFFFF, - ..Default::default() - }; - let sink_filter = UUri { - authority_name: SERVICE_AUTHORITY.to_string(), - ue_id: SERVICE_UE_ID as u32, - ue_version_major: SERVICE_UE_VERSION_MAJOR as u32, - resource_id: SERVICE_RESOURCE_ID as u32, - ..Default::default() - }; + let source_filter = UUri::any(); + let sink_filter = UUri::try_from_parts( + SERVICE_AUTHORITY, + SERVICE_UE_ID, + SERVICE_UE_VERSION_MAJOR, + SERVICE_RESOURCE_ID, + ) + .unwrap(); let service_request_responder: Arc = Arc::new(ServiceRequestResponder::new(service.clone())); - // TODO: Need to revisit how the vsomeip config file is used in non point-to-point cases service .register_listener( &source_filter, diff --git a/example-streamer-uses/src/bin/me_subscriber.rs b/example-streamer-uses/src/bin/me_subscriber.rs index 2f4eefc..5bcc0ea 100644 --- a/example-streamer-uses/src/bin/me_subscriber.rs +++ b/example-streamer-uses/src/bin/me_subscriber.rs @@ -22,16 +22,25 @@ use std::thread; use up_rust::{UListener, UMessage, UStatus, UTransport, UUri}; use up_transport_vsomeip::UPTransportVsomeip; -const SERVICE_AUTHORITY: &str = "me_authority"; -const SERVICE_UE_ID: u16 = 0x1236; - -const REMOTE_AUTHORITY: &str = "linux"; +const SUBSCRIBER_AUTHORITY: &str = "me_authority"; +const SUBSCRIBER_UE_ID: u32 = 0x1236; +const SUBSCRIBER_UE_VERSION_MAJOR: u8 = 1; const PUB_TOPIC_AUTHORITY: &str = "linux"; -const PUB_TOPIC_UE_ID: u16 = 0x3039; +const PUB_TOPIC_UE_ID: u32 = 0x3039; const PUB_TOPIC_UE_VERSION_MAJOR: u8 = 1; const PUB_TOPIC_RESOURCE_ID: u16 = 0x8001; +fn subscriber_uuri() -> UUri { + UUri::try_from_parts( + SUBSCRIBER_AUTHORITY, + SUBSCRIBER_UE_ID, + SUBSCRIBER_UE_VERSION_MAJOR, + 0, + ) + .unwrap() +} + #[allow(dead_code)] struct PublishReceiver; @@ -54,10 +63,6 @@ impl UListener for PublishReceiver { } }; } - - async fn on_error(&self, err: UStatus) { - println!("ServiceRequestResponder: Encountered an error: {err:?}"); - } } #[tokio::main] @@ -76,22 +81,21 @@ async fn main() -> Result<(), UStatus> { // TODO: Add error handling if we fail to create a UPTransportVsomeip let subscriber: Arc = Arc::new( UPTransportVsomeip::new_with_config( - &SERVICE_AUTHORITY.to_string(), - &REMOTE_AUTHORITY.to_string(), - SERVICE_UE_ID, + subscriber_uuri(), + &PUB_TOPIC_AUTHORITY.to_string(), &vsomeip_config.unwrap(), None, ) .unwrap(), ); - let source_filter = UUri { - authority_name: PUB_TOPIC_AUTHORITY.to_string(), - ue_id: PUB_TOPIC_UE_ID as u32, - ue_version_major: PUB_TOPIC_UE_VERSION_MAJOR as u32, - resource_id: PUB_TOPIC_RESOURCE_ID as u32, - ..Default::default() - }; + let source_filter = UUri::try_from_parts( + PUB_TOPIC_AUTHORITY, + PUB_TOPIC_UE_ID, + PUB_TOPIC_UE_VERSION_MAJOR, + PUB_TOPIC_RESOURCE_ID, + ) + .unwrap(); let publish_receiver: Arc = Arc::new(PublishReceiver); // TODO: Need to revisit how the vsomeip config file is used in non point-to-point cases diff --git a/example-streamer-uses/src/bin/ue_client.rs b/example-streamer-uses/src/bin/ue_client.rs index 961c099..bd672e7 100644 --- a/example-streamer-uses/src/bin/ue_client.rs +++ b/example-streamer-uses/src/bin/ue_client.rs @@ -19,21 +19,31 @@ use std::str::FromStr; use std::sync::Arc; use std::time::Duration; use up_rust::{UListener, UMessage, UMessageBuilder, UStatus, UTransport, UUri}; -use up_transport_zenoh::UPClientZenoh; +use up_transport_zenoh::UPTransportZenoh; use zenoh::config::{Config, EndPoint}; const SERVICE_AUTHORITY: &str = "me_authority"; -const SERVICE_UE_ID: u16 = 0x4321; +const SERVICE_UE_ID: u32 = 0x4321; const SERVICE_UE_VERSION_MAJOR: u8 = 1; const SERVICE_RESOURCE_ID: u16 = 0x0421; const CLIENT_AUTHORITY: &str = "linux"; -const CLIENT_UE_ID: u16 = 0x1236; +const CLIENT_UE_ID: u32 = 0x1236; const CLIENT_UE_VERSION_MAJOR: u8 = 1; const CLIENT_RESOURCE_ID: u16 = 0; const REQUEST_TTL: u32 = 1000; +fn client_uuri() -> UUri { + UUri::try_from_parts( + CLIENT_AUTHORITY, + CLIENT_UE_ID, + CLIENT_UE_VERSION_MAJOR, + CLIENT_RESOURCE_ID, + ) + .unwrap() +} + #[derive(Parser, Debug)] #[command(version, about, long_about = None)] struct Args { @@ -59,10 +69,6 @@ impl UListener for ServiceResponseListener { println!("Here we received response: {hello_response:?}"); } - - async fn on_error(&self, err: UStatus) { - println!("ServiceResponseListener: Encountered an error: {err:?}"); - } } #[tokio::main] @@ -73,41 +79,43 @@ async fn main() -> Result<(), UStatus> { println!("uE_client"); - // TODO: Probably make somewhat configurable? - // Create a configuration object let mut zenoh_config = Config::default(); if !args.endpoint.is_empty() { // Specify the address to listen on using IPv4 - let ipv4_endpoint = EndPoint::from_str(args.endpoint.as_str()); + let ipv4_endpoint = + EndPoint::from_str(args.endpoint.as_str()).expect("Unable to set endpoint"); // Add the IPv4 endpoint to the Zenoh configuration zenoh_config .listen - .endpoints - .push(ipv4_endpoint.expect("FAIL")); + .set_endpoints(zenoh::config::ModeDependentValue::Unique(vec![ + ipv4_endpoint, + ])) + .expect("Unable to set Zenoh Config"); } + let client_uri: String = (&client_uuri()).into(); let client: Arc = Arc::new( - UPClientZenoh::new(zenoh_config, "linux".to_string()) + UPTransportZenoh::new(zenoh_config, client_uri) .await .unwrap(), ); - let source = UUri { - authority_name: CLIENT_AUTHORITY.to_string(), - ue_id: CLIENT_UE_ID as u32, - ue_version_major: CLIENT_UE_VERSION_MAJOR as u32, - resource_id: CLIENT_RESOURCE_ID as u32, - ..Default::default() - }; - let sink = UUri { - authority_name: SERVICE_AUTHORITY.to_string(), - ue_id: SERVICE_UE_ID as u32, - ue_version_major: SERVICE_UE_VERSION_MAJOR as u32, - resource_id: SERVICE_RESOURCE_ID as u32, - ..Default::default() - }; + let source = UUri::try_from_parts( + CLIENT_AUTHORITY, + CLIENT_UE_ID, + CLIENT_UE_VERSION_MAJOR, + CLIENT_RESOURCE_ID, + ) + .unwrap(); + let sink = UUri::try_from_parts( + SERVICE_AUTHORITY, + SERVICE_UE_ID, + SERVICE_UE_VERSION_MAJOR, + SERVICE_RESOURCE_ID, + ) + .unwrap(); let service_response_listener: Arc = Arc::new(ServiceResponseListener); client diff --git a/example-streamer-uses/src/bin/ue_publisher.rs b/example-streamer-uses/src/bin/ue_publisher.rs index 9b6802f..0130406 100644 --- a/example-streamer-uses/src/bin/ue_publisher.rs +++ b/example-streamer-uses/src/bin/ue_publisher.rs @@ -20,14 +20,24 @@ use std::str::FromStr; use std::sync::Arc; use std::time::Duration; use up_rust::{UMessageBuilder, UStatus, UTransport, UUri}; -use up_transport_zenoh::UPClientZenoh; +use up_transport_zenoh::UPTransportZenoh; use zenoh::config::{Config, EndPoint}; const PUB_TOPIC_AUTHORITY: &str = "linux"; -const PUB_TOPIC_UE_ID: u16 = 0x3039; +const PUB_TOPIC_UE_ID: u32 = 0x3039; const PUB_TOPIC_UE_VERSION_MAJOR: u8 = 1; const PUB_TOPIC_RESOURCE_ID: u16 = 0x8001; +fn publisher_uuri() -> UUri { + UUri::try_from_parts( + PUB_TOPIC_AUTHORITY, + PUB_TOPIC_UE_ID, + PUB_TOPIC_UE_VERSION_MAJOR, + 0, + ) + .unwrap() +} + #[derive(Parser, Debug)] #[command(version, about, long_about = None)] struct Args { @@ -44,35 +54,36 @@ async fn main() -> Result<(), UStatus> { println!("uE_publisher"); - // TODO: Probably make somewhat configurable? - // Create a configuration object let mut zenoh_config = Config::default(); if !args.endpoint.is_empty() { // Specify the address to listen on using IPv4 - let ipv4_endpoint = EndPoint::from_str(args.endpoint.as_str()); + let ipv4_endpoint = + EndPoint::from_str(args.endpoint.as_str()).expect("Unable to set endpoint"); // Add the IPv4 endpoint to the Zenoh configuration zenoh_config .listen - .endpoints - .push(ipv4_endpoint.expect("FAIL")); + .set_endpoints(zenoh::config::ModeDependentValue::Unique(vec![ + ipv4_endpoint, + ])) + .expect("Unable to set Zenoh Config"); } - // TODO: Add error handling if we fail to create a UPClientZenoh + let publisher_uri: String = (&publisher_uuri()).into(); let publisher: Arc = Arc::new( - UPClientZenoh::new(zenoh_config, "linux".to_string()) + UPTransportZenoh::new(zenoh_config, publisher_uri) .await .unwrap(), ); - let source = UUri { - authority_name: PUB_TOPIC_AUTHORITY.to_string(), - ue_id: PUB_TOPIC_UE_ID as u32, - ue_version_major: PUB_TOPIC_UE_VERSION_MAJOR as u32, - resource_id: PUB_TOPIC_RESOURCE_ID as u32, - ..Default::default() - }; + let source = UUri::try_from_parts( + PUB_TOPIC_AUTHORITY, + PUB_TOPIC_UE_ID, + PUB_TOPIC_UE_VERSION_MAJOR, + PUB_TOPIC_RESOURCE_ID, + ) + .unwrap(); loop { tokio::time::sleep(Duration::from_millis(1000)).await; diff --git a/example-streamer-uses/src/bin/ue_service.rs b/example-streamer-uses/src/bin/ue_service.rs index 7e4156d..d552a92 100644 --- a/example-streamer-uses/src/bin/ue_service.rs +++ b/example-streamer-uses/src/bin/ue_service.rs @@ -20,14 +20,24 @@ use std::str::FromStr; use std::sync::Arc; use std::thread; use up_rust::{UListener, UMessage, UMessageBuilder, UStatus, UTransport, UUri}; -use up_transport_zenoh::UPClientZenoh; +use up_transport_zenoh::UPTransportZenoh; use zenoh::config::{Config, EndPoint}; const SERVICE_AUTHORITY: &str = "linux"; -const SERVICE_UE_ID: u16 = 0x1236; +const SERVICE_UE_ID: u32 = 0x1236; const SERVICE_UE_VERSION_MAJOR: u8 = 1; const SERVICE_RESOURCE_ID: u16 = 0x0896; +fn service_uuri() -> UUri { + UUri::try_from_parts( + SERVICE_AUTHORITY, + SERVICE_UE_ID, + SERVICE_UE_VERSION_MAJOR, + 0, + ) + .unwrap() +} + struct ServiceRequestResponder { client: Arc, } @@ -74,10 +84,6 @@ impl UListener for ServiceRequestResponder { .unwrap(); self.client.send(response_msg).await.unwrap(); } - - async fn on_error(&self, err: UStatus) { - println!("ServiceRequestResponder: Encountered an error: {err:?}"); - } } #[tokio::main] @@ -88,41 +94,37 @@ async fn main() -> Result<(), UStatus> { println!("uE_service"); - // TODO: Probably make somewhat configurable? let mut zenoh_config = Config::default(); if !args.endpoint.is_empty() { // Specify the address to listen on using IPv4 - let ipv4_endpoint = EndPoint::from_str(args.endpoint.as_str()); + let ipv4_endpoint = + EndPoint::from_str(args.endpoint.as_str()).expect("Unable to set endpoint"); // Add the IPv4 endpoint to the Zenoh configuration zenoh_config .listen - .endpoints - .push(ipv4_endpoint.expect("FAIL")); + .set_endpoints(zenoh::config::ModeDependentValue::Unique(vec![ + ipv4_endpoint, + ])) + .expect("Unable to set Zenoh Config"); } - // TODO: Add error handling if we fail to create a UPClientZenoh + let service_uri: String = (&service_uuri()).into(); let service: Arc = Arc::new( - UPClientZenoh::new(zenoh_config, "linux".to_string()) + UPTransportZenoh::new(zenoh_config, service_uri) .await .unwrap(), ); - let source_filter = UUri { - authority_name: "*".to_string(), - ue_id: 0x0000_FFFF, - ue_version_major: 0xFF, - resource_id: 0xFFFF, - ..Default::default() - }; - let sink_filter = UUri { - authority_name: SERVICE_AUTHORITY.to_string(), - ue_id: SERVICE_UE_ID as u32, - ue_version_major: SERVICE_UE_VERSION_MAJOR as u32, - resource_id: SERVICE_RESOURCE_ID as u32, - ..Default::default() - }; + let source_filter = UUri::any(); + let sink_filter = UUri::try_from_parts( + SERVICE_AUTHORITY, + SERVICE_UE_ID, + SERVICE_UE_VERSION_MAJOR, + SERVICE_RESOURCE_ID, + ) + .unwrap(); let service_request_responder: Arc = Arc::new(ServiceRequestResponder::new(service.clone())); diff --git a/example-streamer-uses/src/bin/ue_subscriber.rs b/example-streamer-uses/src/bin/ue_subscriber.rs index 2222f96..5b8d6b2 100644 --- a/example-streamer-uses/src/bin/ue_subscriber.rs +++ b/example-streamer-uses/src/bin/ue_subscriber.rs @@ -20,14 +20,28 @@ use std::str::FromStr; use std::sync::Arc; use std::thread; use up_rust::{UListener, UMessage, UStatus, UTransport, UUri}; -use up_transport_zenoh::UPClientZenoh; +use up_transport_zenoh::UPTransportZenoh; use zenoh::config::{Config, EndPoint}; const PUB_TOPIC_AUTHORITY: &str = "me_authority"; -const PUB_TOPIC_UE_ID: u16 = 0x5BA0; +const PUB_TOPIC_UE_ID: u32 = 0x5BA0; const PUB_TOPIC_UE_VERSION_MAJOR: u8 = 1; const PUB_TOPIC_RESOURCE_ID: u16 = 0x8001; +const SUB_TOPIC_AUTHORITY: &str = "linux"; +const SUB_TOPIC_UE_ID: u32 = 0x5BB0; +const SUB_TOPIC_UE_VERSION_MAJOR: u8 = 1; + +fn subscriber_uuri() -> UUri { + UUri::try_from_parts( + SUB_TOPIC_AUTHORITY, + SUB_TOPIC_UE_ID, + SUB_TOPIC_UE_VERSION_MAJOR, + 0, + ) + .unwrap() +} + #[allow(dead_code)] struct PublishReceiver; @@ -56,10 +70,6 @@ impl UListener for PublishReceiver { } }; } - - async fn on_error(&self, err: UStatus) { - println!("ServiceRequestResponder: Encountered an error: {err:?}"); - } } #[tokio::main] @@ -70,38 +80,38 @@ async fn main() -> Result<(), UStatus> { println!("uE_subscriber"); - // TODO: Probably make somewhat configurable? - // Create a configuration object let mut zenoh_config = Config::default(); if !args.endpoint.is_empty() { // Specify the address to listen on using IPv4 - let ipv4_endpoint = EndPoint::from_str(args.endpoint.as_str()); + let ipv4_endpoint = + EndPoint::from_str(args.endpoint.as_str()).expect("Unable to set endpoint"); // Add the IPv4 endpoint to the Zenoh configuration zenoh_config .listen - .endpoints - .push(ipv4_endpoint.expect("FAIL")); + .set_endpoints(zenoh::config::ModeDependentValue::Unique(vec![ + ipv4_endpoint, + ])) + .expect("Unable to set Zenoh Config"); } - // TODO: Add error handling if we fail to create a UPClientZenoh + let subscriber_uri: String = (&subscriber_uuri()).into(); let subscriber: Arc = Arc::new( - UPClientZenoh::new(zenoh_config, "linux".to_string()) + UPTransportZenoh::new(zenoh_config, subscriber_uri) .await .unwrap(), ); - let source_filter = UUri { - authority_name: PUB_TOPIC_AUTHORITY.to_string(), - ue_id: PUB_TOPIC_UE_ID as u32, - ue_version_major: PUB_TOPIC_UE_VERSION_MAJOR as u32, - resource_id: PUB_TOPIC_RESOURCE_ID as u32, - ..Default::default() - }; + let source_filter = UUri::try_from_parts( + PUB_TOPIC_AUTHORITY, + PUB_TOPIC_UE_ID, + PUB_TOPIC_UE_VERSION_MAJOR, + PUB_TOPIC_RESOURCE_ID, + ) + .unwrap(); let publish_receiver: Arc = Arc::new(PublishReceiver); - // TODO: Need to revisit how the vsomeip config file is used in non point-to-point cases subscriber .register_listener(&source_filter, None, publish_receiver.clone()) .await?; diff --git a/up-linux-streamer-plugin/Cargo.toml b/up-linux-streamer-plugin/Cargo.toml index 8e8ad88..9f183be 100644 --- a/up-linux-streamer-plugin/Cargo.toml +++ b/up-linux-streamer-plugin/Cargo.toml @@ -43,15 +43,15 @@ tracing = { version = "0.1" } serde = { version = "1.0.154" } serde_json = { version = "1.0.94" } tokio = { version = "1.35.1", default-features = false } -up-rust = { git = "https://github.com/eclipse-uprotocol/up-rust", rev = "3a50104421a801d52e1d9c68979db54c013ce43d" } -up-transport-zenoh = { git = "https://github.com/eclipse-uprotocol/up-transport-zenoh-rust.git", rev = "b977153265d22c4bb4bbbc20dea403342b9ab438" } -up-transport-vsomeip = { git = "https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git", rev = "acbb0d0c9b8b48dd35c74f461e97151f1e922000", default-features = false } +up-rust = { workspace = true } +up-transport-zenoh = { version = "0.1.1" } +up-transport-vsomeip = { git = "https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git", tag = "v0.1.0", default-features = false } up-streamer = { path = "../up-streamer" } usubscription-static-file = {path = "../utils/usubscription-static-file"} -zenoh = { version = "0.11.0-rc.3", features = ["plugins", "unstable"] } -zenoh-core = { version = "0.11.0-rc.3" } -zenoh-plugin-trait = { version = "0.11.0-rc.3" } -zenoh-result = { version = "0.11.0-rc.3" } -zenoh-util = { version = "0.11.0-rc.3" } -zenoh_backend_traits = { version = "0.11.0-rc.3" } +zenoh = { version = "1.0.0-alpha.6", features = ["unstable", "internal", "plugins"]} +zenoh-core = { version = "1.0.0-alpha.6" } +zenoh-plugin-trait = { version = "1.0.0-alpha.6" } +zenoh-result = { version = "1.0.0-alpha.6" } +zenoh-util = { version = "1.0.0-alpha.6" } +zenoh_backend_traits = { version = "1.0.0-alpha.6" } env_logger = "0.10.2" diff --git a/up-linux-streamer-plugin/DEFAULT_CONFIG.json5 b/up-linux-streamer-plugin/DEFAULT_CONFIG.json5 index a96a6d7..6523423 100644 --- a/up-linux-streamer-plugin/DEFAULT_CONFIG.json5 +++ b/up-linux-streamer-plugin/DEFAULT_CONFIG.json5 @@ -13,6 +13,17 @@ // Lower numbers mean that some messages will be dropped message_queue_size: 10000 }, + streamer_uuri: { + // Determines the authority_name of the host device + // Used when initializing host transport + authority: "linux", + // Determines the ue_id of the streamer + // Used when initializing host transport + ue_id: 78, + // Determines the ue_version_major of the streamer + // Used when initializing host transport + ue_version_major: 1 + }, usubscription_config: { // Lists the path to the subscription file when using static file file_path: "usubscription-static-configs/testdata.json" @@ -20,10 +31,7 @@ // Configurations related to the host device we are running the streamer on host_config: { // Determines which transport to initialize for the host device - transport: "Zenoh", - // Determines the authority_name of the host device - // Used when initializing host transport - authority: "linux" + transport: "Zenoh" }, someip_config: { // Determines the authority_name of the mechatronics network diff --git a/up-linux-streamer-plugin/src/config.rs b/up-linux-streamer-plugin/src/config.rs index e2563bf..438df85 100644 --- a/up-linux-streamer-plugin/src/config.rs +++ b/up-linux-streamer-plugin/src/config.rs @@ -19,6 +19,7 @@ use std::path::PathBuf; pub struct Config { pub(crate) __required__: bool, pub(crate) up_streamer_config: UpStreamerConfig, + pub(crate) streamer_uuri: StreamerUuri, pub(crate) usubscription_config: USubscriptionConfig, pub(crate) host_config: HostConfig, pub(crate) someip_config: SomeipConfig, @@ -30,6 +31,14 @@ pub struct UpStreamerConfig { pub(crate) message_queue_size: u16, } +#[derive(Deserialize, Serialize, Debug, Clone)] +#[serde(deny_unknown_fields)] +pub struct StreamerUuri { + pub(crate) authority: String, + pub(crate) ue_id: u32, + pub(crate) ue_version_major: u8, +} + #[derive(Deserialize, Serialize, Debug, Clone)] #[serde(deny_unknown_fields)] pub struct USubscriptionConfig { @@ -40,7 +49,6 @@ pub struct USubscriptionConfig { #[serde(deny_unknown_fields)] pub struct HostConfig { pub(crate) transport: HostTransport, - pub(crate) authority: String, } #[derive(Deserialize, Serialize, Debug, Clone)] diff --git a/up-linux-streamer-plugin/src/lib.rs b/up-linux-streamer-plugin/src/lib.rs index b113dd3..7863a46 100644 --- a/up-linux-streamer-plugin/src/lib.rs +++ b/up-linux-streamer-plugin/src/lib.rs @@ -22,19 +22,20 @@ use crate::config::HostTransport; use async_std::task; use config::Config; use std::env; +use std::str::FromStr; use std::sync::{ atomic::{AtomicBool, Ordering::Relaxed}, Arc, Mutex, }; use std::time::Duration; use tracing::trace; -use up_rust::UTransport; +use up_rust::{UTransport, UUri}; use up_streamer::{Endpoint, UStreamer}; use up_transport_vsomeip::UPTransportVsomeip; -use up_transport_zenoh::UPClientZenoh; +use up_transport_zenoh::UPTransportZenoh; use usubscription_static_file::USubscriptionStaticFile; -use zenoh::plugins::{RunningPluginTrait, ZenohPlugin}; -use zenoh::runtime::Runtime; +use zenoh::internal::plugins::{RunningPluginTrait, ZenohPlugin}; +use zenoh::internal::runtime::Runtime; use zenoh_core::zlock; use zenoh_plugin_trait::{plugin_long_version, plugin_version, Plugin, PluginControl}; use zenoh_result::{zerror, ZResult}; @@ -49,7 +50,7 @@ zenoh_plugin_trait::declare_plugin!(UpLinuxStreamerPlugin); impl ZenohPlugin for UpLinuxStreamerPlugin {} impl Plugin for UpLinuxStreamerPlugin { type StartArgs = Runtime; - type Instance = zenoh::plugins::RunningPlugin; + type Instance = zenoh::internal::plugins::RunningPlugin; // A mandatory const to define, in case of the plugin is built as a standalone executable const DEFAULT_NAME: &'static str = "up_linux_streamer"; @@ -145,17 +146,32 @@ async fn run(runtime: Runtime, config: Config, flag: Arc) { Err(error) => panic!("Failed to create uStreamer: {}", error), }; + let streamer_uuri = UUri::try_from_parts( + &config.streamer_uuri.authority, + config.streamer_uuri.ue_id, + config.streamer_uuri.ue_version_major, + 0, + ) + .expect("Unable to form streamer_uuri"); + + trace!("streamer_uuri: {streamer_uuri:#?}"); + let streamer_uri: String = (&streamer_uuri).into(); + // TODO: Remove this once the error reporting from UPTransportZenoh no longer "hides" + // the underlying reason for the failure on converting uri -> UUri + trace!("streamer_uri: {streamer_uri}"); + let _zenoh_internal_uuri = UUri::from_str(&streamer_uri).map_err(|e| { + let msg = format!("Unable to transform the uri to UUri, e: {e:?}"); + panic!("{msg}"); + }); let host_transport: Arc = Arc::new(match config.host_config.transport { - HostTransport::Zenoh => { - UPClientZenoh::new_with_runtime(runtime.clone(), config.host_config.authority.clone()) - .await - .expect("Unable to initialize Zenoh UTransport") - } // other host transports can be added here as they become available + HostTransport::Zenoh => UPTransportZenoh::new_with_runtime(runtime.clone(), streamer_uri) + .await + .expect("Unable to initialize Zenoh UTransport"), // other host transports can be added here as they become available }); let host_endpoint = Endpoint::new( "host_endpoint", - &config.host_config.authority, + &config.streamer_uuri.authority, host_transport.clone(), ); @@ -174,14 +190,21 @@ async fn run(runtime: Runtime, config: Config, flag: Arc) { ); } + let host_uuri = UUri::try_from_parts( + &config.streamer_uuri.authority, + config + .someip_config + .default_someip_application_id_for_someip_subscriptions as u32, + 1, + 0, + ) + .expect("Unable to make host_uuri"); + // There will be at most one vsomeip_transport, as there is a connection into device and a streamer let someip_transport: Arc = Arc::new( UPTransportVsomeip::new_with_config( - &config.host_config.authority, + host_uuri, &config.someip_config.authority, - config - .someip_config - .default_someip_application_id_for_someip_subscriptions, &someip_config_file_abs_path, None, ) diff --git a/up-linux-streamer/Cargo.toml b/up-linux-streamer/Cargo.toml index b451093..352b783 100644 --- a/up-linux-streamer/Cargo.toml +++ b/up-linux-streamer/Cargo.toml @@ -35,9 +35,9 @@ serde = { workspace = true } tokio = { workspace = true } up-rust = { workspace = true } up-streamer = { path = "../up-streamer" } -up-transport-zenoh = { git = "https://github.com/eclipse-uprotocol/up-transport-zenoh-rust.git", rev = "7c839e7a94f526a82027564a609f48a79a3f4eae" } -up-transport-vsomeip = { git = "https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git", rev = "acbb0d0c9b8b48dd35c74f461e97151f1e922000", default-features = false } -zenoh = { version = "0.11.0-rc.3", features = ["unstable"]} +up-transport-zenoh = { version = "0.1.1" } +up-transport-vsomeip = { git = "https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git", tag = "v0.1.0", default-features = false } +zenoh = { version = "1.0.0-alpha.6", features = ["unstable"]} usubscription-static-file = {path = "../utils/usubscription-static-file"} [dev-dependencies] diff --git a/up-linux-streamer/DEFAULT_CONFIG.json5 b/up-linux-streamer/DEFAULT_CONFIG.json5 index 2e55c1f..83d97e9 100644 --- a/up-linux-streamer/DEFAULT_CONFIG.json5 +++ b/up-linux-streamer/DEFAULT_CONFIG.json5 @@ -8,6 +8,17 @@ // Lower numbers mean that some messages will be dropped message_queue_size: 10000 }, + streamer_uuri: { + // Determines the authority_name of the host device + // Used when initializing host transport + authority: "linux", + // Determines the ue_id of the streamer + // Used when initializing host transport + ue_id: 78, + // Determines the ue_version_major of the streamer + // Used when initializing host transport + ue_version_major: 1 + }, usubscription_config: { // Lists the path to the subscription file when using static file file_path: "./utils/usubscription-static-file/static-configs/testdata.json" @@ -20,9 +31,6 @@ host_config: { // Determines which transport to initialize for the host device transport: "Zenoh", - // Determines the authority_name of the host device - // Used when initializing host transport - authority: "linux" }, someip_config: { // Determines the authority_name of the mechatronics network diff --git a/up-linux-streamer/src/config.rs b/up-linux-streamer/src/config.rs index 7056088..f722d34 100644 --- a/up-linux-streamer/src/config.rs +++ b/up-linux-streamer/src/config.rs @@ -18,6 +18,7 @@ use std::path::PathBuf; #[serde(deny_unknown_fields)] pub struct Config { pub(crate) up_streamer_config: UpStreamerConfig, + pub(crate) streamer_uuri: StreamerUuri, pub(crate) usubscription_config: USubscriptionConfig, pub(crate) zenoh_transport_config: ZenohTransportConfig, pub(crate) host_config: HostConfig, @@ -30,6 +31,14 @@ pub struct UpStreamerConfig { pub(crate) message_queue_size: u16, } +#[derive(Deserialize, Serialize, Debug, Clone)] +#[serde(deny_unknown_fields)] +pub struct StreamerUuri { + pub(crate) authority: String, + pub(crate) ue_id: u32, + pub(crate) ue_version_major: u8, +} + #[derive(Deserialize, Serialize, Debug, Clone)] #[serde(deny_unknown_fields)] pub struct USubscriptionConfig { @@ -40,7 +49,6 @@ pub struct USubscriptionConfig { #[serde(deny_unknown_fields)] pub struct HostConfig { pub(crate) transport: HostTransport, - pub(crate) authority: String, } #[derive(Deserialize, Serialize, Debug, Clone)] diff --git a/up-linux-streamer/src/main.rs b/up-linux-streamer/src/main.rs index b6853c9..329bd84 100644 --- a/up-linux-streamer/src/main.rs +++ b/up-linux-streamer/src/main.rs @@ -15,15 +15,16 @@ mod config; use crate::config::{Config, HostTransport}; use clap::Parser; -use log::trace; +use log::{error, trace}; use std::fs::File; use std::io::Read; +use std::str::FromStr; use std::sync::Arc; use std::{env, thread}; -use up_rust::{UCode, UStatus, UTransport}; +use up_rust::{UCode, UStatus, UTransport, UUri}; use up_streamer::{Endpoint, UStreamer}; use up_transport_vsomeip::UPTransportVsomeip; -use up_transport_zenoh::UPClientZenoh; +use up_transport_zenoh::UPTransportZenoh; use usubscription_static_file::USubscriptionStaticFile; use zenoh::config::Config as ZenohConfig; @@ -79,17 +80,34 @@ async fn main() -> Result<(), UStatus> { } }; + let streamer_uuri = UUri::try_from_parts( + &config.streamer_uuri.authority, + config.streamer_uuri.ue_id, + config.streamer_uuri.ue_version_major, + 0, + ) + .expect("Unable to form streamer_uuri"); + + trace!("streamer_uuri: {streamer_uuri:#?}"); + let streamer_uri: String = (&streamer_uuri).into(); + // TODO: Remove this once the error reporting from UPTransportZenoh no longer "hides" + // the underlying reason for the failure on converting uri -> UUri + trace!("streamer_uri: {streamer_uri}"); + let _zenoh_internal_uuri = UUri::from_str(&streamer_uri).map_err(|e| { + let msg = format!("Unable to transform the uri to UUri, e: {e:?}"); + error!("{msg}"); + UStatus::fail_with_code(UCode::INVALID_ARGUMENT, msg) + })?; + let host_transport: Arc = Arc::new(match config.host_config.transport { - HostTransport::Zenoh => { - UPClientZenoh::new(zenoh_config, config.host_config.authority.clone()) - .await - .expect("Unable to initialize Zenoh UTransport") - } // other host transports can be added here as they become available + HostTransport::Zenoh => UPTransportZenoh::new(zenoh_config, streamer_uri) + .await + .expect("Unable to initialize Zenoh UTransport"), // other host transports can be added here as they become available }); let host_endpoint = Endpoint::new( "host_endpoint", - &config.host_config.authority, + &config.streamer_uuri.authority, host_transport.clone(), ); @@ -110,14 +128,21 @@ async fn main() -> Result<(), UStatus> { ); } + let host_uuri = UUri::try_from_parts( + &config.streamer_uuri.authority, + config + .someip_config + .default_someip_application_id_for_someip_subscriptions as u32, + 1, + 0, + ) + .expect("Unable to make host_uuri"); + // There will be at most one vsomeip_transport, as there is a connection into device and a streamer let someip_transport: Arc = Arc::new( UPTransportVsomeip::new_with_config( - &config.host_config.authority, + host_uuri, &config.someip_config.authority, - config - .someip_config - .default_someip_application_id_for_someip_subscriptions, &someip_config_file_abs_path, None, ) diff --git a/up-streamer/src/endpoint.rs b/up-streamer/src/endpoint.rs index 52ab6ee..1eccfdd 100644 --- a/up-streamer/src/endpoint.rs +++ b/up-streamer/src/endpoint.rs @@ -32,7 +32,7 @@ const ENDPOINT_FN_NEW_TAG: &str = "new():"; /// /// # pub mod up_client_foo { /// # use std::sync::Arc; -/// # use up_rust::{UMessage, UTransport, UStatus, UUIDBuilder, UUri, UListener}; +/// # use up_rust::{UMessage, UTransport, UStatus, UUri, UListener}; /// # use async_trait::async_trait; /// # pub struct UPClientFoo; /// # diff --git a/up-streamer/src/ustreamer.rs b/up-streamer/src/ustreamer.rs index d420be5..a7bfff7 100644 --- a/up-streamer/src/ustreamer.rs +++ b/up-streamer/src/ustreamer.rs @@ -27,7 +27,7 @@ use std::str; use std::thread; use subscription_cache::SubscriptionCache; use up_rust::core::usubscription::{FetchSubscriptionsRequest, SubscriberInfo, USubscription}; -use up_rust::{UCode, UListener, UMessage, UPayloadFormat, UStatus, UTransport, UUIDBuilder, UUri}; +use up_rust::{UCode, UListener, UMessage, UPayloadFormat, UStatus, UTransport, UUri, UUID}; const USTREAMER_TAG: &str = "UStreamer:"; const USTREAMER_FN_NEW_TAG: &str = "new():"; @@ -366,7 +366,7 @@ impl ForwardingListeners { /// # pub mod up_client_foo { /// # use std::sync::Arc; /// use async_trait::async_trait; -/// # use up_rust::{UListener, UMessage, UStatus, UUIDBuilder, UUri}; +/// # use up_rust::{UListener, UMessage, UStatus, UUri}; /// # use up_rust::UTransport; /// # /// # pub struct UPClientFoo; @@ -418,7 +418,7 @@ impl ForwardingListeners { /// # pub mod up_client_bar { /// # use std::sync::Arc; /// # use async_trait::async_trait; -/// # use up_rust::{UListener, UMessage, UStatus, UTransport, UUIDBuilder, UUri}; +/// # use up_rust::{UListener, UMessage, UStatus, UTransport, UUri}; /// # pub struct UPClientBar; /// # /// # #[async_trait] @@ -846,7 +846,7 @@ impl TransportForwarder { thread::spawn(|| { task::block_on(Self::message_forwarding_loop( - UUIDBuilder::build().to_hyphenated_string(), + UUID::build().to_hyphenated_string(), out_transport_clone, message_receiver_clone, )) @@ -889,7 +889,6 @@ impl TransportForwarder { const FORWARDING_LISTENER_TAG: &str = "ForwardingListener:"; const FORWARDING_LISTENER_FN_ON_RECEIVE_TAG: &str = "on_receive():"; -const FORWARDING_LISTENER_FN_ON_ERROR_TAG: &str = "on_error():"; #[derive(Clone)] pub(crate) struct ForwardingListener { @@ -931,7 +930,6 @@ impl UListener for ForwardingListener { ); return; } - if let Err(e) = self.sender.send(Arc::new(msg)).await { error!( "{}:{}:{} Unable to send message to worker pool: {e:?}", @@ -939,13 +937,6 @@ impl UListener for ForwardingListener { ); } } - - async fn on_error(&self, err: UStatus) { - error!( - "{}:{}:{} Received error instead of message from UTransport, with error: {err:?}", - self.forwarding_id, FORWARDING_LISTENER_TAG, FORWARDING_LISTENER_FN_ON_ERROR_TAG - ); - } } #[cfg(test)] diff --git a/utils/integration-test-utils/src/integration_test_listeners.rs b/utils/integration-test-utils/src/integration_test_listeners.rs index 4a3435c..8e5be2b 100644 --- a/utils/integration-test-utils/src/integration_test_listeners.rs +++ b/utils/integration-test-utils/src/integration_test_listeners.rs @@ -15,7 +15,7 @@ use async_std::sync::Mutex; use async_trait::async_trait; use log::debug; use std::sync::Arc; -use up_rust::{UListener, UMessage, UStatus}; +use up_rust::{UListener, UMessage}; #[derive(Clone)] pub struct LocalClientListener { @@ -40,10 +40,6 @@ impl UListener for LocalClientListener { self.message_store.lock().await.push(msg.clone()); debug!("within local_client_listener! msg: {:?}", msg); } - - async fn on_error(&self, err: UStatus) { - debug!("within local_client_listener! err: {:?}", err); - } } impl Default for LocalClientListener { @@ -75,10 +71,6 @@ impl UListener for RemoteClientListener { self.message_store.lock().await.push(msg.clone()); debug!("within remote_client_listener! msg: {:?}", msg); } - - async fn on_error(&self, err: UStatus) { - debug!("within remote_client_listener! err: {:?}", err); - } } impl Default for RemoteClientListener { diff --git a/utils/integration-test-utils/src/integration_test_utils.rs b/utils/integration-test-utils/src/integration_test_utils.rs index d6bd67d..bfc5892 100644 --- a/utils/integration-test-utils/src/integration_test_utils.rs +++ b/utils/integration-test-utils/src/integration_test_utils.rs @@ -16,15 +16,12 @@ use async_broadcast::{Receiver, Sender}; use async_std::sync::{Condvar, Mutex}; use async_std::task; use log::{debug, error}; -use rand::random; use std::collections::HashMap; use std::sync::atomic::{AtomicU64, Ordering}; use std::sync::Arc; use std::thread::JoinHandle; use std::time::{Duration, Instant}; -use up_rust::{UListener, UMessage, UStatus, UTransport, UUIDBuilder, UUri}; - -const CLEAR_RAND_B: u64 = 0x6000_0000_0000_0000; +use up_rust::{UListener, UMessage, UStatus, UTransport, UUri, UUID}; pub type Signal = Arc<(Mutex, Condvar)>; @@ -58,41 +55,46 @@ pub async fn check_send_receive_message_discrepancy( } } +// TODO: Fix this function to work with UUIDv7 pub async fn check_messages_in_order(messages: Arc>>) { let messages = messages.lock().await; if messages.is_empty() { return; } - // Step 1: Group messages by id.lsb - let mut grouped_messages: HashMap> = HashMap::new(); + // Step 1: Group messages by source UUri + #[allow(clippy::mutable_key_type)] + let mut grouped_messages: HashMap> = HashMap::new(); for msg in messages.iter() { - let lsb = msg.attributes.as_ref().unwrap().id.lsb; - grouped_messages.entry(lsb).or_default().push(msg); + let source_uuri = msg + .attributes + .as_ref() + .unwrap() + .source + .as_ref() + .unwrap() + .clone(); + grouped_messages.entry(source_uuri).or_default().push(msg); } - // Step 2: Check each group for strict increasing order of id.msb - for (lsb, group) in grouped_messages { - debug!("lsb: {lsb}"); + // Step 2: Check each group for strict increasing order of id.msb first 48 bytes + for (source_uuri, group) in grouped_messages { + debug!("source_uuri: {source_uuri}"); if let Some(first_msg) = group.first() { - let mut prev_msb = first_msg.attributes.as_ref().unwrap().id.msb; + let mut prev_timestamp = first_msg.attributes.as_ref().unwrap().id.msb >> 16; for msg in group.iter().skip(1) { - let curr_msb = msg.attributes.as_ref().unwrap().id.msb; - debug!("prev_msb: {prev_msb}, curr_msb: {curr_msb}"); - if curr_msb <= prev_msb { - panic!("!! -- Message ordering issue for lsb: {} -- !!", lsb); + let curr_timestamp = msg.attributes.as_ref().unwrap().id.msb >> 16; + debug!("prev_timestamp: {prev_timestamp}, curr_timestamp: {curr_timestamp}"); + // relaxing to < instead of <= since we now do not have the counter for tie breaker + if curr_timestamp < prev_timestamp { + panic!("!! -- Message ordering issue for source_uuri: {} with prev_timestamp: {} and curr_timestamp: {}-- !!", source_uuri, prev_timestamp, curr_timestamp); } - prev_msb = curr_msb; + prev_timestamp = curr_timestamp; } } } } -#[inline(always)] -fn override_lsb_rand_b(lsb: u64, new_rand_b: u64) -> u64 { - lsb & CLEAR_RAND_B | new_rand_b -} - pub async fn wait_for_pause(signal: Signal) { let (lock, cvar) = &*signal; let mut has_paused = lock.lock().await; @@ -251,7 +253,6 @@ async fn poll_for_new_command( async fn send_message_set( client: &UPClientFoo, name: &str, - client_rand_b: u64, msg_type: &str, msg_set: &mut [UMessage], active_connection_listing: &ActiveConnections, @@ -260,11 +261,8 @@ async fn send_message_set( ) { for (index, msg) in &mut msg_set.iter_mut().enumerate() { if let Some(attributes) = msg.attributes.as_mut() { - let new_id = UUIDBuilder::build(); + let new_id = UUID::build(); attributes.id.0 = Some(Box::new(new_id)); - let uuid = attributes.id.as_mut().unwrap(); - let lsb = &mut uuid.lsb; - *lsb = override_lsb_rand_b(*lsb, client_rand_b); } debug!( @@ -303,8 +301,6 @@ pub async fn run_client( let mut sent_messages = Vec::with_capacity(client_history.sent_message_vec_capacity); - let client_rand_b = random::() >> 2; - loop { debug!("top of loop"); @@ -329,7 +325,6 @@ pub async fn run_client( send_message_set( &client, &client_configuration.name, - client_rand_b, "Notification", &mut client_messages.notification_msgs, &active_connection_listing, @@ -340,7 +335,6 @@ pub async fn run_client( send_message_set( &client, &client_configuration.name, - client_rand_b, "Request", &mut client_messages.request_msgs, &active_connection_listing, @@ -351,7 +345,6 @@ pub async fn run_client( send_message_set( &client, &client_configuration.name, - client_rand_b, "Response", &mut client_messages.response_msgs, &active_connection_listing,