diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000..ddff440 --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,2 @@ +[build] +rustflags = ["-C", "target-cpu=native"] diff --git a/.gitignore b/.gitignore index ea8c4bf..a727c0a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /target +/data diff --git a/Cargo.lock b/Cargo.lock index 110b5c5..4656e77 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,33 +1,256 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "ahash" -version = "0.5.10" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19fac972e53443ba111b1ff866e9d3b6484df5c05030e13bc7c6a1ebc802e983" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom", - "lazy_static", + "getrandom 0.2.16", + "once_cell", + "version_check", ] [[package]] -name = "atty" -version = "0.2.14" +name = "aligned-array" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +checksum = "e05c92d086290f52938013f6242ac62bf7d401fab8ad36798a609faa65c3fd2c" dependencies = [ - "hermit-abi", - "libc", - "winapi 0.3.9", + "generic-array", +] + +[[package]] +name = "anstream" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" + +[[package]] +name = "anstyle-parse" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +dependencies = [ + "anstyle", + "once_cell", + "windows-sys 0.59.0", +] + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue 2.5.0", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" +dependencies = [ + "async-task", + "concurrent-queue 2.5.0", + "fastrand", + "futures-lite", + "pin-project-lite", + "slab", +] + +[[package]] +name = "async-fs" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" +dependencies = [ + "async-lock", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-io" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +dependencies = [ + "async-lock", + "cfg-if", + "concurrent-queue 2.5.0", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-net" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" +dependencies = [ + "async-io", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-process" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix", + "tracing", +] + +[[package]] +name = "async-signal" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "auto-const-array" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd73835ad7deb4bd2b389e6f10333b143f025d607c55ca04c66a0bcc6bb2fc6d" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "backtrace" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] [[package]] name = "bitflags" @@ -36,1039 +259,1972 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] -name = "bitmaps" -version = "2.1.0" +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "bitmaps" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6" + +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "buddy-alloc" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3240a4cb09cf0da6a51641bd40ce90e96ea6065e3a1adc46434029254bcc2d09" + +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "cache-padded" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "981520c98f422fcc584dc1a95c334e6953900b9106bc47a9839b81790009eb21" + +[[package]] +name = "cc" +version = "1.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04da6a0d40b948dfc4fa8f5bbf402b0fc1a64a28dbf7d12ffd683550f2c1b63a" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "clap" +version = "4.5.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" + +[[package]] +name = "client" +version = "0.1.0" +dependencies = [ + "config", + "local-sync", + "monoio", +] + +[[package]] +name = "colorchoice" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" + +[[package]] +name = "compio" +version = "0.14.0" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "compio-buf", + "compio-dispatcher", + "compio-driver", + "compio-fs", + "compio-io", + "compio-log", + "compio-net", + "compio-process", + "compio-quic", + "compio-runtime", + "compio-signal", +] + +[[package]] +name = "compio-buf" +version = "0.5.1" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "arrayvec", + "bytes", + "libc", +] + +[[package]] +name = "compio-dispatcher" +version = "0.6.0" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "compio-driver", + "compio-runtime", + "flume", + "futures-channel", +] + +[[package]] +name = "compio-driver" +version = "0.7.0" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "aligned-array", + "cfg-if", + "cfg_aliases", + "compio-buf", + "compio-log", + "crossbeam-channel", + "crossbeam-queue", + "futures-util", + "io-uring 0.7.5", + "io_uring_buf_ring", + "libc", + "once_cell", + "paste", + "polling", + "slab", + "socket2 0.5.9", + "windows-sys 0.52.0", +] + +[[package]] +name = "compio-fs" +version = "0.7.0" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "cfg-if", + "cfg_aliases", + "compio-buf", + "compio-driver", + "compio-io", + "compio-runtime", + "libc", + "os_pipe", + "widestring", + "windows-sys 0.52.0", +] + +[[package]] +name = "compio-io" +version = "0.6.0" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "compio-buf", + "futures-util", + "paste", +] + +[[package]] +name = "compio-log" +version = "0.1.0" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "tracing", +] + +[[package]] +name = "compio-net" +version = "0.7.0" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "cfg-if", + "compio-buf", + "compio-driver", + "compio-io", + "compio-runtime", + "either", + "libc", + "once_cell", + "socket2 0.5.9", + "widestring", + "windows-sys 0.52.0", +] + +[[package]] +name = "compio-process" +version = "0.4.0" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "cfg-if", + "compio-buf", + "compio-driver", + "compio-io", + "compio-runtime", + "futures-util", + "windows-sys 0.52.0", +] + +[[package]] +name = "compio-quic" +version = "0.3.0" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "cfg_aliases", + "compio-buf", + "compio-io", + "compio-log", + "compio-net", + "compio-runtime", + "flume", + "futures-util", + "libc", + "quinn-proto", + "rustc-hash", + "rustls", + "thiserror", + "windows-sys 0.52.0", +] + +[[package]] +name = "compio-runtime" +version = "0.7.0" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "async-task", + "cfg-if", + "compio-buf", + "compio-driver", + "compio-log", + "crossbeam-queue", + "futures-util", + "libc", + "once_cell", + "scoped-tls", + "slab", + "socket2 0.5.9", + "windows-sys 0.52.0", +] + +[[package]] +name = "compio-server" +version = "0.1.0" +dependencies = [ + "compio", + "config", + "nix 0.29.0", + "socket2 0.5.9", +] + +[[package]] +name = "compio-signal" +version = "0.5.0" +source = "git+https://github.com/compio-rs/compio#f7521072c10d09d73831845de358a4a108ca59f6" +dependencies = [ + "compio-buf", + "compio-driver", + "compio-runtime", + "libc", + "once_cell", + "os_pipe", + "slab", + "windows-sys 0.52.0", +] + +[[package]] +name = "concurrent-queue" +version = "1.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" +dependencies = [ + "cache-padded", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "config" +version = "0.1.0" +dependencies = [ + "clap", +] + +[[package]] +name = "core_affinity" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a034b3a7b624016c6e13f5df875747cc25f884156aad2abd12b6c46797971342" +dependencies = [ + "libc", + "num_cpus", + "winapi", +] + +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "enclose" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eef75b364b1baff88ff28dc34e4c7c0ebd138abd76f4e58e24e37d9b7f54b8f1" + +[[package]] +name = "errno" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "event-listener" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue 2.5.0", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "flume" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" +dependencies = [ + "futures-core", + "futures-sink", + "nanorand", + "spin", +] + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-lite" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generator" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +dependencies = [ + "cfg-if", + "libc", + "log", + "rustversion", + "windows", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "glommio" +version = "0.9.0" +source = "git+https://github.com/DataDog/glommio#8434815962ce0bc161ace1967137213dc2334e4b" +dependencies = [ + "ahash", + "backtrace", + "bitflags 2.9.0", + "bitmaps", + "buddy-alloc", + "cc", + "concurrent-queue 1.2.4", + "crossbeam", + "enclose", + "flume", + "futures-lite", + "intrusive-collections", + "lazy_static", + "libc", + "lockfree", + "log", + "nix 0.27.1", + "pin-project-lite", + "rlimit", + "scoped-tls", + "scopeguard", + "signal-hook", + "sketches-ddsketch", + "smallvec", + "socket2 0.4.10", + "tracing", + "typenum", +] + +[[package]] +name = "glommio-server" +version = "0.1.0" +dependencies = [ + "config", + "futures-lite", + "glommio", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + +[[package]] +name = "intrusive-collections" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "189d0897e4cbe8c75efedf3502c18c887b05046e59d28404d4d8e46cbc4d1e86" +dependencies = [ + "memoffset", +] + +[[package]] +name = "io-uring" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595a0399f411a508feb2ec1e970a4a30c249351e30208960d58298de8660b0e5" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "io-uring" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64da1e0559d13f8dab988c69dc919dd42c459d39c6e7d52bd6fd533f93d54ba1" +dependencies = [ + "bitflags 2.9.0", + "cfg-if", + "libc", +] + +[[package]] +name = "io_uring_buf_ring" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92cd3b1fdc9f81ee3d942a4886c94709544d90b67d28f29b7b139a262adec9a7" +dependencies = [ + "bytes", + "io-uring 0.7.5", + "rustix", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.172" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "local-sync" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3865cc3ed16dd99f3b89098478647a558a5a2f6dc5f0b45d7867d75da80050ef" +dependencies = [ + "futures-core", + "futures-sink", + "futures-util", +] + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "lockfree" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74ee94b5ad113c7cb98c5a040f783d0952ee4fe100993881d1673c2cb002dd23" +dependencies = [ + "owned-alloc", +] + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "may" +version = "0.3.49" +source = "git+https://github.com/Xudong-Huang/may#e25019f0019c887fa0fe8bb32402a51842e71c0b" +dependencies = [ + "cfg-if", + "core_affinity", + "crossbeam", + "generator", + "libc", + "log", + "may_queue", + "nix 0.29.0", + "num_cpus", + "parking_lot", + "rustversion", + "smallvec", + "socket2 0.5.9", + "windows-sys 0.59.0", +] + +[[package]] +name = "may-server" +version = "0.1.0" +dependencies = [ + "config", + "may", +] + +[[package]] +name = "may_queue" +version = "0.1.23" +source = "git+https://github.com/Xudong-Huang/may#e25019f0019c887fa0fe8bb32402a51842e71c0b" +dependencies = [ + "crossbeam-utils", + "rustversion", + "smallvec", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "monoio" +version = "0.2.4" +source = "git+https://github.com/bytedance/monoio#bff15f4cac0cf81fabc99f29eca21ee6dc0020c9" +dependencies = [ + "auto-const-array", + "bytes", + "fxhash", + "io-uring 0.6.4", + "libc", + "memchr", + "mio 0.8.11", + "monoio-macros", + "nix 0.29.0", + "pin-project-lite", + "socket2 0.5.9", + "windows-sys 0.48.0", +] + +[[package]] +name = "monoio-macros" +version = "0.1.0" +source = "git+https://github.com/bytedance/monoio#bff15f4cac0cf81fabc99f29eca21ee6dc0020c9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "monoio-server" +version = "0.1.0" +dependencies = [ + "config", + "monoio", +] + +[[package]] +name = "mpmc-channel" +version = "0.0.0" +source = "git+https://github.com/nurmohammed840/nio#5f7c1d92032e42be13a577c21aa987bf053aaf77" + +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" +dependencies = [ + "getrandom 0.2.16", +] + +[[package]] +name = "nio" +version = "0.0.1" +source = "git+https://github.com/nurmohammed840/nio#5f7c1d92032e42be13a577c21aa987bf053aaf77" +dependencies = [ + "crossbeam-channel", + "futures", + "libc", + "mio 1.0.3", + "mpmc-channel", + "nio-macros", + "socket2 0.5.9", + "tokio 1.44.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "nio-macros" +version = "0.1.0" +source = "git+https://github.com/nurmohammed840/nio#5f7c1d92032e42be13a577c21aa987bf053aaf77" +dependencies = [ + "quote2", + "syn", +] + +[[package]] +name = "nio-server" +version = "0.1.0" +dependencies = [ + "config", + "nio", + "tokio 1.44.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.9.0", + "cfg-if", + "libc", + "memoffset", +] + +[[package]] +name = "nix" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "typenum", + "bitflags 2.9.0", + "cfg-if", + "cfg_aliases", + "libc", + "memoffset", ] [[package]] -name = "buddy-alloc" -version = "0.4.1" +name = "num_cpus" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ff9f338986406db85e2b5deb40a9255b796ca03a194c7457403d215173f3fd5" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.9", + "libc", +] [[package]] -name = "byteorder" -version = "1.4.3" +name = "object" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] [[package]] -name = "bytes" -version = "1.1.0" +name = "once_cell" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] -name = "cache-padded" -version = "1.1.1" +name = "os_pipe" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" +checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] [[package]] -name = "cc" -version = "1.0.72" +name = "owned-alloc" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" +checksum = "30fceb411f9a12ff9222c5f824026be368ff15dc2f13468d850c7d3f502205d6" [[package]] -name = "cfg-if" -version = "1.0.0" +name = "parking" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] -name = "clap" -version = "3.0.0-beta.5" +name = "parking_lot" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feff3878564edb93745d58cf63e17b63f24142506e7a20c87a5521ed7bfb1d63" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ - "atty", - "bitflags", - "clap_derive", - "indexmap", - "lazy_static", - "os_str_bytes", - "strsim", - "termcolor", - "textwrap", - "unicase", + "lock_api", + "parking_lot_core", ] [[package]] -name = "clap_derive" -version = "3.0.0-beta.5" +name = "parking_lot_core" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b15c6b4f786ffb6192ffe65a36855bc1fc2444bcd0945ae16748dcd6ed7d0d3" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "heck", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", ] [[package]] -name = "client" -version = "0.1.0" -dependencies = [ - "config", - "local-sync", - "monoio", -] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] -name = "concurrent-queue" -version = "1.2.2" +name = "pin-project-lite" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" -dependencies = [ - "cache-padded", -] +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] -name = "config" +name = "pin-utils" version = "0.1.0" -dependencies = [ - "clap", -] +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] -name = "crossbeam" -version = "0.8.1" +name = "piper" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae5588f6b3c3cb05239e90bd110f257254aecd01e4635400391aeae07497845" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ - "cfg-if", - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", + "atomic-waker", + "fastrand", + "futures-io", ] [[package]] -name = "crossbeam-channel" -version = "0.5.1" +name = "polling" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", - "crossbeam-utils", + "concurrent-queue 2.5.0", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix", + "tracing", + "windows-sys 0.59.0", ] [[package]] -name = "crossbeam-deque" -version = "0.8.1" +name = "ppv-lite86" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", + "zerocopy", ] [[package]] -name = "crossbeam-epoch" -version = "0.9.5" +name = "proc-macro2" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ - "cfg-if", - "crossbeam-utils", - "lazy_static", - "memoffset 0.6.4", - "scopeguard", + "unicode-ident", ] [[package]] -name = "crossbeam-queue" -version = "0.3.2" +name = "quinn-proto" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b10ddc024425c88c2ad148c1b0fd53f4c6d38db9697c9f1588381212fa657c9" +checksum = "bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b" dependencies = [ - "cfg-if", - "crossbeam-utils", + "bytes", + "getrandom 0.3.2", + "rand", + "ring", + "rustc-hash", + "rustls-pki-types", + "slab", + "thiserror", + "tinyvec", + "tracing", + "web-time", ] [[package]] -name = "crossbeam-utils" -version = "0.8.5" +name = "quote" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ - "cfg-if", - "lazy_static", + "proc-macro2", ] [[package]] -name = "either" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" - -[[package]] -name = "enclose" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1056f553da426e9c025a662efa48b52e62e0a3a7648aa2d15aeaaf7f0d329357" - -[[package]] -name = "fastrand" -version = "1.5.0" +name = "quote2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e" +checksum = "c61aa775e928368b9a33bcac44f47f4132f30b0b6a17eb15c0873fc8af899211" dependencies = [ - "instant", + "proc-macro2", + "quote", + "quote2-macros", ] [[package]] -name = "futures-core" -version = "0.3.18" +name = "quote2-macros" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629316e42fe7c2a0b9a65b47d159ceaa5453ab14e8f0a3c5eedbb8cd55b4a445" +checksum = "c6ceeba20cfeffd4e0f7dd03ef72e55d115be2927b97424249a02fed0e86647a" [[package]] -name = "futures-io" -version = "0.3.18" +name = "r-efi" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e481354db6b5c353246ccf6a728b0c5511d752c08da7260546fc0933869daa11" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" [[package]] -name = "futures-lite" -version = "1.12.0" +name = "rand" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", + "rand_chacha", + "rand_core", ] [[package]] -name = "futures-sink" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "996c6442437b62d21a32cd9906f9c41e7dc1e19a9579843fad948696769305af" - -[[package]] -name = "futures-task" -version = "0.3.18" +name = "rand_chacha" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dabf1872aaab32c886832f2276d2f5399887e2bd613698a02359e4ea83f8de12" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core", +] [[package]] -name = "futures-util" -version = "0.3.18" +name = "rand_core" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d22213122356472061ac0f1ab2cee28d2bac8491410fd68c2af53d1cedb83e" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", + "getrandom 0.3.2", ] [[package]] -name = "fxhash" -version = "0.2.1" +name = "redox_syscall" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" dependencies = [ - "byteorder", + "bitflags 2.9.0", ] [[package]] -name = "getrandom" -version = "0.2.3" +name = "ring" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ + "cc", "cfg-if", + "getrandom 0.2.16", "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "untrusted", + "windows-sys 0.52.0", ] [[package]] -name = "glommio" -version = "0.6.0" +name = "rlimit" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de78464c368ab4ae8ab235b82b019317b2c82475aecbbd8c8d8100cd15831b31" +checksum = "cc0bf25554376fd362f54332b8410a625c71f15445bca32ffdfdf4ec9ac91726" dependencies = [ - "ahash", - "bitflags", - "bitmaps", - "buddy-alloc", - "cc", - "concurrent-queue", - "crossbeam", - "enclose", - "futures-lite", - "intrusive-collections", - "itertools", - "lazy_static", "libc", - "lockfree", - "log", - "membarrier", - "nix 0.22.3", - "pin-project-lite", - "rlimit", - "scoped-tls", - "scopeguard", - "smallvec", - "socket2 0.3.19", - "tracing", - "typenum", ] [[package]] -name = "glommio-server" -version = "0.1.0" -dependencies = [ - "config", - "futures-lite", - "glommio", -] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] -name = "hashbrown" -version = "0.11.2" +name = "rustc-hash" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] -name = "heck" -version = "0.3.3" +name = "rustix" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "unicode-segmentation", + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", ] [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "rustls" +version = "0.23.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" dependencies = [ - "libc", + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", ] [[package]] -name = "indexmap" -version = "1.7.0" +name = "rustls-pki-types" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" dependencies = [ - "autocfg", - "hashbrown", + "web-time", ] [[package]] -name = "instant" -version = "0.1.12" +name = "rustls-webpki" +version = "0.103.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" dependencies = [ - "cfg-if", + "ring", + "rustls-pki-types", + "untrusted", ] [[package]] -name = "intrusive-collections" -version = "0.9.2" +name = "rustversion" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb4ed164b4cf1c6bd6e18c097490331a0e58fbb0f39e8f6b5ac7f168006511cd" -dependencies = [ - "memoffset 0.5.6", -] +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] -name = "io-uring" -version = "0.5.2" +name = "scoped-tls" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d75829ed9377bab6c90039fe47b9d84caceb4b5063266142e21bcce6550cda8" -dependencies = [ - "bitflags", - "libc", -] +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] -name = "itertools" -version = "0.10.5" +name = "signal-hook" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" dependencies = [ - "either", + "libc", + "signal-hook-registry", ] [[package]] -name = "kernel32-sys" -version = "0.2.2" +name = "signal-hook-registry" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" dependencies = [ - "winapi 0.2.8", - "winapi-build", + "libc", ] [[package]] -name = "lazy_static" -version = "1.4.0" +name = "sketches-ddsketch" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "04d2ecae5fcf33b122e2e6bd520a57ccf152d2dde3b38c71039df1a6867264ee" [[package]] -name = "libc" -version = "0.2.138" +name = "slab" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] -name = "local-sync" -version = "0.0.5" +name = "smallvec" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ae84de7298d25e454f7c95077e85e04585445626f9b2606b1634f125667eff" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" + +[[package]] +name = "smol" +version = "2.0.2" +source = "git+https://github.com/smol-rs/smol#462e0a773156b489ede449599af91e6cf4ffb302" dependencies = [ - "futures-core", - "futures-sink", - "futures-util", + "async-channel", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-net", + "async-process", + "blocking", + "futures-lite", ] [[package]] -name = "lock_api" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" +name = "smol-server" +version = "0.1.0" dependencies = [ - "scopeguard", + "config", + "futures-lite", + "smol", ] [[package]] -name = "lockfree" -version = "0.5.1" +name = "socket2" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74ee94b5ad113c7cb98c5a040f783d0952ee4fe100993881d1673c2cb002dd23" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ - "owned-alloc", + "libc", + "winapi", ] [[package]] -name = "log" -version = "0.4.14" +name = "socket2" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ - "cfg-if", + "libc", + "windows-sys 0.52.0", ] [[package]] -name = "membarrier" -version = "0.2.2" +name = "spin" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925b0811d7e5fb2b666b5906c5047b7ec23aab78edc4d51b7b0f82dc5c955b1c" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" dependencies = [ - "cfg-if", - "kernel32-sys", - "lazy_static", - "libc", + "lock_api", ] [[package]] -name = "memchr" -version = "2.4.1" +name = "strsim" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] -name = "memoffset" -version = "0.5.6" +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ - "autocfg", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] -name = "memoffset" -version = "0.6.4" +name = "thiserror" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "autocfg", + "thiserror-impl", ] [[package]] -name = "mio" -version = "0.7.14" +name = "thiserror-impl" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ - "libc", - "log", - "miow", - "ntapi", - "winapi 0.3.9", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "mio" -version = "0.8.5" +name = "tinyvec" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "tinyvec_macros", ] [[package]] -name = "miow" -version = "0.3.7" +name = "tinyvec_macros" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi 0.3.9", -] +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] -name = "monoio" -version = "0.0.9" +name = "tokio" +version = "1.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a95486b08b357dfe586456169452352790e9c194e95374bf36b18c11a78a0d8" +checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" dependencies = [ + "backtrace", "bytes", - "fxhash", - "io-uring", "libc", - "mio 0.8.5", - "monoio-macros", - "nix 0.25.1", + "mio 1.0.3", "pin-project-lite", - "scoped-tls", - "socket2 0.4.2", - "windows", + "socket2 0.5.9", + "windows-sys 0.52.0", ] [[package]] -name = "monoio-macros" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85c9d2114c190b1ec18da29bfbe399a95d81657633b0d2333d4084515aa9f95" +name = "tokio" +version = "1.44.2" +source = "git+https://github.com/tokio-rs/tokio#a0af02a396274b30ec1d0a27e18ac9ae6eaa2186" dependencies = [ - "proc-macro2", - "quote", - "syn", + "backtrace", + "bytes", + "libc", + "mio 1.0.3", + "pin-project-lite", + "socket2 0.5.9", + "windows-sys 0.52.0", ] [[package]] -name = "monoio-server" +name = "tokio-server" version = "0.1.0" dependencies = [ "config", - "monoio", + "tokio 1.44.2 (git+https://github.com/tokio-rs/tokio)", ] [[package]] -name = "nix" -version = "0.22.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf" +name = "tokio-uring" +version = "0.5.0" +source = "git+https://github.com/tokio-rs/tokio-uring#7761222aa7f4bd48c559ca82e9535d47aac96d53" dependencies = [ - "bitflags", - "cc", - "cfg-if", + "futures-util", + "io-uring 0.6.4", "libc", - "memoffset 0.6.4", + "slab", + "socket2 0.4.10", + "tokio 1.44.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "nix" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" +name = "tokio-uring-server" +version = "0.1.0" dependencies = [ - "autocfg", - "bitflags", - "cfg-if", - "libc", - "memoffset 0.6.4", - "pin-utils", + "config", + "nix 0.29.0", + "socket2 0.5.9", + "tokio-uring", ] [[package]] -name = "ntapi" -version = "0.3.6" +name = "tracing" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "winapi 0.3.9", + "pin-project-lite", + "tracing-attributes", + "tracing-core", ] [[package]] -name = "num_cpus" -version = "1.13.0" +name = "tracing-attributes" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ - "hermit-abi", - "libc", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "once_cell" -version = "1.8.0" +name = "tracing-core" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", +] [[package]] -name = "os_str_bytes" -version = "4.2.0" +name = "typenum" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addaa943333a514159c80c97ff4a93306530d965d27e139188283cd13e06a799" -dependencies = [ - "memchr", -] +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] -name = "owned-alloc" -version = "0.2.0" +name = "unicode-ident" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30fceb411f9a12ff9222c5f824026be368ff15dc2f13468d850c7d3f502205d6" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] -name = "parking" -version = "2.0.0" +name = "untrusted" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] -name = "parking_lot" -version = "0.11.2" +name = "utf8parse" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core", -] +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] -name = "parking_lot_core" -version = "0.8.5" +name = "version_check" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall", - "smallvec", - "winapi 0.3.9", -] +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "pin-project-lite" -version = "0.2.7" +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "pin-utils" -version = "0.1.0" +name = "wasi" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "wasm-bindgen" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", + "cfg-if", + "once_cell", + "wasm-bindgen-macro", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "wasm-bindgen-backend" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ + "bumpalo", + "log", "proc-macro2", "quote", - "version_check", + "syn", + "wasm-bindgen-shared", ] [[package]] -name = "proc-macro2" -version = "1.0.32" +name = "wasm-bindgen-macro" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ - "unicode-xid", + "quote", + "wasm-bindgen-macro-support", ] [[package]] -name = "quote" -version = "1.0.10" +name = "wasm-bindgen-macro-support" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", ] [[package]] -name = "redox_syscall" -version = "0.2.10" +name = "wasm-bindgen-shared" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" dependencies = [ - "bitflags", + "unicode-ident", ] [[package]] -name = "rlimit" -version = "0.5.4" +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a9ed03edbed449d6897c2092c71ab5f7b5fb80f6f0b1a3ed6d40a6f9fc0720" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ - "libc", + "js-sys", + "wasm-bindgen", ] [[package]] -name = "scoped-tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - -[[package]] -name = "scopeguard" -version = "1.1.0" +name = "widestring" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" [[package]] -name = "signal-hook-registry" -version = "1.4.0" +name = "winapi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ - "libc", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[package]] -name = "smallvec" -version = "1.7.0" +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] -name = "socket2" -version = "0.3.19" +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" -dependencies = [ - "cfg-if", - "libc", - "winapi 0.3.9", -] +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "socket2" -version = "0.4.2" +name = "windows" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ - "libc", - "winapi 0.3.9", + "windows-core", + "windows-targets 0.52.6", ] [[package]] -name = "strsim" -version = "0.10.0" +name = "windows-core" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] [[package]] -name = "syn" -version = "1.0.82" +name = "windows-implement" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "unicode-xid", + "syn", ] [[package]] -name = "termcolor" -version = "1.1.2" +name = "windows-interface" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ - "winapi-util", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "textwrap" -version = "0.14.2" +name = "windows-result" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "unicode-width", + "windows-targets 0.52.6", ] [[package]] -name = "tokio" -version = "1.14.0" +name = "windows-strings" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e992e41e0d2fb9f755b37446f20900f64446ef54874f40a60c78f021ac6144" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "autocfg", - "bytes", - "libc", - "memchr", - "mio 0.7.14", - "num_cpus", - "once_cell", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "tokio-macros", - "winapi 0.3.9", + "windows-result", + "windows-targets 0.52.6", ] [[package]] -name = "tokio-macros" -version = "1.6.0" +name = "windows-sys" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9efc1aba077437943f7515666aa2b882dfabfbfdf89c819ea75a8d6e9eaba5e" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "proc-macro2", - "quote", - "syn", + "windows-targets 0.48.5", ] [[package]] -name = "tokio-server" -version = "0.1.0" +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "config", - "tokio", + "windows-targets 0.52.6", ] [[package]] -name = "tracing" -version = "0.1.29" +name = "windows-sys" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-attributes", - "tracing-core", + "windows-targets 0.52.6", ] [[package]] -name = "tracing-attributes" -version = "0.1.18" +name = "windows-targets" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "proc-macro2", - "quote", - "syn", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] -name = "tracing-core" -version = "0.1.21" +name = "windows-targets" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "lazy_static", + "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.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] -name = "typenum" -version = "1.15.0" +name = "windows_aarch64_gnullvm" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] -name = "unicase" -version = "2.6.0" +name = "windows_aarch64_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] -name = "unicode-segmentation" -version = "1.8.0" +name = "windows_aarch64_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] -name = "unicode-width" -version = "0.1.9" +name = "windows_aarch64_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] -name = "unicode-xid" -version = "0.2.2" +name = "windows_i686_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] -name = "version_check" -version = "0.9.3" +name = "windows_i686_gnu" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] -name = "waker-fn" -version = "1.1.0" +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" +name = "windows_i686_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +name = "windows_i686_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] -name = "winapi" -version = "0.2.8" +name = "windows_x86_64_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] -name = "winapi" -version = "0.3.9" +name = "windows_x86_64_gnu" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] -name = "winapi-build" -version = "0.1.1" +name = "windows_x86_64_gnullvm" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "windows_x86_64_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] -name = "winapi-util" -version = "0.1.5" +name = "windows_x86_64_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi 0.3.9", -] +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "windows_x86_64_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "windows" -version = "0.42.0" +name = "wit-bindgen-rt" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0286ba339aa753e70765d521bb0242cc48e1194562bfa2a2ad7ac8a6de28f5d5" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "bitflags 2.9.0", ] [[package]] -name = "windows-sys" -version = "0.42.0" +name = "zerocopy" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "zerocopy-derive", ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.0" +name = "zerocopy-derive" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] -name = "windows_x86_64_msvc" -version = "0.42.0" +name = "zeroize" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/Cargo.toml b/Cargo.toml index 351d399..092b20d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,19 +1,40 @@ [workspace] +resolver = "3" members = [ "monoio-server", "tokio-server", "glommio-server", - "client", - - "config" + "config", + "tokio-uring-server", + "compio-server", + "smol-server", + "may-server", + "nio-server", ] [workspace.dependencies] monoio = { git = "https://github.com/bytedance/monoio" } +tokio-uring = { git = "https://github.com/tokio-rs/tokio-uring" } +tokio = { git = "https://github.com/tokio-rs/tokio", features = [ + "rt-multi-thread", + "io-util", + "net", +] } +glommio = { git = "https://github.com/DataDog/glommio" } +futures-lite = "2.6" +clap = { version = "4.5", features = ["derive"] } +local-sync = "0.1" +compio = { git = "https://github.com/compio-rs/compio" } +nix = { version = "0.29", features = ["process", "sched"] } +socket2 = { version = "0.5" } +smol = { git = "https://github.com/smol-rs/smol" } +may = { git = "https://github.com/Xudong-Huang/may" } +nio = { git = "https://github.com/nurmohammed840/nio" } [profile.release] -lto = true -debug = false -overflow-checks = false +codegen-units = 1 # Allows LLVM to perform better optimization. +lto = true # Enables link-time-optimizations. +panic = "abort" # Higher performance by disabling panic handlers. +strip = true # Ensures debug symbols are removed. diff --git a/README.md b/README.md index fb9e033..21db728 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,27 @@ -# Monoio Benchmark +# My Fork Changes + +- Added run_client.sh script to run the clients with multiple cores and connections and save the results to csv files. +- Added [tokio-uring](https://github.com/tokio-rs/tokio-uring) server. +- Added [compio](https://github.com/compio-rs/compio) server. +- Added [smol](https://github.com/smol-rs/smol) server. +- Added [may](https://github.com/Xudong-Huang/may) server. +- Added [nio](https://github.com/nio-rs/nio) server. +- Updated dependencies to latest versions. + +To run the benchmark: + +```bash +cargo build --release +# Run a server +./target/release/monoio-server --cores 1 2 +# Run the client script +./run_client.sh +``` + +In the future, I'll also add more clients. + + +# Benchmark TCP ping-pong(not echo) is a common benchmark for network applications. @@ -28,4 +51,4 @@ Run client: ``` ## Benchmark result -Full result is available in [中文版本](https://github.com/bytedance/monoio/blob/master/docs/zh/benchmark.md) / [English version](https://github.com/bytedance/monoio/blob/master/docs/zh/benchmark.md). \ No newline at end of file +Full result is available in [中文版本](https://github.com/bytedance/monoio/blob/master/docs/zh/benchmark.md) / [English version](https://github.com/bytedance/monoio/blob/master/docs/zh/benchmark.md). diff --git a/client/Cargo.toml b/client/Cargo.toml index f5af6ee..c5929e3 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "client" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] -config = {path="../config"} +config = { path = "../config" } monoio = { workspace = true } -local-sync = "0.0.5" +local-sync = { workspace = true } diff --git a/client/src/main.rs b/client/src/main.rs index b868bdc..46657c1 100644 --- a/client/src/main.rs +++ b/client/src/main.rs @@ -1,16 +1,19 @@ use std::{ cell::UnsafeCell, rc::Rc, - sync::{atomic::{AtomicUsize, AtomicU64}, Arc}, + sync::{ + Arc, + atomic::{AtomicU64, AtomicUsize}, + }, time::Duration, }; -use config::{ClientConfig, COUNT_GRAIN_PRE_SEC, PACKET_SIZE}; +use config::{COUNT_GRAIN_PRE_SEC, ClientConfig, PACKET_SIZE}; use local_sync::semaphore::Semaphore; use monoio::{ + RuntimeBuilder, io::{AsyncReadRentExt, AsyncWriteRentExt}, net::TcpStream, - RuntimeBuilder, }; fn main() { @@ -46,7 +49,11 @@ CPU slot: {}", let eps_ = eps.clone(); std::thread::spawn(move || { monoio::utils::bind_to_cpu_set(Some(cpu_)).unwrap(); - let mut rt = RuntimeBuilder::::new().with_entries(2560).enable_timer().build().unwrap(); + let mut rt = RuntimeBuilder::::new() + .with_entries(2560) + .enable_timer() + .build() + .unwrap(); rt.block_on(run_thread(count_, eps_, cfg_)); println!("Thread {} finished", cpu_); }); @@ -61,7 +68,7 @@ CPU slot: {}", let eps_now = eps.load(std::sync::atomic::Ordering::Relaxed); let eps_sec = instant.elapsed().as_secs_f32(); println!( - "{:.3}: NAdd: {}; NSum: {}; NAverage: {:.3}, LatencyAverage: {:.3} us", + "{:.3}: NAdd: {}; NSum: {}; NAverage: {:.3}; LatencyAverage: {:.3} us", eps_sec, count_now - count_last, count_now, diff --git a/compio-server/Cargo.toml b/compio-server/Cargo.toml new file mode 100644 index 0000000..91fcc51 --- /dev/null +++ b/compio-server/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "compio-server" +version = "0.1.0" +edition = "2024" + +[dependencies] +config = { path = "../config" } +compio = { workspace = true } +nix = { workspace = true } +socket2 = { workspace = true } diff --git a/compio-server/src/main.rs b/compio-server/src/main.rs new file mode 100644 index 0000000..f790f6f --- /dev/null +++ b/compio-server/src/main.rs @@ -0,0 +1,73 @@ +use std::sync::Arc; + +use compio::{ + io::{AsyncReadExt, AsyncWriteExt}, + net::TcpListener, + runtime::Runtime, +}; +use config::{PACKET_SIZE, ServerConfig}; +use socket2::{Protocol, Type}; + +fn main() { + let cfg = Arc::new(ServerConfig::parse()); + println!( + "Running ping pong server with Compio.\nPacket size: {}\nListen {}\nCPU slot: {}", + PACKET_SIZE, + cfg.bind, + config::format_cores(&cfg.cores) + ); + + let mut threads = Vec::with_capacity(cfg.cores.len()); + for cpu in cfg.cores.iter() { + let cfg_ = cfg.clone(); + let cpu_ = *cpu as _; + let h = std::thread::spawn(move || { + let mut cpu_set = nix::sched::CpuSet::new(); + cpu_set.set(cpu_).unwrap(); + nix::sched::sched_setaffinity(nix::unistd::Pid::from_raw(0), &cpu_set).unwrap(); + + let rt = Runtime::new().unwrap(); + rt.block_on(serve(&cfg_)); + }); + threads.push(h); + } + + for thread in threads { + thread.join().unwrap(); + } +} + +async fn serve(cfg: &ServerConfig) { + let addr = cfg.bind.parse().unwrap(); + let domain = socket2::Domain::for_address(addr); + + let socket = socket2::Socket::new(domain, Type::STREAM, Some(Protocol::TCP)).unwrap(); + socket.set_reuse_port(true).unwrap(); // this is not done by default like it is on monoio + socket.bind(&addr.into()).unwrap(); + socket.listen(1024).unwrap(); + + let listener: std::net::TcpListener = socket.into(); + let listener = TcpListener::from_std(listener).unwrap(); + + loop { + let (mut stream, _) = listener.accept().await.unwrap(); + + compio::runtime::spawn(async move { + let mut buf = vec![0; PACKET_SIZE]; + loop { + let res_r = stream.read_exact(buf).await; + if res_r.is_err() { + return; + } + + let buf_r = res_r.1; + let res_w = stream.write_all(buf_r).await; + if res_w.is_err() { + return; + } + buf = res_w.1; + } + }) + .detach(); + } +} diff --git a/config/Cargo.toml b/config/Cargo.toml index c48efaf..d77c604 100644 --- a/config/Cargo.toml +++ b/config/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "config" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] -clap = "3.0.0-beta.5" +clap = { workspace = true } diff --git a/config/src/lib.rs b/config/src/lib.rs index db94250..c0ec0bd 100644 --- a/config/src/lib.rs +++ b/config/src/lib.rs @@ -5,54 +5,56 @@ pub const PACKET_SIZE: usize = 1024; // 1s/10 = 100ms pub const COUNT_GRAIN_PRE_SEC: u32 = 10; -#[derive(Parser, Debug, Clone, PartialEq)] +#[derive(Parser)] +#[cfg_attr(test, derive(Debug, PartialEq))] #[clap(version = "1.0", author = "ihciah ")] pub struct ServerConfig { #[clap( short, long, - min_values = 1, + required = true, default_value = "1", - about = "cpu core id list" + value_delimiter = ' ', + num_args = 1.., + help = "cpu core id list" )] pub cores: Vec, #[clap( short, long, - about = "bind address, like 127.0.0.1:8080", + help = "bind address, like 127.0.0.1:8080", default_value = "[::]:40000" )] pub bind: String, } -#[derive(Parser, Debug, Clone, PartialEq)] +#[derive(Parser)] +#[cfg_attr(test, derive(Debug, PartialEq))] #[clap(version = "1.0", author = "ihciah ")] pub struct ClientConfig { #[clap( short, long, - min_values = 1, + required = true, + value_delimiter = ' ', + num_args = 1.., default_value = "0", - about = "cpu core id list" + help = "cpu core id list" )] pub cores: Vec, #[clap( short = 'n', long, - about = "connection numbers per core", + help = "connection numbers per core", default_value = "50" )] pub conns_per_core: usize, - #[clap( - short, - long, - about = "QPS limit per core, leave blank means unlimited" - )] + #[clap(short, long, help = "QPS limit per core, leave blank means unlimited")] pub qps_per_core: Option, #[clap( short, long, - about = "target address, like 127.0.0.1:8080", + help = "target address, like 127.0.0.1:8080", default_value = "127.0.0.1:40000" )] pub target: String, diff --git a/glommio-server/Cargo.toml b/glommio-server/Cargo.toml index f34646a..6e5fbb3 100644 --- a/glommio-server/Cargo.toml +++ b/glommio-server/Cargo.toml @@ -1,10 +1,9 @@ [package] name = "glommio-server" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] -config = {path="../config"} - -glommio = "0.6" -futures-lite = "1.12" \ No newline at end of file +config = { path = "../config" } +glommio = { workspace = true } +futures-lite = { workspace = true } diff --git a/glommio-server/src/main.rs b/glommio-server/src/main.rs index 87a1b17..985ee4c 100644 --- a/glommio-server/src/main.rs +++ b/glommio-server/src/main.rs @@ -1,8 +1,8 @@ use std::sync::Arc; use config::{ServerConfig, PACKET_SIZE}; -use futures_lite::{StreamExt, AsyncReadExt, AsyncWriteExt}; -use glommio::{LocalExecutorBuilder, net::TcpListener, Task}; +use futures_lite::{AsyncReadExt, AsyncWriteExt, StreamExt}; +use glommio::{net::TcpListener, LocalExecutorBuilder, Placement}; fn main() { let cfg = Arc::new(ServerConfig::parse()); @@ -18,7 +18,9 @@ fn main() { let cfg_ = cfg.clone(); let cpu_ = *cpu as _; let h = std::thread::spawn(move || { - let ex = LocalExecutorBuilder::new().pin_to_cpu(cpu_).make().unwrap(); + let ex = LocalExecutorBuilder::new(Placement::Fixed(cpu_)) + .make() + .unwrap(); ex.run(serve(cfg_)); }); @@ -34,7 +36,7 @@ async fn serve(cfg: Arc) { let mut incoming = listener.incoming(); while let Some(stream) = incoming.next().await { let mut stream = stream.unwrap(); - Task::local(async move { + glommio::spawn_local(async move { let mut buf = vec![0; PACKET_SIZE]; loop { match stream.read_exact(&mut buf).await { diff --git a/may-server/Cargo.toml b/may-server/Cargo.toml new file mode 100644 index 0000000..1683f7b --- /dev/null +++ b/may-server/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "may-server" +version = "0.1.0" +edition = "2024" + +[dependencies] +may = { workspace = true } +config = { path = "../config" } diff --git a/may-server/src/main.rs b/may-server/src/main.rs new file mode 100644 index 0000000..585d164 --- /dev/null +++ b/may-server/src/main.rs @@ -0,0 +1,52 @@ +use std::{ + io::{Read, Write}, + sync::Arc, +}; + +use config::{PACKET_SIZE, ServerConfig}; + +#[macro_use] +extern crate may; + +use may::net::TcpListener; + +fn main() { + let cfg = Arc::new(ServerConfig::parse()); + let cores = cfg.cores.len(); + println!( + "Running ping pong server with May.\nPacket size: {}\nListen {}\nCPU count: {}", + PACKET_SIZE, cfg.bind, cores + ); + + may::config().set_workers(cores); + + may::coroutine::scope(|s| { + for _ in 0..cores { + let cfg = cfg.clone(); + go!(s, move || { + let listener = TcpListener::bind(&cfg.bind).unwrap(); + + loop { + let (mut stream, _) = listener.accept().unwrap(); + go!(move || { + let mut buf = vec![0; PACKET_SIZE]; + loop { + match stream.read_exact(&mut buf) { + Ok(_) => {} + Err(_) => { + return; + } + } + match stream.write_all(&buf) { + Ok(_) => {} + Err(_) => { + return; + } + } + } + }); + } + }); + } + }); +} diff --git a/monoio-server/Cargo.toml b/monoio-server/Cargo.toml index 7f0c105..cf6f628 100644 --- a/monoio-server/Cargo.toml +++ b/monoio-server/Cargo.toml @@ -1,9 +1,8 @@ [package] name = "monoio-server" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] -config = {path="../config"} - +config = { path = "../config" } monoio = { workspace = true } diff --git a/monoio-server/src/main.rs b/monoio-server/src/main.rs index 5609034..26c0eee 100644 --- a/monoio-server/src/main.rs +++ b/monoio-server/src/main.rs @@ -1,7 +1,11 @@ use std::sync::Arc; -use config::{ServerConfig, PACKET_SIZE}; -use monoio::{net::TcpListener, RuntimeBuilder, io::{AsyncReadRentExt, AsyncWriteRentExt}}; +use config::{PACKET_SIZE, ServerConfig}; +use monoio::{ + RuntimeBuilder, + io::{AsyncReadRentExt, AsyncWriteRentExt}, + net::TcpListener, +}; fn main() { let cfg = Arc::new(ServerConfig::parse()); @@ -12,7 +16,7 @@ fn main() { config::format_cores(&cfg.cores) ); - let mut threads = Vec::new(); + let mut threads = Vec::with_capacity(cfg.cores.len()); for cpu in cfg.cores.iter() { let cfg_ = cfg.clone(); let cpu_ = *cpu as _; @@ -22,7 +26,7 @@ fn main() { .with_entries(32768) .build() .unwrap(); - rt.block_on(serve(cfg_)); + rt.block_on(serve(&cfg_)); }); threads.push(h); } @@ -31,8 +35,9 @@ fn main() { } } -async fn serve(cfg: Arc) { +async fn serve(cfg: &ServerConfig) { let listener = TcpListener::bind(&cfg.bind).unwrap(); + while let Ok((mut stream, _)) = listener.accept().await { monoio::spawn(async move { let mut buf = vec![0; PACKET_SIZE]; diff --git a/nio-server/Cargo.toml b/nio-server/Cargo.toml new file mode 100644 index 0000000..bfc860d --- /dev/null +++ b/nio-server/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "nio-server" +version = "0.1.0" +edition = "2024" + +[dependencies] +nio = { workspace = true } +tokio = { version = "1", features = [ + "io-util", +] } # Doesn't compile with tokio from git for some reason +config = { path = "../config" } diff --git a/nio-server/src/main.rs b/nio-server/src/main.rs new file mode 100644 index 0000000..aea8ce6 --- /dev/null +++ b/nio-server/src/main.rs @@ -0,0 +1,45 @@ +use config::{PACKET_SIZE, ServerConfig}; +use nio::{net::TcpListener, runtime::Runtime}; +use tokio::io::{AsyncReadExt, AsyncWriteExt}; + +fn main() { + let cfg = ServerConfig::parse(); + let cores = cfg.cores.len(); + println!( + "Running ping pong server with Nio.\nPacket size: {}\nListen {}\nCPU count: {}", + PACKET_SIZE, cfg.bind, cores + ); + + let rt = nio::runtime::Builder::new_multi_thread() + .enable_all() + .worker_threads(cores) + .build() + .unwrap(); + + rt.block_on(serve(&cfg, &rt)) +} + +async fn serve(cfg: &ServerConfig, rt: &Runtime) { + let listener = TcpListener::bind(&cfg.bind).await.unwrap(); + + loop { + let (mut stream, _) = listener.accept().await.unwrap(); + rt.spawn(async move { + let mut buf = vec![0; PACKET_SIZE]; + loop { + match stream.read_exact(&mut buf).await { + Ok(_) => {} + Err(_) => { + return; + } + } + match stream.write_all(&buf).await { + Ok(_) => {} + Err(_) => { + return; + } + } + } + }); + } +} diff --git a/run-client.sh b/run-client.sh new file mode 100755 index 0000000..eee48f6 --- /dev/null +++ b/run-client.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +server="127.0.0.1:40000" +timeout_duration=60.5 +max_connections=100 +step=10 +name="benchmark" +cores="" + +while [[ $# -gt 0 ]]; do + case $1 in + --name) + name="$2" + shift 2 + ;; + --cores) + cores="$2" + shift 2 + ;; + --timeout) + timeout_duration="$2" + shift 2 + ;; + --max-connections) + max_connections="$2" + shift 2 + ;; + --step) + step="$2" + shift 2 + ;; + --server) + server="$2" + shift 2 + ;; + *) + echo "Unknown option: $1" + echo "Usage: $0 --name --cores [--timeout ] [--max-connections ] [--step ] [--server ]" + exit 1 + ;; + esac +done + +if [ -z "$cores" ]; then + echo "Error: --cores is required" + echo "Usage: $0 --name --cores [--timeout ] [--max-connections ] [--step ] [--server ]" + exit 1 +fi + +dir="data/${name}" +mkdir -p $dir +echo "conns,rps,lat" > $dir/all.csv + +conns=$(seq $step $step $max_connections) +cmd="./target/release/client --target $server --cores $cores" + +echo "Starting benchmark: $name" +echo "Server: $server" +echo "Cores: $cores" +echo "Max connections: $max_connections" +echo "Timeout: $timeout_duration seconds" +echo "Output directory: $dir" +echo "" + +for i in $conns; do + echo "Running with $i conns-per-core" + output="$dir/$i.txt" + timeout $timeout_duration $cmd --conns-per-core $i 2>&1 | tee $output + + rps=$(tail -n1 $output | awk '{print $7}' | tr -d ';') + lat=$(tail -n1 $output | awk '{print $9}') + echo "$i,$rps,$lat" + echo "" + echo "$i,$rps,$lat" >> $dir/all.csv + sleep 5 +done + +echo "Benchmark complete. Results saved to $dir/all.csv" diff --git a/smol-server/Cargo.toml b/smol-server/Cargo.toml new file mode 100644 index 0000000..4f38b95 --- /dev/null +++ b/smol-server/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "smol-server" +version = "0.1.0" +edition = "2024" + +[dependencies] +config = { path = "../config" } +smol = { workspace = true } +futures-lite = { workspace = true } diff --git a/smol-server/src/main.rs b/smol-server/src/main.rs new file mode 100644 index 0000000..289ef45 --- /dev/null +++ b/smol-server/src/main.rs @@ -0,0 +1,44 @@ +use std::sync::Arc; + +use config::{PACKET_SIZE, ServerConfig}; +use smol::future; +use smol::io::{AsyncReadExt, AsyncWriteExt}; +use smol::{Executor, net::TcpListener}; + +fn main() { + let cfg = Arc::new(ServerConfig::parse()); + let cores = cfg.cores.len(); + println!( + "Running ping pong server with Smol.\nPacket size: {}\nListen {}\nCPU count: {}", + PACKET_SIZE, cfg.bind, cores + ); + + let ex = Arc::new(smol::Executor::new()); + future::block_on(ex.run(serve(cfg, ex.clone()))); +} + +async fn serve(cfg: Arc, ex: Arc>) { + let listener = TcpListener::bind(&cfg.bind).await.unwrap(); + + loop { + let (mut stream, _) = listener.accept().await.unwrap(); + ex.spawn(async move { + let mut buf = vec![0; PACKET_SIZE]; + loop { + match stream.read_exact(&mut buf).await { + Ok(_) => {} + Err(_) => { + return; + } + } + match stream.write_all(&buf).await { + Ok(_) => {} + Err(_) => { + return; + } + } + } + }) + .detach(); + } +} diff --git a/tokio-server/Cargo.toml b/tokio-server/Cargo.toml index ac8c8fe..61d9146 100644 --- a/tokio-server/Cargo.toml +++ b/tokio-server/Cargo.toml @@ -1,9 +1,8 @@ [package] name = "tokio-server" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] -config = {path="../config"} - -tokio = {version = "1", features = ["full"]} +config = { path = "../config" } +tokio = { workspace = true } diff --git a/tokio-server/src/main.rs b/tokio-server/src/main.rs index 9b2183c..cd6b8e9 100644 --- a/tokio-server/src/main.rs +++ b/tokio-server/src/main.rs @@ -1,6 +1,6 @@ // Since we can hardly control every thread, we should use `taskset`. -use config::{ServerConfig, PACKET_SIZE}; +use config::{PACKET_SIZE, ServerConfig}; use tokio::{ io::{AsyncReadExt, AsyncWriteExt}, net::TcpListener, @@ -14,6 +14,7 @@ fn main() { "Running ping pong server with Tokio.\nPacket size: {}\nListen {}\nCPU count: {}", PACKET_SIZE, cfg.bind, cores ); + let rt = if cores == 1 { Builder::new_current_thread().enable_all().build().unwrap() } else { diff --git a/tokio-uring-server/Cargo.toml b/tokio-uring-server/Cargo.toml new file mode 100644 index 0000000..fc1cf87 --- /dev/null +++ b/tokio-uring-server/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "tokio-uring-server" +version = "0.1.0" +edition = "2024" + +[dependencies] +config = { path = "../config" } +socket2 = { workspace = true } +nix = { workspace = true } +tokio-uring = { workspace = true } diff --git a/tokio-uring-server/src/main.rs b/tokio-uring-server/src/main.rs new file mode 100644 index 0000000..e0f8037 --- /dev/null +++ b/tokio-uring-server/src/main.rs @@ -0,0 +1,78 @@ +use std::sync::Arc; + +use config::{PACKET_SIZE, ServerConfig}; +use socket2::{Protocol, Type}; + +fn main() { + let cfg = Arc::new(ServerConfig::parse()); + println!( + "Running ping pong server with Tokio Uring.\nPacket size: {}\nListen {}", + PACKET_SIZE, cfg.bind + ); + + if cfg.cores.len() == 1 { + tokio_uring::start(async { + serve(&cfg).await; + }); + } else { + let mut threads = Vec::with_capacity(cfg.cores.len()); + for cpu in cfg.cores.iter() { + let cfg_ = cfg.clone(); + let cpu_ = *cpu as _; + let h = std::thread::spawn(move || { + let mut cpu_set = nix::sched::CpuSet::new(); + cpu_set.set(cpu_).unwrap(); + nix::sched::sched_setaffinity(nix::unistd::Pid::from_raw(0), &cpu_set).unwrap(); + + let mut builder = tokio_uring::builder(); + builder.entries(32768); + let rt = tokio_uring::Runtime::new(&builder).unwrap(); + rt.block_on(serve(&cfg_)); + }); + threads.push(h); + } + + for thread in threads { + thread.join().unwrap(); + } + } +} + +async fn serve(cfg: &ServerConfig) { + let addr = cfg.bind.parse().unwrap(); + let domain = socket2::Domain::for_address(addr); + + let socket = socket2::Socket::new(domain, Type::STREAM, Some(Protocol::TCP)).unwrap(); + socket.set_reuse_port(true).unwrap(); // this is not done by default like it is on monoio + socket.bind(&addr.into()).unwrap(); + socket.listen(1024).unwrap(); + + let listener: std::net::TcpListener = socket.into(); + let listener = tokio_uring::net::TcpListener::from_std(listener); + + loop { + let (stream, _) = listener.accept().await.unwrap(); + + tokio_uring::spawn(async move { + let mut buf = vec![0; PACKET_SIZE]; + + loop { + let (result, buf2) = stream.read(buf).await; + + if result.is_err() { + return; + } + + buf = buf2; + + let (result, buf2) = stream.write(buf).submit().await; + + if result.is_err() { + return; + } + + buf = buf2; + } + }); + } +}