diff --git a/Cargo.lock b/Cargo.lock index ba0ccc9..641b919 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -39,9 +39,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.53" +version = "1.0.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" +checksum = "7a99269dff3bc004caa411f38845c20303f1e393ca2bd6581576fa3a7f59577d" [[package]] name = "aquatic" @@ -59,10 +59,10 @@ name = "aquatic_cli_helpers" version = "0.1.0" dependencies = [ "anyhow", + "aquatic_toml_config", "serde", "simplelog", "toml", - "toml_config", ] [[package]] @@ -71,8 +71,9 @@ version = "0.1.0" dependencies = [ "ahash", "anyhow", + "aquatic_toml_config", "arc-swap", - "hashbrown 0.11.2", + "hashbrown 0.12.0", "hex", "hwloc", "indexmap-amortized", @@ -81,7 +82,6 @@ dependencies = [ "privdrop", "rand", "serde", - "toml_config", ] [[package]] @@ -92,17 +92,17 @@ dependencies = [ "aquatic_cli_helpers", "aquatic_common", "aquatic_http_protocol", + "aquatic_toml_config", "cfg-if", "either", "futures-lite", "futures-rustls", - "glommio 0.6.0 (git+https://github.com/DataDog/glommio.git?rev=4e6b14772da2f4325271fbcf12d24cf91ed466e5)", + "glommio", "itoa 1.0.1", "log", "memchr", "mimalloc", "once_cell", - "parking_lot", "privdrop", "quickcheck", "quickcheck_macros", @@ -112,7 +112,6 @@ dependencies = [ "signal-hook", "slab", "smartstring", - "toml_config", ] [[package]] @@ -123,9 +122,10 @@ dependencies = [ "aquatic_cli_helpers", "aquatic_common", "aquatic_http_protocol", + "aquatic_toml_config", "futures-lite", - "glommio 0.6.0 (git+https://github.com/DataDog/glommio.git?rev=4e6b14772da2f4325271fbcf12d24cf91ed466e5)", - "hashbrown 0.11.2", + "glommio", + "hashbrown 0.12.0", "log", "mimalloc", "quickcheck", @@ -134,7 +134,6 @@ dependencies = [ "rand_distr", "rustls", "serde", - "toml_config", ] [[package]] @@ -144,7 +143,6 @@ dependencies = [ "anyhow", "bendy", "criterion", - "hashbrown 0.11.2", "hex", "httparse", "itoa 1.0.1", @@ -159,6 +157,26 @@ dependencies = [ "urlencoding", ] +[[package]] +name = "aquatic_toml_config" +version = "0.1.0" +dependencies = [ + "aquatic_toml_config_derive", + "quickcheck", + "quickcheck_macros", + "serde", + "toml", +] + +[[package]] +name = "aquatic_toml_config_derive" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "aquatic_udp" version = "0.1.0" @@ -166,6 +184,7 @@ dependencies = [ "anyhow", "aquatic_cli_helpers", "aquatic_common", + "aquatic_toml_config", "aquatic_udp_protocol", "cfg-if", "chrono", @@ -175,7 +194,6 @@ dependencies = [ "mimalloc", "mio", "num-format", - "parking_lot", "quickcheck", "quickcheck_macros", "rand", @@ -184,7 +202,6 @@ dependencies = [ "slab", "socket2 0.4.4", "tinytemplate", - "toml_config", ] [[package]] @@ -194,6 +211,7 @@ dependencies = [ "anyhow", "aquatic_cli_helpers", "aquatic_common", + "aquatic_toml_config", "aquatic_udp", "aquatic_udp_protocol", "crossbeam-channel", @@ -203,7 +221,6 @@ dependencies = [ "rand", "rand_distr", "serde", - "toml_config", ] [[package]] @@ -213,8 +230,9 @@ dependencies = [ "anyhow", "aquatic_cli_helpers", "aquatic_common", + "aquatic_toml_config", "aquatic_udp_protocol", - "hashbrown 0.11.2", + "hashbrown 0.12.0", "mimalloc", "mio", "quickcheck", @@ -223,7 +241,6 @@ dependencies = [ "rand_distr", "serde", "socket2 0.4.4", - "toml_config", ] [[package]] @@ -243,6 +260,7 @@ dependencies = [ "anyhow", "aquatic_cli_helpers", "aquatic_common", + "aquatic_toml_config", "aquatic_ws_protocol", "async-tungstenite", "cfg-if", @@ -251,8 +269,8 @@ dependencies = [ "futures", "futures-lite", "futures-rustls", - "glommio 0.6.0 (git+https://github.com/DataDog/glommio.git?rev=2efe2f2a08f54394a435b674e8e0125057cbff03)", - "hashbrown 0.11.2", + "glommio", + "hashbrown 0.12.0", "histogram", "log", "mimalloc", @@ -268,7 +286,6 @@ dependencies = [ "signal-hook", "slab", "socket2 0.4.4", - "toml_config", "tungstenite", ] @@ -279,12 +296,12 @@ dependencies = [ "anyhow", "aquatic_cli_helpers", "aquatic_common", + "aquatic_toml_config", "aquatic_ws_protocol", "async-tungstenite", "futures", "futures-rustls", - "glommio 0.6.0 (git+https://github.com/DataDog/glommio.git?rev=2efe2f2a08f54394a435b674e8e0125057cbff03)", - "hashbrown 0.11.2", + "glommio", "log", "mimalloc", "quickcheck", @@ -294,7 +311,6 @@ dependencies = [ "rustls", "serde", "serde_json", - "toml_config", "tungstenite", ] @@ -304,7 +320,7 @@ version = "0.1.0" dependencies = [ "anyhow", "criterion", - "hashbrown 0.11.2", + "hashbrown 0.12.0", "quickcheck", "quickcheck_macros", "serde", @@ -330,9 +346,9 @@ dependencies = [ [[package]] name = "async-tungstenite" -version = "0.16.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5682ea0913e5c20780fe5785abacb85a411e7437bf52a1bedb93ddb3972cb8dd" +checksum = "c3fe458e5f0c283bd6315a884d30f90b654c612b2c16d676730ba71f23cf160a" dependencies = [ "futures-io", "futures-util", @@ -360,9 +376,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" @@ -416,9 +432,9 @@ checksum = "303cec55cd9c5fde944b061b902f142b52a8bb5438cc822481ea1e3ebc96bbcb" [[package]] name = "block-buffer" -version = "0.9.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" dependencies = [ "generic-array", ] @@ -476,9 +492,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.72" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" [[package]] name = "cfg-if" @@ -614,9 +630,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97242a70df9b89a65d0b6df3c4bf5b9ce03c5b7309019777fbde37e7537f8762" +checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" dependencies = [ "cfg-if", "crossbeam-utils", @@ -627,9 +643,9 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b979d76c9fcb84dffc80a73f7290da0f83e4c95773494674cb44b76d13a7a110" +checksum = "4dd435b205a4842da59efd07628f921c096bc1cc0a156835b4fa0bcb9a19bcce" dependencies = [ "cfg-if", "crossbeam-utils", @@ -637,14 +653,24 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120" +checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" dependencies = [ "cfg-if", "lazy_static", ] +[[package]] +name = "crypto-common" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "csv" version = "1.1.6" @@ -669,11 +695,12 @@ dependencies = [ [[package]] name = "digest" -version = "0.9.0" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" dependencies = [ - "generic-array", + "block-buffer", + "crypto-common", ] [[package]] @@ -765,6 +792,19 @@ dependencies = [ "num-traits", ] +[[package]] +name = "flume" +version = "0.10.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b279436a715a9de95dcd26b151db590a71961cc06e54918b24fe0dd5b7d3fc4" +dependencies = [ + "futures-core", + "futures-sink", + "nanorand", + "pin-project", + "spin 0.9.2", +] + [[package]] name = "fnv" version = "1.0.7" @@ -783,9 +823,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28560757fe2bb34e79f907794bb6b22ae8b0e5c669b638a1132f2592b19035b4" +checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" dependencies = [ "futures-channel", "futures-core", @@ -798,9 +838,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" dependencies = [ "futures-core", "futures-sink", @@ -808,15 +848,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" [[package]] name = "futures-executor" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a" +checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" dependencies = [ "futures-core", "futures-task", @@ -825,9 +865,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" +checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" [[package]] name = "futures-lite" @@ -846,9 +886,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbd947adfffb0efc70599b3ddcf7b5597bb5fa9e245eb99f62b3a5f7bb8bd3c" +checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ "proc-macro2", "quote", @@ -868,21 +908,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" [[package]] name = "futures-task" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" [[package]] name = "futures-util" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ "futures-channel", "futures-core", @@ -913,8 +953,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -925,41 +967,12 @@ checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" [[package]] name = "glommio" -version = "0.6.0" -source = "git+https://github.com/DataDog/glommio.git?rev=2efe2f2a08f54394a435b674e8e0125057cbff03#2efe2f2a08f54394a435b674e8e0125057cbff03" -dependencies = [ - "ahash", - "bitflags 1.3.2", - "bitmaps", - "buddy-alloc", - "cc", - "concurrent-queue", - "crossbeam", - "enclose", - "futures-lite", - "intrusive-collections", - "lazy_static", - "libc", - "lockfree", - "log", - "membarrier", - "nix", - "pin-project-lite", - "rlimit", - "scoped-tls", - "scopeguard", - "smallvec", - "socket2 0.3.19", - "tracing", - "typenum", -] - -[[package]] -name = "glommio" -version = "0.6.0" -source = "git+https://github.com/DataDog/glommio.git?rev=4e6b14772da2f4325271fbcf12d24cf91ed466e5#4e6b14772da2f4325271fbcf12d24cf91ed466e5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd6912e67cabcb397683537cadc80a38136fdea7702430ede1a43207940697a6" dependencies = [ "ahash", + "backtrace", "bitflags 1.3.2", "bitmaps", "buddy-alloc", @@ -967,6 +980,7 @@ dependencies = [ "concurrent-queue", "crossbeam", "enclose", + "flume", "futures-lite", "intrusive-collections", "lazy_static", @@ -979,6 +993,8 @@ dependencies = [ "rlimit", "scoped-tls", "scopeguard", + "signal-hook", + "sketches-ddsketch", "smallvec", "socket2 0.3.19", "tracing", @@ -1021,6 +1037,15 @@ name = "hashbrown" version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c21d40587b92fa6a6c6e3c1bdbf87d75511db5672f9c93175574b3a00df1758" dependencies = [ "ahash", "serde", @@ -1060,9 +1085,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" +checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" [[package]] name = "hwloc" @@ -1179,21 +1204,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.117" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c" +checksum = "06e509672465a0504304aa87f9f176f2b2b716ed8fb105ebe5c02dc6dce96a94" [[package]] name = "libm" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" +checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" [[package]] name = "libmimalloc-sys" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9636c194f9db483f4d0adf2f99a65011a99f904bd222bbd67fb4df4f37863c30" +checksum = "7705fc40f6ed493f73584abbb324e74f96b358ff60dfe5659a0f8fc12c590a69" dependencies = [ "cc", ] @@ -1269,9 +1294,9 @@ dependencies = [ [[package]] name = "mimalloc" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5f78c1d9892fb5677a8b2f543f967ab891ac0f71feecd961435b74f877283a" +checksum = "b0dfa131390c2f6bdb3242f65ff271fcdaca5ff7b6c08f28398be7f2280e3926" dependencies = [ "libmimalloc-sys", ] @@ -1308,6 +1333,15 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "nanorand" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "729eb334247daa1803e0a094d0a5c55711b85571179f5ec6e53eccfdf7008958" +dependencies = [ + "getrandom", +] + [[package]] name = "nix" version = "0.23.1" @@ -1329,9 +1363,9 @@ checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" [[package]] name = "ntapi" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" dependencies = [ "winapi 0.3.9", ] @@ -1425,12 +1459,6 @@ version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - [[package]] name = "owned-alloc" version = "0.2.0" @@ -1445,27 +1473,25 @@ checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" [[package]] name = "parking_lot" -version = "0.11.2" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" dependencies = [ - "instant", "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" -version = "0.8.5" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954" dependencies = [ "cfg-if", - "instant", "libc", "redox_syscall", "smallvec", - "winapi 0.3.9", + "windows-sys", ] [[package]] @@ -1474,6 +1500,26 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +[[package]] +name = "pin-project" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "pin-project-lite" version = "0.2.8" @@ -1578,14 +1624,13 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", "rand_core", - "rand_hc", ] [[package]] @@ -1617,15 +1662,6 @@ dependencies = [ "rand", ] -[[package]] -name = "rand_hc" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" -dependencies = [ - "rand_core", -] - [[package]] name = "rayon" version = "1.5.1" @@ -1692,7 +1728,7 @@ dependencies = [ "cc", "libc", "once_cell", - "spin", + "spin 0.5.2", "untrusted", "web-sys", "winapi 0.3.9", @@ -1724,9 +1760,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.2" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37e5e2290f3e040b594b1a9e04377c2c671f1a1cfd9bfdef82106ac1c113f84" +checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" dependencies = [ "log", "ring", @@ -1736,9 +1772,9 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" dependencies = [ "base64", ] @@ -1782,9 +1818,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" +checksum = "0486718e92ec9a68fbed73bb5ef687d71103b142595b406835649bebd33f72c7" [[package]] name = "serde" @@ -1837,9 +1873,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" +checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" dependencies = [ "itoa 1.0.1", "ryu", @@ -1848,15 +1884,13 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.9.8" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ - "block-buffer", "cfg-if", "cpufeatures", "digest", - "opaque-debug", ] [[package]] @@ -1908,6 +1942,12 @@ dependencies = [ "termcolor", ] +[[package]] +name = "sketches-ddsketch" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a77a8fd93886010f05e7ea0720e569d6d16c65329dbe3ec033bbbccccb017b" + [[package]] name = "slab" version = "0.4.5" @@ -1956,6 +1996,15 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spin" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "511254be0c5bcf062b019a6c89c01a664aa359ded62f78aa72c6fc137c0590e5" +dependencies = [ + "lock_api", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -2077,31 +2126,11 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_config" -version = "0.1.0" -dependencies = [ - "quickcheck", - "quickcheck_macros", - "serde", - "toml", - "toml_config_derive", -] - -[[package]] -name = "toml_config_derive" -version = "0.1.0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "tracing" -version = "0.1.29" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" +checksum = "f6c650a8ef0cd2dd93736f033d21cbd1224c5a967aa0c258d00fcf7dafef9b9f" dependencies = [ "cfg-if", "pin-project-lite", @@ -2111,9 +2140,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" +checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716" dependencies = [ "proc-macro2", "quote", @@ -2122,18 +2151,18 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23" dependencies = [ "lazy_static", ] [[package]] name = "tungstenite" -version = "0.16.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad3713a14ae247f22a728a0456a545df14acf3867f905adff84be99e23b3ad1" +checksum = "9a5198d211a468fa9573edf4919aa88a17515723c766b3a6b3a10536eb7e1ee0" dependencies = [ "base64", "byteorder", @@ -2368,3 +2397,46 @@ name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" + +[[package]] +name = "windows_i686_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" + +[[package]] +name = "windows_i686_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" diff --git a/Cargo.toml b/Cargo.toml index 2305376..92ec3a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,8 @@ members = [ "aquatic_http", "aquatic_http_load_test", "aquatic_http_protocol", + "aquatic_toml_config", + "aquatic_toml_config_derive", "aquatic_udp", "aquatic_udp_bench", "aquatic_udp_load_test", @@ -14,26 +16,24 @@ members = [ "aquatic_ws", "aquatic_ws_load_test", "aquatic_ws_protocol", - "toml_config", - "toml_config_derive", ] [patch.crates-io] aquatic = { path = "aquatic" } aquatic_cli_helpers = { path = "aquatic_cli_helpers" } aquatic_common = { path = "aquatic_common" } -aquatic_http = { path = "aquatic_http" } aquatic_http_load_test = { path = "aquatic_http_load_test" } +aquatic_http = { path = "aquatic_http" } aquatic_http_protocol = { path = "aquatic_http_protocol" } -aquatic_udp = { path = "aquatic_udp" } +aquatic_toml_config_derive = { path = "aquatic_toml_config_derive" } +aquatic_toml_config = { path = "aquatic_toml_config" } aquatic_udp_bench = { path = "aquatic_udp_bench" } aquatic_udp_load_test = { path = "aquatic_udp_load_test" } +aquatic_udp = { path = "aquatic_udp" } aquatic_udp_protocol = { path = "aquatic_udp_protocol" } -aquatic_ws = { path = "aquatic_ws" } aquatic_ws_load_test = { path = "aquatic_ws_load_test" } +aquatic_ws = { path = "aquatic_ws" } aquatic_ws_protocol = { path = "aquatic_ws_protocol" } -toml_config = { path = "toml_config" } -toml_config_derive = { path = "toml_config_derive" } [profile.release] debug = true diff --git a/TODO.md b/TODO.md index a5108ce..dc7f13c 100644 --- a/TODO.md +++ b/TODO.md @@ -60,6 +60,9 @@ * general * large amount of temporary allocations in serialize_20_bytes, pretty many in deserialize_20_bytes +* extract_response_peers + * don't assume requesting peer is in list + # Less important * extract response peers: extract "one extra" to compensate for removal, diff --git a/aquatic_cli_helpers/Cargo.toml b/aquatic_cli_helpers/Cargo.toml index 9c21e77..4b77eca 100644 --- a/aquatic_cli_helpers/Cargo.toml +++ b/aquatic_cli_helpers/Cargo.toml @@ -12,4 +12,4 @@ anyhow = "1" serde = { version = "1", features = ["derive"] } simplelog = "0.11" toml = "0.5" -toml_config = "0.1.0" +aquatic_toml_config = "0.1.0" diff --git a/aquatic_cli_helpers/src/lib.rs b/aquatic_cli_helpers/src/lib.rs index 6c7d6f5..8407361 100644 --- a/aquatic_cli_helpers/src/lib.rs +++ b/aquatic_cli_helpers/src/lib.rs @@ -4,7 +4,7 @@ use std::io::Read; use anyhow::Context; use serde::{de::DeserializeOwned, Deserialize, Serialize}; use simplelog::{ColorChoice, ConfigBuilder, LevelFilter, TermLogger, TerminalMode}; -use toml_config::TomlConfig; +use aquatic_toml_config::TomlConfig; /// Log level. Available values are off, error, warn, info, debug and trace. #[derive(Debug, Clone, Copy, PartialEq, TomlConfig, Serialize, Deserialize)] diff --git a/aquatic_common/Cargo.toml b/aquatic_common/Cargo.toml index a6137aa..446666e 100644 --- a/aquatic_common/Cargo.toml +++ b/aquatic_common/Cargo.toml @@ -17,14 +17,14 @@ cpu-pinning = ["hwloc", "libc"] ahash = "0.7" anyhow = "1" arc-swap = "1" -hashbrown = "0.11" +hashbrown = "0.12" hex = "0.4" indexmap-amortized = "1" log = "0.4" privdrop = "0.5" rand = { version = "0.8", features = ["small_rng"] } serde = { version = "1", features = ["derive"] } -toml_config = "0.1.0" +aquatic_toml_config = "0.1.0" # cpu-pinning hwloc = { version = "0.5", optional = true } diff --git a/aquatic_common/src/access_list.rs b/aquatic_common/src/access_list.rs index eaf49e6..3b123cf 100644 --- a/aquatic_common/src/access_list.rs +++ b/aquatic_common/src/access_list.rs @@ -7,7 +7,7 @@ use anyhow::Context; use arc_swap::{ArcSwap, Cache}; use hashbrown::HashSet; use serde::{Deserialize, Serialize}; -use toml_config::TomlConfig; +use aquatic_toml_config::TomlConfig; /// Access list mode. Available modes are white, black and off. #[derive(Clone, Copy, Debug, PartialEq, TomlConfig, Serialize, Deserialize)] diff --git a/aquatic_common/src/cpu_pinning.rs b/aquatic_common/src/cpu_pinning.rs index 4fd826a..8668433 100644 --- a/aquatic_common/src/cpu_pinning.rs +++ b/aquatic_common/src/cpu_pinning.rs @@ -1,6 +1,6 @@ use hwloc::{CpuSet, ObjectType, Topology, CPUBIND_THREAD}; use serde::{Deserialize, Serialize}; -use toml_config::TomlConfig; +use aquatic_toml_config::TomlConfig; #[derive(Clone, Debug, PartialEq, TomlConfig, Serialize, Deserialize)] #[serde(rename_all = "lowercase")] diff --git a/aquatic_common/src/lib.rs b/aquatic_common/src/lib.rs index fdd242f..a1c5307 100644 --- a/aquatic_common/src/lib.rs +++ b/aquatic_common/src/lib.rs @@ -50,7 +50,9 @@ where let peer_map_len = peer_map.len(); if peer_map_len <= max_num_peers_to_take + 1 { - peer_map + let mut peers = Vec::with_capacity(peer_map_len); + + peers.extend(peer_map .iter() .filter_map(|(k, v)| { if *k == sender_peer_map_key { @@ -58,8 +60,9 @@ where } else { Some(peer_conversion_function(v)) } - }) - .collect() + })); + + peers } else { let half_num_to_take = max_num_peers_to_take / 2; let half_peer_map_len = peer_map_len / 2; diff --git a/aquatic_common/src/privileges.rs b/aquatic_common/src/privileges.rs index 058e7cf..3910c3d 100644 --- a/aquatic_common/src/privileges.rs +++ b/aquatic_common/src/privileges.rs @@ -8,7 +8,7 @@ use std::{ use privdrop::PrivDrop; use serde::Deserialize; -use toml_config::TomlConfig; +use aquatic_toml_config::TomlConfig; #[derive(Clone, Debug, PartialEq, TomlConfig, Deserialize)] #[serde(default)] diff --git a/aquatic_http/Cargo.toml b/aquatic_http/Cargo.toml index 2052f00..00e9a9f 100644 --- a/aquatic_http/Cargo.toml +++ b/aquatic_http/Cargo.toml @@ -25,21 +25,20 @@ cfg-if = "1" either = "1" futures-lite = "1" futures-rustls = "0.22" -glommio = { git = "https://github.com/DataDog/glommio.git", rev = "4e6b14772da2f4325271fbcf12d24cf91ed466e5" } +glommio = "0.7" itoa = "1" log = "0.4" mimalloc = { version = "0.1", default-features = false } memchr = "2" -parking_lot = "0.11" privdrop = "0.5" once_cell = "1" rand = { version = "0.8", features = ["small_rng"] } -rustls-pemfile = "0.2" +rustls-pemfile = "0.3" serde = { version = "1", features = ["derive"] } signal-hook = { version = "0.3" } slab = "0.4" smartstring = "0.2" -toml_config = "0.1.0" +aquatic_toml_config = "0.1.0" [dev-dependencies] quickcheck = "1" diff --git a/aquatic_http/src/config.rs b/aquatic_http/src/config.rs index 789f1d4..66795b7 100644 --- a/aquatic_http/src/config.rs +++ b/aquatic_http/src/config.rs @@ -2,7 +2,7 @@ use std::{net::SocketAddr, path::PathBuf}; use aquatic_common::{access_list::AccessListConfig, privileges::PrivilegeConfig}; use serde::Deserialize; -use toml_config::TomlConfig; +use aquatic_toml_config::TomlConfig; use aquatic_cli_helpers::LogLevel; @@ -120,5 +120,5 @@ impl Default for CleaningConfig { mod tests { use super::Config; - ::toml_config::gen_serialize_deserialize_test!(Config); + ::aquatic_toml_config::gen_serialize_deserialize_test!(Config); } diff --git a/aquatic_http_load_test/Cargo.toml b/aquatic_http_load_test/Cargo.toml index 78991d1..c6ae2d8 100644 --- a/aquatic_http_load_test/Cargo.toml +++ b/aquatic_http_load_test/Cargo.toml @@ -18,15 +18,15 @@ aquatic_cli_helpers = "0.1.0" aquatic_common = "0.1.0" aquatic_http_protocol = "0.1.0" futures-lite = "1" -hashbrown = "0.11" -glommio = { git = "https://github.com/DataDog/glommio.git", rev = "4e6b14772da2f4325271fbcf12d24cf91ed466e5" } +hashbrown = "0.12" +glommio = "0.7" log = "0.4" mimalloc = { version = "0.1", default-features = false } rand = { version = "0.8", features = ["small_rng"] } rand_distr = "0.4" rustls = { version = "0.20", features = ["dangerous_configuration"] } serde = { version = "1", features = ["derive"] } -toml_config = "0.1.0" +aquatic_toml_config = "0.1.0" [dev-dependencies] quickcheck = "1" diff --git a/aquatic_http_load_test/src/config.rs b/aquatic_http_load_test/src/config.rs index 392007b..4a4721f 100644 --- a/aquatic_http_load_test/src/config.rs +++ b/aquatic_http_load_test/src/config.rs @@ -2,7 +2,7 @@ use std::net::SocketAddr; use aquatic_cli_helpers::LogLevel; use serde::Deserialize; -use toml_config::TomlConfig; +use aquatic_toml_config::TomlConfig; /// aquatic_http_load_test configuration #[derive(Clone, Debug, PartialEq, TomlConfig, Deserialize)] @@ -80,5 +80,5 @@ impl Default for TorrentConfig { mod tests { use super::Config; - ::toml_config::gen_serialize_deserialize_test!(Config); + ::aquatic_toml_config::gen_serialize_deserialize_test!(Config); } diff --git a/aquatic_http_protocol/Cargo.toml b/aquatic_http_protocol/Cargo.toml index 6934321..ead5436 100644 --- a/aquatic_http_protocol/Cargo.toml +++ b/aquatic_http_protocol/Cargo.toml @@ -23,7 +23,6 @@ harness = false [dependencies] anyhow = "1" -hashbrown = "0.11" hex = { version = "0.4", default-features = false } httparse = "1" itoa = "1" diff --git a/toml_config/Cargo.toml b/aquatic_toml_config/Cargo.toml similarity index 75% rename from toml_config/Cargo.toml rename to aquatic_toml_config/Cargo.toml index 75b1a3e..68d17bf 100644 --- a/toml_config/Cargo.toml +++ b/aquatic_toml_config/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "toml_config" +name = "aquatic_toml_config" version = "0.1.0" authors = ["Joakim FrostegÄrd "] edition = "2021" @@ -9,11 +9,11 @@ repository = "https://github.com/greatest-ape/aquatic" exclude = ["target"] [lib] -name = "toml_config" +name = "aquatic_toml_config" [dependencies] toml = "0.5" -toml_config_derive = { path = "../toml_config_derive" } +aquatic_toml_config_derive = { path = "../aquatic_toml_config_derive" } [dev-dependencies] serde = { version = "1.0", features = ["derive"] } diff --git a/toml_config/src/lib.rs b/aquatic_toml_config/src/lib.rs similarity index 92% rename from toml_config/src/lib.rs rename to aquatic_toml_config/src/lib.rs index 45db513..eb3b9a8 100644 --- a/toml_config/src/lib.rs +++ b/aquatic_toml_config/src/lib.rs @@ -1,5 +1,5 @@ pub use toml; -pub use toml_config_derive::TomlConfig; +pub use aquatic_toml_config_derive::TomlConfig; /// Run this on your struct implementing TomlConfig to generate a /// serialization/deserialization test for it. @@ -8,9 +8,9 @@ macro_rules! gen_serialize_deserialize_test { ($ident:ident) => { #[test] fn test_cargo_toml_serialize_deserialize() { - use ::toml_config::TomlConfig; + use ::aquatic_toml_config::TomlConfig; let serialized = $ident::default_to_string(); - let deserialized = ::toml_config::toml::de::from_str(&serialized).unwrap(); + let deserialized = ::aquatic_toml_config::toml::de::from_str(&serialized).unwrap(); assert_eq!($ident::default(), deserialized); } @@ -24,7 +24,7 @@ macro_rules! gen_serialize_deserialize_test { /// /// Usage: /// ``` -/// use toml_config::TomlConfig; +/// use aquatic_toml_config::TomlConfig; /// /// #[derive(TomlConfig)] /// struct SubConfig { diff --git a/toml_config/tests/test.rs b/aquatic_toml_config/tests/test.rs similarity index 92% rename from toml_config/tests/test.rs rename to aquatic_toml_config/tests/test.rs index 0c4bb31..0cd1554 100644 --- a/toml_config/tests/test.rs +++ b/aquatic_toml_config/tests/test.rs @@ -1,6 +1,6 @@ use serde::Deserialize; -use toml_config::{gen_serialize_deserialize_test, TomlConfig}; +use aquatic_toml_config::{gen_serialize_deserialize_test, TomlConfig}; #[derive(Clone, Debug, PartialEq, Eq, TomlConfig, Deserialize)] struct TestConfigInnerA { diff --git a/toml_config_derive/Cargo.toml b/aquatic_toml_config_derive/Cargo.toml similarity index 90% rename from toml_config_derive/Cargo.toml rename to aquatic_toml_config_derive/Cargo.toml index b8fc1a1..a3c1b3d 100644 --- a/toml_config_derive/Cargo.toml +++ b/aquatic_toml_config_derive/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "toml_config_derive" +name = "aquatic_toml_config_derive" version = "0.1.0" authors = ["Joakim FrostegÄrd "] edition = "2021" diff --git a/toml_config_derive/src/lib.rs b/aquatic_toml_config_derive/src/lib.rs similarity index 92% rename from toml_config_derive/src/lib.rs rename to aquatic_toml_config_derive/src/lib.rs index 42d62d2..d84e200 100644 --- a/toml_config_derive/src/lib.rs +++ b/aquatic_toml_config_derive/src/lib.rs @@ -18,7 +18,7 @@ pub fn derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream { extract_from_struct(ident.clone(), struct_data, &mut output_stream); proc_macro::TokenStream::from(quote! { - impl ::toml_config::TomlConfig for #ident { + impl ::aquatic_toml_config::TomlConfig for #ident { fn default_to_string() -> String { let mut output = String::new(); @@ -40,7 +40,7 @@ pub fn derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream { output } } - impl ::toml_config::__private::Private for #ident { + impl ::aquatic_toml_config::__private::Private for #ident { fn __to_string(&self, comment: Option, field_name: String) -> String { let mut output = String::new(); @@ -65,7 +65,7 @@ pub fn derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream { }) } Data::Enum(_) => proc_macro::TokenStream::from(quote! { - impl ::toml_config::__private::Private for #ident { + impl ::aquatic_toml_config::__private::Private for #ident { fn __to_string(&self, comment: Option, field_name: String) -> String { let mut output = String::new(); let wrapping_comment: Option = #comment; @@ -78,7 +78,7 @@ pub fn derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream { output.push_str(&comment); } - let value = match ::toml_config::toml::ser::to_string(self) { + let value = match ::aquatic_toml_config::toml::ser::to_string(self) { Ok(value) => value, Err(err) => panic!("Couldn't serialize enum to toml: {:#}", err), }; @@ -119,7 +119,7 @@ fn extract_from_struct( let comment: Option = #comment; let field_default: #path = struct_default.#ident; - let s: String = ::toml_config::__private::Private::__to_string( + let s: String = ::aquatic_toml_config::__private::Private::__to_string( &field_default, comment, #ident_string.to_string() diff --git a/aquatic_udp/Cargo.toml b/aquatic_udp/Cargo.toml index 1059b41..53e42d5 100644 --- a/aquatic_udp/Cargo.toml +++ b/aquatic_udp/Cargo.toml @@ -29,14 +29,13 @@ log = "0.4" mimalloc = { version = "0.1", default-features = false } mio = { version = "0.8", features = ["net", "os-poll"] } num-format = "0.4" -parking_lot = "0.11" rand = { version = "0.8", features = ["small_rng"] } serde = { version = "1", features = ["derive"] } slab = "0.4" signal-hook = { version = "0.3" } socket2 = { version = "0.4", features = ["all"] } tinytemplate = "1" -toml_config = "0.1.0" +aquatic_toml_config = "0.1.0" [dev-dependencies] quickcheck = "1" diff --git a/aquatic_udp/src/config.rs b/aquatic_udp/src/config.rs index 5e3a10b..42297c9 100644 --- a/aquatic_udp/src/config.rs +++ b/aquatic_udp/src/config.rs @@ -4,7 +4,7 @@ use aquatic_common::{access_list::AccessListConfig, privileges::PrivilegeConfig} use serde::Deserialize; use aquatic_cli_helpers::LogLevel; -use toml_config::TomlConfig; +use aquatic_toml_config::TomlConfig; /// aquatic_udp configuration #[derive(Clone, Debug, PartialEq, TomlConfig, Deserialize)] @@ -199,5 +199,5 @@ impl Default for CleaningConfig { mod tests { use super::Config; - ::toml_config::gen_serialize_deserialize_test!(Config); + ::aquatic_toml_config::gen_serialize_deserialize_test!(Config); } diff --git a/aquatic_udp/src/workers/request.rs b/aquatic_udp/src/workers/request.rs index 6a3f40e..590f3e3 100644 --- a/aquatic_udp/src/workers/request.rs +++ b/aquatic_udp/src/workers/request.rs @@ -221,7 +221,7 @@ pub fn run_request_worker( if now > last_cleaning + cleaning_interval { torrents.clean(&config, &state.access_list); - if !statistics_update_interval.is_zero() { + if config.statistics.active() { let peers_ipv4 = torrents.ipv4.values().map(|t| t.peers.len()).sum(); let peers_ipv6 = torrents.ipv6.values().map(|t| t.peers.len()).sum(); @@ -233,7 +233,7 @@ pub fn run_request_worker( last_cleaning = now; } - if !statistics_update_interval.is_zero() + if config.statistics.active() && now > last_statistics_update + statistics_update_interval { state.statistics_ipv4.torrents[worker_index.0] diff --git a/aquatic_udp_bench/Cargo.toml b/aquatic_udp_bench/Cargo.toml index 09208c3..b5ee6ca 100644 --- a/aquatic_udp_bench/Cargo.toml +++ b/aquatic_udp_bench/Cargo.toml @@ -22,4 +22,4 @@ num-format = "0.4" rand = { version = "0.8", features = ["small_rng"] } rand_distr = "0.4" serde = { version = "1", features = ["derive"] } -toml_config = "0.1.0" +aquatic_toml_config = "0.1.0" diff --git a/aquatic_udp_bench/src/config.rs b/aquatic_udp_bench/src/config.rs index d3f20f7..89480d5 100644 --- a/aquatic_udp_bench/src/config.rs +++ b/aquatic_udp_bench/src/config.rs @@ -1,5 +1,5 @@ use serde::Deserialize; -use toml_config::TomlConfig; +use aquatic_toml_config::TomlConfig; #[derive(Clone, Debug, PartialEq, TomlConfig, Deserialize)] pub struct BenchConfig { @@ -30,5 +30,5 @@ impl aquatic_cli_helpers::Config for BenchConfig {} mod tests { use super::BenchConfig; - ::toml_config::gen_serialize_deserialize_test!(BenchConfig); + ::aquatic_toml_config::gen_serialize_deserialize_test!(BenchConfig); } diff --git a/aquatic_udp_load_test/Cargo.toml b/aquatic_udp_load_test/Cargo.toml index 17eb888..8c271e5 100644 --- a/aquatic_udp_load_test/Cargo.toml +++ b/aquatic_udp_load_test/Cargo.toml @@ -17,14 +17,14 @@ anyhow = "1" aquatic_cli_helpers = "0.1.0" aquatic_common = "0.1.0" aquatic_udp_protocol = "0.1.0" -hashbrown = "0.11" +hashbrown = "0.12" mimalloc = { version = "0.1", default-features = false } mio = { version = "0.8", features = ["net", "os-poll"] } rand = { version = "0.8", features = ["small_rng"] } rand_distr = "0.4" serde = { version = "1", features = ["derive"] } socket2 = { version = "0.4", features = ["all"] } -toml_config = "0.1.0" +aquatic_toml_config = "0.1.0" [dev-dependencies] quickcheck = "1" diff --git a/aquatic_udp_load_test/src/config.rs b/aquatic_udp_load_test/src/config.rs index 79900db..bb99dbe 100644 --- a/aquatic_udp_load_test/src/config.rs +++ b/aquatic_udp_load_test/src/config.rs @@ -5,7 +5,7 @@ use serde::Deserialize; use aquatic_cli_helpers::LogLevel; #[cfg(feature = "cpu-pinning")] use aquatic_common::cpu_pinning::CpuPinningConfig; -use toml_config::TomlConfig; +use aquatic_toml_config::TomlConfig; /// aquatic_udp_load_test configuration #[derive(Clone, Debug, PartialEq, TomlConfig, Deserialize)] @@ -131,5 +131,5 @@ impl Default for RequestConfig { mod tests { use super::Config; - ::toml_config::gen_serialize_deserialize_test!(Config); + ::aquatic_toml_config::gen_serialize_deserialize_test!(Config); } diff --git a/aquatic_ws/Cargo.toml b/aquatic_ws/Cargo.toml index 885e841..3b8654a 100644 --- a/aquatic_ws/Cargo.toml +++ b/aquatic_ws/Cargo.toml @@ -26,32 +26,32 @@ aquatic_common = "0.1.0" aquatic_ws_protocol = "0.1.0" cfg-if = "1" either = "1" -hashbrown = { version = "0.11", features = ["serde"] } +hashbrown = { version = "0.12", features = ["serde"] } log = "0.4" mimalloc = { version = "0.1", default-features = false } privdrop = "0.5" rand = { version = "0.8", features = ["small_rng"] } rustls = "0.20" -rustls-pemfile = "0.2" +rustls-pemfile = "0.3" serde = { version = "1", features = ["derive"] } signal-hook = { version = "0.3" } slab = "0.4" -toml_config = "0.1.0" -tungstenite = "0.16" +aquatic_toml_config = "0.1.0" +tungstenite = "0.17" # mio crossbeam-channel = { version = "0.5", optional = true } histogram = { version = "0.6", optional = true } mio = { version = "0.8", features = ["net", "os-poll"], optional = true } -parking_lot = { version = "0.11", optional = true } +parking_lot = { version = "0.12", optional = true } socket2 = { version = "0.4", features = ["all"], optional = true } # glommio -async-tungstenite = { version = "0.16", optional = true } +async-tungstenite = { version = "0.17", optional = true } futures-lite = { version = "1", optional = true } futures = { version = "0.3", optional = true } futures-rustls = { version = "0.22", optional = true } -glommio = { git = "https://github.com/DataDog/glommio.git", rev = "2efe2f2a08f54394a435b674e8e0125057cbff03", optional = true } +glommio = { version = "0.7", optional = true } [dev-dependencies] quickcheck = "1" diff --git a/aquatic_ws/src/config.rs b/aquatic_ws/src/config.rs index 87726ae..76c7f7a 100644 --- a/aquatic_ws/src/config.rs +++ b/aquatic_ws/src/config.rs @@ -7,7 +7,7 @@ use aquatic_common::{access_list::AccessListConfig, privileges::PrivilegeConfig} use serde::Deserialize; use aquatic_cli_helpers::LogLevel; -use toml_config::TomlConfig; +use aquatic_toml_config::TomlConfig; /// aquatic_ws configuration #[derive(Clone, Debug, PartialEq, TomlConfig, Deserialize)] @@ -199,5 +199,5 @@ impl Default for StatisticsConfig { mod tests { use super::Config; - ::toml_config::gen_serialize_deserialize_test!(Config); + ::aquatic_toml_config::gen_serialize_deserialize_test!(Config); } diff --git a/aquatic_ws_load_test/Cargo.toml b/aquatic_ws_load_test/Cargo.toml index 4d7e059..6917e51 100644 --- a/aquatic_ws_load_test/Cargo.toml +++ b/aquatic_ws_load_test/Cargo.toml @@ -14,14 +14,13 @@ cpu-pinning = ["aquatic_common/cpu-pinning"] [dependencies] anyhow = "1" -async-tungstenite = "0.16" +async-tungstenite = "0.17" aquatic_cli_helpers = "0.1.0" aquatic_common = "0.1.0" aquatic_ws_protocol = "0.1.0" futures = "0.3" futures-rustls = "0.22" -glommio = { git = "https://github.com/DataDog/glommio.git", rev = "2efe2f2a08f54394a435b674e8e0125057cbff03" } -hashbrown = { version = "0.11", features = ["serde"] } +glommio = "0.7" log = "0.4" mimalloc = { version = "0.1", default-features = false } rand = { version = "0.8", features = ["small_rng"] } @@ -29,8 +28,8 @@ rand_distr = "0.4" rustls = { version = "0.20", features = ["dangerous_configuration"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -toml_config = "0.1.0" -tungstenite = "0.16" +aquatic_toml_config = "0.1.0" +tungstenite = "0.17" [dev-dependencies] quickcheck = "1" diff --git a/aquatic_ws_load_test/src/config.rs b/aquatic_ws_load_test/src/config.rs index 09974e6..334c61f 100644 --- a/aquatic_ws_load_test/src/config.rs +++ b/aquatic_ws_load_test/src/config.rs @@ -4,7 +4,7 @@ use aquatic_cli_helpers::LogLevel; #[cfg(feature = "cpu-pinning")] use aquatic_common::cpu_pinning::CpuPinningConfig; use serde::Deserialize; -use toml_config::TomlConfig; +use aquatic_toml_config::TomlConfig; /// aquatic_ws_load_test configuration #[derive(Clone, Debug, PartialEq, TomlConfig, Deserialize)] @@ -79,5 +79,5 @@ impl Default for TorrentConfig { mod tests { use super::Config; - ::toml_config::gen_serialize_deserialize_test!(Config); + ::aquatic_toml_config::gen_serialize_deserialize_test!(Config); } diff --git a/aquatic_ws_protocol/Cargo.toml b/aquatic_ws_protocol/Cargo.toml index 26f0ea7..18d4162 100644 --- a/aquatic_ws_protocol/Cargo.toml +++ b/aquatic_ws_protocol/Cargo.toml @@ -18,11 +18,11 @@ harness = false [dependencies] anyhow = "1" -hashbrown = { version = "0.11", features = ["serde"] } +hashbrown = { version = "0.12", features = ["serde"] } serde = { version = "1", features = ["derive"] } serde_json = "1" simd-json = { version = "0.4", features = ["allow-non-simd"] } -tungstenite = "0.16" +tungstenite = "0.17" [dev-dependencies] criterion = "0.3"