diff --git a/Cargo.lock b/Cargo.lock index 8346d1ccf..8e889d25b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -152,6 +152,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -166,6 +167,21 @@ dependencies = [ "memchr", ] +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + [[package]] name = "allocator-api2" version = "0.2.21" @@ -632,6 +648,24 @@ version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +[[package]] +name = "ar_archive_writer" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c269894b6fe5e9d7ada0cf69b5bf847ff35bc25fc271f08e1d080fce80339a" +dependencies = [ + "object 0.32.2", +] + +[[package]] +name = "argminmax" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f13d10a41ac8d2ec79ee34178d61e6f47a29c2edfe7ef1721c7383b0359e65" +dependencies = [ + "num-traits", +] + [[package]] name = "ark-bn254" version = "0.5.0" @@ -945,6 +979,12 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "array-init-cursor" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed51fe0f224d1d4ea768be38c51f9f831dee9d05c163c11fba0b8c44387b1fc3" + [[package]] name = "arrayref" version = "0.3.9" @@ -1125,6 +1165,28 @@ dependencies = [ "wasm-bindgen-futures", ] +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "async-task" version = "4.7.1" @@ -1167,6 +1229,21 @@ dependencies = [ "rustc_version 0.4.1", ] +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + +[[package]] +name = "atoi_simd" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae037714f313c1353189ead58ef9eec30a8e8dc101b2622d461418fd59e28a9" + [[package]] name = "atomic-waker" version = "1.1.2" @@ -1349,7 +1426,7 @@ dependencies = [ "cfg-if", "libc", "miniz_oxide", - "object", + "object 0.37.3", "rustc-demangle", "windows-link", ] @@ -1511,6 +1588,9 @@ name = "bitflags" version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +dependencies = [ + "serde_core", +] [[package]] name = "bitmaps" @@ -1677,6 +1757,27 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "brotli" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a334ef7c9e23abf0ce748e8cd309037da93e606ad52eb372e4ce327a0dcfbdfd" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + [[package]] name = "build-data" version = "0.3.3" @@ -1781,6 +1882,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" +[[package]] +name = "castaway" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" +dependencies = [ + "rustversion", +] + [[package]] name = "cc" version = "1.2.48" @@ -1788,6 +1898,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a" dependencies = [ "find-msvc-tools", + "jobserver", + "libc", "shlex", ] @@ -1814,10 +1926,11 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "charming" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ffae2e616ae7d66b2e9ea369f1c7650042bdcdc1dc08b04b027107007b4f09" +checksum = "df19cf7d4540f4db08203dce5171421fdfc5e83ea3f14d7b5329f0dbff3bf3c2" dependencies = [ + "charming_macros", "deno_core", "handlebars", "serde", @@ -1826,6 +1939,17 @@ dependencies = [ "serde_with", ] +[[package]] +name = "charming_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ec2398273c047c67d69794a924b1a2a5c14a5fab6bcbe8b24e86a0df9328e5e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "chkstk_stub" version = "0.1.0" @@ -1916,6 +2040,28 @@ dependencies = [ "windows-link", ] +[[package]] +name = "chrono-tz" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59ae0466b83e838b81a54256c39d5d7c20b9d7daa10510a242d9b75abd5936e" +dependencies = [ + "chrono", + "chrono-tz-build", + "phf", +] + +[[package]] +name = "chrono-tz-build" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f" +dependencies = [ + "parse-zoneinfo", + "phf", + "phf_codegen", +] + [[package]] name = "ciborium" version = "0.2.2" @@ -2051,7 +2197,7 @@ checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" dependencies = [ "serde", "termcolor", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -2087,6 +2233,32 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +[[package]] +name = "comfy-table" +version = "7.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" +dependencies = [ + "crossterm", + "unicode-segmentation", + "unicode-width 0.2.2", +] + +[[package]] +name = "compact_str" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" +dependencies = [ + "castaway", + "cfg-if", + "itoa", + "rustversion", + "ryu", + "serde", + "static_assertions", +] + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -2185,6 +2357,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -2290,12 +2472,44 @@ 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 = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags", + "crossterm_winapi", + "document-features", + "parking_lot", + "rustix 1.1.2", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + [[package]] name = "crunchy" version = "0.2.4" @@ -2524,9 +2738,9 @@ dependencies = [ [[package]] name = "deno_core" -version = "0.348.0" +version = "0.351.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7902cd1dde9e8ffc953428933f37f9b943dc123265709220cded6277946cadf7" +checksum = "4301eb6d378f3ae81fbac4cde14c3f467379efd7d46043268d76905effe3611d" dependencies = [ "anyhow", "az", @@ -2568,9 +2782,9 @@ checksum = "fe4dccb6147bb3f3ba0c7a48e993bfeb999d2c2e47a81badee80e2b370c8d695" [[package]] name = "deno_error" -version = "0.5.7" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e983933fb4958fbe1e0a63c1e89a2af72b12c409e86404e547955564e6e217b8" +checksum = "612ec3fc481fea759141b0c57810889b0a4fb6fee8f10748677bfe492fd30486" dependencies = [ "deno_error_macro", "libc", @@ -2582,9 +2796,9 @@ dependencies = [ [[package]] name = "deno_error_macro" -version = "0.5.7" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ad5ae3ef15db33e917d6ed54b53d0a98d068c4d1217eb35a4997423203c3ef" +checksum = "8380a4224d5d2c3f84da4d764c4326cac62e9a1e3d4960442d29136fc07be863" dependencies = [ "proc-macro2", "quote", @@ -2593,9 +2807,9 @@ dependencies = [ [[package]] name = "deno_ops" -version = "0.224.0" +version = "0.227.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55db7994eccbdad457ca5091c545af712234c8f6e4389cadb2a24d2ecbbe7e89" +checksum = "1bab1eaf578a8cc0ae6fb933e91dc3388b41df22e5974d5891c17ba66b3a0bbb" dependencies = [ "indexmap 2.12.1", "proc-macro-rules", @@ -2610,9 +2824,9 @@ dependencies = [ [[package]] name = "deno_path_util" -version = "0.3.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8850326ea9cb786aafd938f3de9866432904c0bae3aa0139a7a4e570b0174f6" +checksum = "516f813389095889776b81cc9108ff6f336fd9409b4b12fc0138aea23d2708e1" dependencies = [ "deno_error", "percent-encoding", @@ -2818,6 +3032,21 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "doc-comment" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "780955b8b195a21ab8e4ac6b60dd1dbdcec1dc6c51c0617964b08c81785e12c9" + +[[package]] +name = "document-features" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" +dependencies = [ + "litrs", +] + [[package]] name = "duct" version = "1.1.1" @@ -2932,6 +3161,18 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "env_logger" version = "0.10.2" @@ -2961,6 +3202,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "ethnum" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca81e6b4777c89fd810c25a4be2b1bd93ea034fbe58e6a75216a34c6b82c539b" + [[package]] name = "event-listener" version = "2.5.3" @@ -2998,6 +3245,18 @@ dependencies = [ "once_cell", ] +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" + +[[package]] +name = "fast-float" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c" + [[package]] name = "fastrand" version = "2.3.0" @@ -3076,6 +3335,15 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "float-cmp" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" +dependencies = [ + "num-traits", +] + [[package]] name = "fm" version = "1.0.0-beta.8" @@ -3113,6 +3381,16 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs4" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c6b3bd49c37d2aa3f3f2220233b29a7cd23f79d1fe70e5337d25fb390793de" +dependencies = [ + "rustix 0.38.44", + "windows-sys 0.52.0", +] + [[package]] name = "fslock" version = "0.2.1" @@ -3408,6 +3686,16 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "halfbrown" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" +dependencies = [ + "hashbrown 0.14.5", + "serde", +] + [[package]] name = "handlebars" version = "6.3.2" @@ -3447,6 +3735,8 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", "allocator-api2", + "rayon", + "serde", ] [[package]] @@ -3456,7 +3746,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", + "equivalent", "foldhash 0.1.5", + "rayon", + "serde", ] [[package]] @@ -3641,6 +3934,7 @@ dependencies = [ "hyper", "hyper-util", "rustls 0.23.35", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", @@ -3687,7 +3981,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core", + "windows-core 0.62.2", ] [[package]] @@ -3877,6 +4171,15 @@ dependencies = [ "serde_core", ] +[[package]] +name = "indoc" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] + [[package]] name = "inout" version = "0.1.4" @@ -3987,6 +4290,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "itoap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8" + [[package]] name = "itybity" version = "0.2.1" @@ -4002,6 +4311,16 @@ dependencies = [ "rayon", ] +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.4", + "libc", +] + [[package]] name = "js-sys" version = "0.3.83" @@ -4147,6 +4466,12 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +[[package]] +name = "litrs" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" + [[package]] name = "lock_api" version = "0.4.14" @@ -4190,6 +4515,25 @@ dependencies = [ "futures-util", ] +[[package]] +name = "lz4" +version = "1.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4" +dependencies = [ + "lz4-sys", +] + +[[package]] +name = "lz4-sys" +version = "1.11.1+lz4-1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "macro-string" version = "0.1.4" @@ -4230,12 +4574,40 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + [[package]] name = "memchr" version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +[[package]] +name = "memmap2" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + [[package]] name = "mime" version = "0.3.17" @@ -4679,6 +5051,28 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" +[[package]] +name = "multiversion" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4851161a11d3ad0bf9402d90ffc3967bf231768bfd7aeb61755ad06dbf1a142" +dependencies = [ + "multiversion-macros", + "target-features", +] + +[[package]] +name = "multiversion-macros" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79a74ddee9e0c27d2578323c13905793e91622148f138ba29738f9dddb835e90" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "target-features", +] + [[package]] name = "nargo" version = "1.0.0-beta.8" @@ -4919,6 +5313,24 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "now" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d89e9874397a1f0a52fc1f197a8effd9735223cb2390e9dcc83ac6cd02923d0" +dependencies = [ + "chrono", +] + +[[package]] +name = "ntapi" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c70f219e21142367c70c0b30c6a9e3a14d55b4d12a204d897fbec83a0363f081" +dependencies = [ + "winapi", +] + [[package]] name = "nu-ansi-term" version = "0.50.3" @@ -5025,6 +5437,15 @@ dependencies = [ "smallvec", ] +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + [[package]] name = "object" version = "0.37.3" @@ -5034,6 +5455,36 @@ dependencies = [ "memchr", ] +[[package]] +name = "object_store" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6da452820c715ce78221e8202ccc599b4a52f3e1eb3eedb487b680c81a8e3f3" +dependencies = [ + "async-trait", + "base64 0.22.1", + "bytes", + "chrono", + "futures", + "humantime", + "hyper", + "itertools 0.13.0", + "md-5", + "parking_lot", + "percent-encoding", + "quick-xml", + "rand 0.8.5", + "reqwest", + "ring 0.17.14", + "serde", + "serde_json", + "snafu", + "tokio", + "tracing", + "url", + "walkdir", +] + [[package]] name = "once_cell" version = "1.21.3" @@ -5058,6 +5509,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + [[package]] name = "os_pipe" version = "1.2.3" @@ -5150,6 +5607,15 @@ dependencies = [ "windows-link", ] +[[package]] +name = "parse-zoneinfo" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24" +dependencies = [ + "regex", +] + [[package]] name = "paste" version = "1.0.15" @@ -5246,6 +5712,44 @@ dependencies = [ "rustc_version 0.4.1", ] +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared", + "rand 0.8.5", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project" version = "1.1.10" @@ -5299,6 +5803,21 @@ dependencies = [ "spki", ] +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "planus" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1691dd09e82f428ce8d6310bd6d5da2557c82ff17694d2a32cad7242aea89f" +dependencies = [ + "array-init-cursor", +] + [[package]] name = "plotters" version = "0.3.7" @@ -5327,6 +5846,537 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "polars" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f65c6aa86d991a64c95416a61202f7952da2f8cccefa448f9a23c1b8f2301ecc" +dependencies = [ + "getrandom 0.2.16", + "polars-arrow", + "polars-core", + "polars-error", + "polars-io", + "polars-lazy", + "polars-ops", + "polars-parquet", + "polars-sql", + "polars-time", + "polars-utils", + "version_check", +] + +[[package]] +name = "polars-arrow" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87dbb24d29ddea5abb73d7954df8b8d3d4bb7f02a3e5c96d1519cdad9e816a3d" +dependencies = [ + "ahash", + "atoi", + "atoi_simd", + "bytemuck", + "chrono", + "chrono-tz", + "dyn-clone", + "either", + "ethnum", + "fast-float", + "getrandom 0.2.16", + "hashbrown 0.15.5", + "itoa", + "itoap", + "lz4", + "multiversion", + "num-traits", + "parking_lot", + "polars-arrow-format", + "polars-error", + "polars-schema", + "polars-utils", + "ryu", + "serde", + "simdutf8", + "streaming-iterator", + "strength_reduce", + "strum_macros 0.26.4", + "version_check", + "zstd", +] + +[[package]] +name = "polars-arrow-format" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b0ef2474af9396b19025b189d96e992311e6a47f90c53cd998b36c4c64b84c" +dependencies = [ + "planus", + "serde", +] + +[[package]] +name = "polars-compute" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbdb1071147452a4c4b25560f23d2fbaffef255b04757291131b22fc2c0d35b2" +dependencies = [ + "bytemuck", + "either", + "num-traits", + "polars-arrow", + "polars-error", + "polars-utils", + "strength_reduce", + "version_check", +] + +[[package]] +name = "polars-core" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5df9b55e614088a3270b06f8649dce76537c268d6b1ca4d9c37008b2be5949" +dependencies = [ + "ahash", + "bitflags", + "bytemuck", + "chrono", + "chrono-tz", + "comfy-table", + "either", + "hashbrown 0.14.5", + "hashbrown 0.15.5", + "indexmap 2.12.1", + "num-traits", + "once_cell", + "polars-arrow", + "polars-compute", + "polars-error", + "polars-row", + "polars-schema", + "polars-utils", + "rand 0.8.5", + "rand_distr", + "rayon", + "regex", + "serde", + "serde_json", + "strum_macros 0.26.4", + "thiserror 1.0.69", + "version_check", + "xxhash-rust", +] + +[[package]] +name = "polars-error" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4643898a644f30c83737db85f942f8c8956b0c11190b39afec745218eae1746b" +dependencies = [ + "object_store", + "polars-arrow-format", + "regex", + "simdutf8", + "thiserror 1.0.69", +] + +[[package]] +name = "polars-expr" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea1b431ed816cba1120cff200f06b962748001bbb2e615ce53cfbbdf701cc136" +dependencies = [ + "ahash", + "bitflags", + "hashbrown 0.15.5", + "num-traits", + "once_cell", + "polars-arrow", + "polars-compute", + "polars-core", + "polars-io", + "polars-ops", + "polars-plan", + "polars-row", + "polars-time", + "polars-utils", + "rand 0.8.5", + "rayon", +] + +[[package]] +name = "polars-io" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2fab2c016635cb416b49461fd6419b0208c6c13a4fd065bd65e4a87dbb66314" +dependencies = [ + "ahash", + "async-trait", + "atoi_simd", + "blake3", + "bytes", + "chrono", + "fast-float", + "fs4", + "futures", + "glob", + "hashbrown 0.15.5", + "home", + "itoa", + "memchr", + "memmap2", + "num-traits", + "object_store", + "once_cell", + "percent-encoding", + "polars-arrow", + "polars-core", + "polars-error", + "polars-json", + "polars-parquet", + "polars-schema", + "polars-time", + "polars-utils", + "pyo3", + "rayon", + "regex", + "reqwest", + "ryu", + "serde", + "serde_json", + "simd-json", + "simdutf8", + "tokio", + "tokio-util", + "url", +] + +[[package]] +name = "polars-json" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5c8c057ef04feaf34b6ce52096bdea3a766fa4725f50442078c8a4ee86397bf" +dependencies = [ + "ahash", + "chrono", + "fallible-streaming-iterator", + "hashbrown 0.15.5", + "indexmap 2.12.1", + "itoa", + "num-traits", + "polars-arrow", + "polars-error", + "polars-utils", + "ryu", + "simd-json", + "streaming-iterator", +] + +[[package]] +name = "polars-lazy" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a8ca74f42e7b47cad241b36b98d991cc7fbb51b8d0695a055eb937588d1f310" +dependencies = [ + "ahash", + "bitflags", + "memchr", + "once_cell", + "polars-arrow", + "polars-core", + "polars-expr", + "polars-io", + "polars-mem-engine", + "polars-ops", + "polars-pipe", + "polars-plan", + "polars-stream", + "polars-time", + "polars-utils", + "rayon", + "version_check", +] + +[[package]] +name = "polars-mem-engine" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a32614e5b52c9b83856d80c7e2880b79d83055bfd59969bd1d0b148f9cfdc7a" +dependencies = [ + "futures", + "memmap2", + "polars-arrow", + "polars-core", + "polars-error", + "polars-expr", + "polars-io", + "polars-json", + "polars-ops", + "polars-plan", + "polars-time", + "polars-utils", + "pyo3", + "rayon", + "tokio", +] + +[[package]] +name = "polars-ops" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "035c800fbe5bbd820afeb8313713ed345853bb014e0f821a4025d40cf0d60e1a" +dependencies = [ + "ahash", + "argminmax", + "base64 0.22.1", + "bytemuck", + "chrono", + "chrono-tz", + "either", + "hashbrown 0.15.5", + "hex", + "indexmap 2.12.1", + "memchr", + "num-traits", + "polars-arrow", + "polars-compute", + "polars-core", + "polars-error", + "polars-schema", + "polars-utils", + "rayon", + "regex", + "regex-syntax", + "serde", + "strum_macros 0.26.4", + "unicode-reverse", + "version_check", +] + +[[package]] +name = "polars-parquet" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91dcf1d9f048079376949eaf2e24e240b313ff4a102fb83b57c9a5f807cdca52" +dependencies = [ + "ahash", + "async-stream", + "base64 0.22.1", + "brotli", + "bytemuck", + "ethnum", + "flate2", + "futures", + "hashbrown 0.15.5", + "lz4", + "num-traits", + "polars-arrow", + "polars-compute", + "polars-error", + "polars-parquet-format", + "polars-utils", + "serde", + "simdutf8", + "snap", + "streaming-decompression", + "zstd", +] + +[[package]] +name = "polars-parquet-format" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c025243dcfe8dbc57e94d9f82eb3bef10b565ab180d5b99bed87fd8aea319ce1" +dependencies = [ + "async-trait", + "futures", +] + +[[package]] +name = "polars-pipe" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05936f2b3981eecb2fe74d8ef092bb75a93d2a056b3e4f339f4ac20c71c9e331" +dependencies = [ + "crossbeam-channel", + "crossbeam-queue", + "enum_dispatch", + "hashbrown 0.15.5", + "num-traits", + "polars-arrow", + "polars-compute", + "polars-core", + "polars-expr", + "polars-io", + "polars-ops", + "polars-plan", + "polars-row", + "polars-utils", + "rayon", + "uuid", + "version_check", +] + +[[package]] +name = "polars-plan" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23de436f33f4d1134c58f24e7059a221b957ec20730807e0ef0c80c8e4b3d06a" +dependencies = [ + "ahash", + "bitflags", + "bytemuck", + "bytes", + "chrono", + "chrono-tz", + "ciborium", + "either", + "futures", + "hashbrown 0.15.5", + "memmap2", + "num-traits", + "once_cell", + "percent-encoding", + "polars-arrow", + "polars-core", + "polars-io", + "polars-json", + "polars-ops", + "polars-parquet", + "polars-time", + "polars-utils", + "pyo3", + "rayon", + "recursive", + "regex", + "serde", + "strum_macros 0.26.4", + "version_check", +] + +[[package]] +name = "polars-row" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3823d3de3e614509bba6929798f1f3d5ae05c1cdfc4eb7029d2ec6ad77201da2" +dependencies = [ + "bytemuck", + "polars-arrow", + "polars-error", + "polars-utils", +] + +[[package]] +name = "polars-schema" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d88667f770291cefa2e8cd366a54f29dc6fe362e9a263914c903db411a58ac1d" +dependencies = [ + "indexmap 2.12.1", + "polars-error", + "polars-utils", + "serde", + "version_check", +] + +[[package]] +name = "polars-sql" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69451f08363bb497407f6ebebe00bc01972a51716d20d115b75f9b5326f1f3c8" +dependencies = [ + "hex", + "once_cell", + "polars-arrow", + "polars-core", + "polars-error", + "polars-lazy", + "polars-ops", + "polars-plan", + "polars-time", + "polars-utils", + "rand 0.8.5", + "serde", + "serde_json", + "sqlparser", +] + +[[package]] +name = "polars-stream" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "188622b0a4bc4530cf91a288134254ffa065d18932e261075377914225e757c2" +dependencies = [ + "atomic-waker", + "crossbeam-deque", + "crossbeam-utils", + "futures", + "memmap2", + "parking_lot", + "pin-project-lite", + "polars-core", + "polars-error", + "polars-expr", + "polars-io", + "polars-mem-engine", + "polars-parquet", + "polars-plan", + "polars-utils", + "rand 0.8.5", + "rayon", + "recursive", + "slotmap", + "tokio", + "version_check", +] + +[[package]] +name = "polars-time" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f36e4d6b19f2c406faea585b9a1814f422fc5b310f65ccf8a55216df0754ef" +dependencies = [ + "atoi", + "bytemuck", + "chrono", + "chrono-tz", + "now", + "once_cell", + "polars-arrow", + "polars-core", + "polars-error", + "polars-ops", + "polars-utils", + "regex", + "serde", + "strum_macros 0.26.4", +] + +[[package]] +name = "polars-utils" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96186b70bda00c90b5027bf2f69193c5c40571e80d3e8ec505c22cdc8e3e39aa" +dependencies = [ + "ahash", + "bytemuck", + "bytes", + "compact_str", + "hashbrown 0.15.5", + "indexmap 2.12.1", + "libc", + "memmap2", + "num-traits", + "once_cell", + "polars-error", + "pyo3", + "raw-cpuid", + "rayon", + "serde", + "stacker", + "sysinfo", + "version_check", +] + [[package]] name = "polling" version = "3.11.0" @@ -5371,6 +6421,12 @@ dependencies = [ "universal-hash 0.5.1", ] +[[package]] +name = "portable-atomic" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f59e70c4aef1e55797c2e8fd94a4f2a973fc972cfde0e0b05f683667b0cd39dd" + [[package]] name = "potential_utf" version = "0.1.4" @@ -5581,12 +6637,95 @@ dependencies = [ "zip", ] +[[package]] +name = "psm" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d11f2fedc3b7dafdc2851bc52f277377c5473d378859be234bc7ebb593144d01" +dependencies = [ + "ar_archive_writer", + "cc", +] + +[[package]] +name = "pyo3" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8" +dependencies = [ + "cfg-if", + "indoc", + "libc", + "memoffset", + "parking_lot", + "portable-atomic", + "pyo3-build-config", + "pyo3-ffi", + "pyo3-macros", + "unindent", +] + +[[package]] +name = "pyo3-build-config" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50" +dependencies = [ + "once_cell", + "target-lexicon", +] + +[[package]] +name = "pyo3-ffi" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403" +dependencies = [ + "libc", + "pyo3-build-config", +] + +[[package]] +name = "pyo3-macros" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77b34069fc0682e11b31dbd10321cbf94808394c56fd996796ce45217dfac53c" +dependencies = [ + "proc-macro2", + "pyo3-macros-backend", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "pyo3-macros-backend" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08260721f32db5e1a5beae69a55553f56b99bd0e1c3e6e0a5e8851a9d0f5a85c" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "pyo3-build-config", + "quote", + "syn 2.0.111", +] + [[package]] name = "quick-error" version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-xml" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "quinn" version = "0.11.9" @@ -5735,6 +6874,16 @@ dependencies = [ "serde", ] +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + [[package]] name = "rand_xorshift" version = "0.3.0" @@ -5777,6 +6926,15 @@ dependencies = [ "serde", ] +[[package]] +name = "raw-cpuid" +version = "11.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" +dependencies = [ + "bitflags", +] + [[package]] name = "rayon" version = "1.11.0" @@ -5797,6 +6955,26 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "recursive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0786a43debb760f491b1bc0269fe5e84155353c67482b9e60d0cfb596054b43e" +dependencies = [ + "recursive-proc-macro-impl", + "stacker", +] + +[[package]] +name = "recursive-proc-macro-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b" +dependencies = [ + "quote", + "syn 2.0.111", +] + [[package]] name = "redox_syscall" version = "0.5.18" @@ -5866,6 +7044,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", + "h2", "http 1.4.0", "http-body", "http-body-util", @@ -5878,6 +7057,7 @@ dependencies = [ "pin-project-lite", "quinn", "rustls 0.23.35", + "rustls-native-certs", "rustls-pki-types", "serde", "serde_json", @@ -5885,12 +7065,14 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-rustls", + "tokio-util", "tower", "tower-http 0.6.7", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", "webpki-roots 1.0.4", ] @@ -6196,6 +7378,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-native-certs" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework", +] + [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -6317,6 +7511,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "schemars" version = "0.9.0" @@ -6393,6 +7596,29 @@ dependencies = [ "cc", ] +[[package]] +name = "security-framework" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +dependencies = [ + "bitflags", + "core-foundation 0.10.1", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "semver" version = "0.11.0" @@ -6545,9 +7771,9 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.257.0" +version = "0.260.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c57c63e9203f1d1383df0943e080955999e984e96ecc9557c3bae48e483edfa" +checksum = "d4f284b4d521591b17ddee01aff830dd005a04476f7862aca9298c038d00fb7e" dependencies = [ "deno_error", "num-bigint", @@ -6748,6 +7974,35 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "simd-json" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2bcf6c6e164e81bc7a5d49fc6988b3d515d9e8c07457d7b74ffb9324b9cd40" +dependencies = [ + "ahash", + "getrandom 0.2.16", + "halfbrown", + "once_cell", + "ref-cast", + "serde", + "serde_json", + "simdutf8", + "value-trait", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + [[package]] name = "sized-chunks" version = "0.6.5" @@ -6764,6 +8019,15 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +[[package]] +name = "slotmap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" +dependencies = [ + "version_check", +] + [[package]] name = "small-ord-set" version = "0.1.3" @@ -6792,6 +8056,34 @@ dependencies = [ "serde_core", ] +[[package]] +name = "snafu" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + [[package]] name = "socket2" version = "0.6.1" @@ -6856,18 +8148,61 @@ dependencies = [ "der", ] +[[package]] +name = "sqlparser" +version = "0.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a404d0e14905361b918cb8afdb73605e25c1d5029312bd9785142dcb3aa49e" +dependencies = [ + "log", +] + [[package]] name = "stable_deref_trait" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +[[package]] +name = "stacker" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1f8b29fb42aafcea4edeeb6b2f2d7ecd0d969c48b4cf0d2e64aafc471dd6e59" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "windows-sys 0.59.0", +] + [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "streaming-decompression" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf6cc3b19bfb128a8ad11026086e31d3ce9ad23f8ea37354b31383a187c44cf3" +dependencies = [ + "fallible-streaming-iterator", +] + +[[package]] +name = "streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520" + +[[package]] +name = "strength_reduce" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" + [[package]] name = "stringcase" version = "0.4.0" @@ -6914,6 +8249,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.111", +] + [[package]] name = "strum_macros" version = "0.27.2" @@ -7006,6 +8354,19 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "sysinfo" +version = "0.31.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "355dbe4f8799b304b05e1b0f05fc59b2a18d36645cf169607da45bde2f69a1be" +dependencies = [ + "core-foundation-sys", + "libc", + "memchr", + "ntapi", + "windows", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -7013,7 +8374,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags", - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys", ] @@ -7033,6 +8394,18 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "target-features" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1bbb9f3c5c463a01705937a24fdabc5047929ac764b2d5b9cf681c1f5041ed5" + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + [[package]] name = "tempfile" version = "3.23.0" @@ -7442,8 +8815,7 @@ version = "0.0.0" dependencies = [ "charming", "clap", - "csv", - "itertools 0.14.0", + "polars", "tlsn-harness-core", "toml 0.8.23", ] @@ -8148,6 +9520,15 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +[[package]] +name = "unicode-reverse" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b6f4888ebc23094adfb574fdca9fdc891826287a6397d2cd28802ffd6f20c76" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "unicode-segmentation" version = "1.12.0" @@ -8160,12 +9541,24 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + [[package]] name = "unicode-xid" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "unindent" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" + [[package]] name = "universal-hash" version = "0.4.0" @@ -8255,6 +9648,7 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ + "getrandom 0.3.4", "js-sys", "wasm-bindgen", ] @@ -8287,6 +9681,18 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ba6f5989077681266825251a52748b8c1d8a4ad098cc37e440103d0ea717fc0" +[[package]] +name = "value-trait" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187" +dependencies = [ + "float-cmp", + "halfbrown", + "itoa", + "ryu", +] + [[package]] name = "vec-collections" version = "0.4.3" @@ -8422,10 +9828,23 @@ dependencies = [ ] [[package]] -name = "wasm_dep_analyzer" -version = "0.2.0" +name = "wasm-streams" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eeee3bdea6257cc36d756fa745a70f9d393571e47d69e0ed97581676a5369ca" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasm_dep_analyzer" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51cf5f08b357e64cd7642ab4bbeb11aecab9e15520692129624fb9908b8df2c" dependencies = [ "deno_error", "thiserror 2.0.17", @@ -8570,19 +9989,52 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +dependencies = [ + "windows-core 0.57.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement 0.57.0", + "windows-interface 0.57.0", + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-implement", - "windows-interface", + "windows-implement 0.60.2", + "windows-interface 0.59.3", "windows-link", - "windows-result", + "windows-result 0.4.1", "windows-strings", ] +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "windows-implement" version = "0.60.2" @@ -8594,6 +10046,17 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "windows-interface" version = "0.59.3" @@ -8618,10 +10081,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ "windows-link", - "windows-result", + "windows-result 0.4.1", "windows-strings", ] +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-result" version = "0.4.1" @@ -8945,6 +10417,12 @@ dependencies = [ "tap", ] +[[package]] +name = "xxhash-rust" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" + [[package]] name = "yamux" version = "0.13.8" @@ -9095,3 +10573,31 @@ dependencies = [ "crossbeam-utils", "flate2", ] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.16+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/crates/harness/plot/Cargo.toml b/crates/harness/plot/Cargo.toml index fd8de3a82..8393e3f39 100644 --- a/crates/harness/plot/Cargo.toml +++ b/crates/harness/plot/Cargo.toml @@ -7,10 +7,9 @@ publish = false [dependencies] tlsn-harness-core = { workspace = true } # tlsn-server-fixture = { workspace = true } -charming = { version = "0.5.1", features = ["ssr"] } -csv = "1.3.0" +charming = { version = "0.6.0", features = ["ssr"] } clap = { workspace = true, features = ["derive", "env"] } -itertools = "0.14.0" +polars = { version = "0.44", features = ["csv", "lazy"] } toml = { workspace = true } diff --git a/crates/harness/plot/bin/plot.rs b/crates/harness/plot/bin/plot.rs index 0a107aba1..5f732e1d3 100644 --- a/crates/harness/plot/bin/plot.rs +++ b/crates/harness/plot/bin/plot.rs @@ -1,15 +1,15 @@ use std::f32; use charming::{ - Chart, HtmlRenderer, + Chart, HtmlRenderer, ImageRenderer, component::{Axis, Legend, Title}, element::{AreaStyle, LineStyle, NameLocation, Orient, TextStyle, Tooltip, Trigger}, series::Line, theme::Theme, }; use clap::Parser; -use harness_core::bench::{BenchItems, Measurement}; -use itertools::Itertools; +use harness_core::bench::BenchItems; +use polars::prelude::*; const THEME: Theme = Theme::Default; @@ -49,27 +49,25 @@ impl std::fmt::Display for ProverKind { fn main() -> Result<(), Box> { let cli = Cli::parse(); - let mut rdr = csv::Reader::from_path(&cli.csv)?; + let df = CsvReadOptions::default() + .try_into_reader_with_file_path(Some(cli.csv.clone().into()))? + .finish()?; let items: BenchItems = toml::from_str(&std::fs::read_to_string(&cli.toml)?)?; let groups = items.group; - // Prepare data for plotting. - let all_data: Vec = rdr - .deserialize::() - .collect::, _>>()?; - for group in groups { if group.protocol_latency.is_some() { let latency = group.protocol_latency.unwrap(); plot_runtime_vs( - &all_data, + &df, cli.min_max_band, &group.name, - |r| r.bandwidth as f32 / 1000.0, // Kbps to Mbps + "bandwidth", + 1.0 / 1000.0, // Kbps to Mbps "Runtime vs Bandwidth", format!("{} ms Latency, {} mode", latency, cli.prover_kind), - "runtime_vs_bandwidth.html", + "runtime_vs_bandwidth", "Bandwidth (Mbps)", )?; } @@ -77,13 +75,14 @@ fn main() -> Result<(), Box> { if group.bandwidth.is_some() { let bandwidth = group.bandwidth.unwrap(); plot_runtime_vs( - &all_data, + &df, cli.min_max_band, &group.name, - |r| r.latency as f32, + "latency", + 1.0, "Runtime vs Latency", format!("{} bps bandwidth, {} mode", bandwidth, cli.prover_kind), - "runtime_vs_latency.html", + "runtime_vs_latency", "Latency (ms)", )?; } @@ -92,83 +91,42 @@ fn main() -> Result<(), Box> { Ok(()) } -struct DataPoint { - min: f32, - mean: f32, - max: f32, -} - -struct Points { - preprocess: DataPoint, - online: DataPoint, - total: DataPoint, -} - #[allow(clippy::too_many_arguments)] -fn plot_runtime_vs( - all_data: &[Measurement], +fn plot_runtime_vs( + df: &DataFrame, show_min_max: bool, group: &str, - x_value: Fx, + x_col: &str, + x_scale: f32, title: &str, subtitle: String, output_file: &str, x_axis_label: &str, -) -> Result> -where - Fx: Fn(&Measurement) -> f32, -{ - fn data_point(values: &[f32]) -> DataPoint { - let mean = values.iter().copied().sum::() / values.len() as f32; - let max = values.iter().copied().reduce(f32::max).unwrap_or_default(); - let min = values.iter().copied().reduce(f32::min).unwrap_or_default(); - DataPoint { min, mean, max } - } - - let stats: Vec<(f32, Points)> = all_data - .iter() - .filter(|r| r.group.as_deref() == Some(group)) - .map(|r| { - ( - x_value(r), - r.time_preprocess as f32 / 1000.0, // ms to s - r.time_online as f32 / 1000.0, - r.time_total as f32 / 1000.0, - ) - }) - .sorted_by(|a, b| a.0.partial_cmp(&b.0).unwrap()) - .chunk_by(|entry| entry.0) - .into_iter() - .map(|(x, group)| { - let group_vec: Vec<_> = group.collect(); - let preprocess = data_point( - &group_vec - .iter() - .map(|(_, t, _, _)| *t) - .collect::>(), - ); - let online = data_point( - &group_vec - .iter() - .map(|(_, _, t, _)| *t) - .collect::>(), - ); - let total = data_point( - &group_vec - .iter() - .map(|(_, _, _, t)| *t) - .collect::>(), - ); - ( - x, - Points { - preprocess, - online, - total, - }, - ) - }) - .collect(); +) -> Result> { + let stats_df = df + .clone() + .lazy() + .filter(col("group").eq(lit(group))) + .with_column((col(x_col).cast(DataType::Float32) * lit(x_scale)).alias("x")) + .with_columns([ + (col("time_preprocess").cast(DataType::Float32) / lit(1000.0)).alias("preprocess"), + (col("time_online").cast(DataType::Float32) / lit(1000.0)).alias("online"), + (col("time_total").cast(DataType::Float32) / lit(1000.0)).alias("total"), + ]) + .group_by([col("x")]) + .agg([ + col("preprocess").min().alias("preprocess_min"), + col("preprocess").mean().alias("preprocess_mean"), + col("preprocess").max().alias("preprocess_max"), + col("online").min().alias("online_min"), + col("online").mean().alias("online_mean"), + col("online").max().alias("online_max"), + col("total").min().alias("total_min"), + col("total").mean().alias("total_mean"), + col("total").max().alias("total_max"), + ]) + .sort(["x"], Default::default()) + .collect()?; let mut chart = Chart::new() .title( @@ -205,73 +163,87 @@ where .name_text_style(TextStyle::new().font_size(21)), ); - chart = add_mean_series(chart, &stats, "Preprocess Mean", |p| p.preprocess.mean); - chart = add_mean_series(chart, &stats, "Online Mean", |p| p.online.mean); - chart = add_mean_series(chart, &stats, "Total Mean", |p| p.total.mean); + chart = add_mean_series(&chart, &stats_df, "Preprocess Mean", "preprocess_mean")?; + chart = add_mean_series(&chart, &stats_df, "Online Mean", "online_mean")?; + chart = add_mean_series(&chart, &stats_df, "Total Mean", "total_mean")?; if show_min_max { chart = add_min_max_band( - chart, - &stats, + &chart, + &stats_df, "Preprocess Min/Max", - |p| &p.preprocess, + "preprocess", "#ccc", - ); - chart = add_min_max_band(chart, &stats, "Online Min/Max", |p| &p.online, "#ccc"); - chart = add_min_max_band(chart, &stats, "Total Min/Max", |p| &p.total, "#ccc"); + )?; + chart = add_min_max_band(&chart, &stats_df, "Online Min/Max", "online", "#ccc")?; + chart = add_min_max_band(&chart, &stats_df, "Total Min/Max", "total", "#ccc")?; } // Save the chart as HTML file. HtmlRenderer::new(title, 1000, 800) .theme(THEME) - .save(&chart, output_file) + .save(&chart, &format!("{}.html", output_file)) + .unwrap(); + + ImageRenderer::new(1000, 800) + .theme(THEME) + .save(&chart, &format!("{}.svg", output_file)) .unwrap(); Ok(chart) } fn add_mean_series( - chart: Chart, - stats: &[(f32, Points)], + chart: &Chart, + df: &DataFrame, name: &str, - extract: impl Fn(&Points) -> f32, -) -> Chart { - chart.series( - Line::new() - .name(name) - .data( - stats - .iter() - .map(|(x, points)| vec![*x, extract(points)]) - .collect(), - ) - .symbol_size(6), - ) + col_name: &str, +) -> Result> { + let x = df.column("x")?.f32()?; + let y = df.column(col_name)?.f32()?; + + let data: Vec> = x + .into_iter() + .zip(y.into_iter()) + .filter_map(|(x, y)| Some(vec![x?, y?])) + .collect(); + + Ok(chart + .clone() + .series(Line::new().name(name).data(data).symbol_size(6))) } fn add_min_max_band( - chart: Chart, - stats: &[(f32, Points)], + chart: &Chart, + df: &DataFrame, name: &str, - extract: impl Fn(&Points) -> &DataPoint, + col_prefix: &str, color: &str, -) -> Chart { - chart.series( +) -> Result> { + let x = df.column("x")?.f32()?; + let min_col = df.column(&format!("{}_min", col_prefix))?.f32()?; + let max_col = df.column(&format!("{}_max", col_prefix))?.f32()?; + + let max_data: Vec> = x + .into_iter() + .zip(max_col.into_iter()) + .filter_map(|(x, y)| Some(vec![x?, y?])) + .collect(); + + let min_data: Vec> = x + .into_iter() + .zip(min_col.into_iter()) + .filter_map(|(x, y)| Some(vec![x?, y?])) + .rev() + .collect(); + + let data: Vec> = max_data.into_iter().chain(min_data).collect(); + + Ok(chart.clone().series( Line::new() .name(name) - .data( - stats - .iter() - .map(|(x, points)| vec![*x, extract(points).max]) - .chain( - stats - .iter() - .rev() - .map(|(x, points)| vec![*x, extract(points).min]), - ) - .collect(), - ) + .data(data) .show_symbol(false) .line_style(LineStyle::new().opacity(0.0)) .area_style(AreaStyle::new().opacity(0.3).color(color)), - ) + )) } diff --git a/crates/harness/plot/data/bandwidth.ipynb b/crates/harness/plot/data/bandwidth.ipynb new file mode 100644 index 000000000..a2a419d5e --- /dev/null +++ b/crates/harness/plot/data/bandwidth.ipynb @@ -0,0 +1,105 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "id": "bffb8704-ef7a-46dd-9682-01517628c1c9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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NTUVsbGxWLRoEfbs2RPwOdSkmwTI6XTKX263GwDgdrv9bne5XD7bxfYzM4G2K7c5nU54PB54PB6fbaNipINua3G1b3vRA2TMkeI5vl7e7s18RVH0ae/dHij27vqkjDUYfepue3exB7NP/XmfvD+r2afOcYZy3xus7xP7FP4+BfqM8Hg8EEURoijKCYRob/T58rQ1wdPWJN12tPi0l7crvuBolra3Nfs+tnd7p8cG4BOHMpZA2998800YjUYUFhbihRdewPPPP4+//OUvcnsAeOaZZzBx4kTs2LEDjzzyCLZt24bvfOc7uP7667F371488cQTeOyxx/C3v/0Noihi3rx5OHDgACorKyGKItavX4/k5GSsX79efv22bNmCCy+8EKIoYtmyZRgxYgSKioqwbds2PPTQQzAajfB4PNi3bx+WLFmCq6++Grt378Y777yDTZs24e677w4Y46OPPuq3rz/72c/w4Ycf4vXXX8f27dsxevRoLFmyBFVVVXJbAHjkkUfw+9//HkVFRTCZTLjttts63ifvexvg9fW+ppGRkdi6dSt+97vf4cknn8Tnn38u/85ll12GM2fO4D//+Q+2bduGqVOn4qKLLkJNTU2371+g4ymUBACeHludA95++21ERkYCADIyMjB16lTs2rULpaWlcpucnByMGzcOW7ZsQWVlpbw9NzcXmZmZWLt2LRobG+Xtc+bMQWpqKlatWuXzRi1cuBA2mw35+fnytqJKAW99bcSU4TG4LaPjLJDJZMJl8V8DBY+jPG4qikbeDwCIiYnBokWLUFJSgt27d8vtU1JSkJeXh8OHD/tk7j31afPmzaiqqgpqnwBg6dKlaG1txbp163z7dNllqKioQGFhobw9Ojoadrsd48ePx759+wbcp1C8T33tU3/ep5ycHBQUFPg852Dv07n4PumtT4E+I9avX4+YmBikp6fDYrEgKioKZrMZWBF4NnNn1kI0X/UGACA2NhbCb4ZDcLb4besafj6arnsPAGAwGBD7ai7QUt214Yp6tLa2oq2tTd5ksVgQGRmJlpYWn0tDERERuPTSS3HmzBkUFhZCEKR52H71q19h1apV+OqrryCKIiZPnozJkyfjo48+gtlsRl1dHW6//XZUV1fj3//+N2JiYiAIAu677z4UFBSgsLAQHo8HY8eOxZ/+9CcsXrwY8+bNw9VXX41XXnkF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6fPku+dnwhXgDFBWku9nxA2zMtDq8P8ZMTze5nP72ukjuj1LrHT11OGoavL/GRFn870qcvnkoT6f90pREUaf29+amIYJQztem5amBjzj9zeDQzc1QGovhZHvbx0uxqDLGLgUBmmRFo4NIqVQL4Whm2Eoao88SklJYQyMAYA0CsxsNnMUGGmKFo4NIiWOAgsSrgVGREQ0eHAtsCBRuwj68OHDjIExAJCWwti0aROXwiBN0cKxQaQU6n1RNwmQ2gtwHjlyhDEwBgDSYqjV1dVcDJU0RQvHBpESF0MlIiIiCjImQERERKQ7ukmA1BxxYzAYkJGRwRgYAwDAZDIhKioKJhOn4SLt0MKxQaQU6n2Ro8CIiIhIczgKLEjUHnm0a9cuxsAYAEijwNasWcNRYKQpWjg2iJQ4CixI1B55VFpayhgYAwBpFFhzczNHgZGmaOHYIFLiKDAiIiKiINNNFWZNTccKswaDAUajEW632yfD9G53uVzweDpKo4xGIwwGQ8DtTqfvAnLe4lbvf/hOpxMtLS2or6+H2Wzu8p+/2WyGKIo+p/sEQYDJZAq4PVDsgba3traipaUF1dXVMJvNA+5TT9v99cnlcqGlpQV1dXU+xW397VN/3ifve1FdXQ2bzTbgPvXnfWpra0NLSwtqamrQ2to64D71JvZQ9ymcxxP7FJo+aeEzgu8T+6SMvba2FqGkmyJoIiIiIi9eAiMiIiLdYQJEREREusMEiIiIiHSHCRARERHpDhMgIiIi0h0mQERERKQ7TICIiIhId5gAERERke4wASIiIiLdYQJEREREusMEiIiIiHSHCRARERHpDhMgIiIi0h0mQERERKQ7TICIiIhId5gAERERke4wASIiIiLdYQJEREREusMEiIiIiHSHCRARERHpDhMgIiIi0h0mQERERKQ7TICIiIhId5gAERERke4wASIiIiLdYQJEREREusMEiIiIiHSHCRARERHpDhMgIiIi0h0mQERERKQ7TICIiIhId5gAERERke4wASIiIiLdYQJEREREusMEiIiIiHSHCRARERHpDhMgIiIi0h0mQERERKQ7TICIiIhId5gAERERke4wASIiIiLdYQJEREREusMEiIiIiHSHCRARERHpDhMgIiIi0h0mQERERKQ7TICIiIhId5gAERERke4wASIiIiLdYQJEREREusMEiIiIiHSHCRARERHpzv8HLgz33Sxq7HUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from brokenaxes import brokenaxes\n", + "import pandas as pd\n", + "\n", + "for dark in [True, False]:\n", + " plt.figure()\n", + " if dark:\n", + " plt.style.use(\"dark_background\")\n", + " else:\n", + " plt.style.use(\"default\")\n", + "\n", + " df_native = pd.read_csv(\"bandwidth.native.csv\", header=0)\n", + " df_browser = pd.read_csv(\"bandwidth.browser.csv\", header=0)\n", + "\n", + "\n", + " agg_total_native = df_native.groupby(\"bandwidth\")[\"time_total\"].mean().reset_index()\n", + " agg_total_browser = df_browser.groupby(\"bandwidth\")[\"time_total\"].mean().reset_index()\n", + "\n", + " agg_online_native = df_native.groupby(\"bandwidth\")[\"time_online\"].mean().reset_index()\n", + " agg_online_browser = df_browser.groupby(\"bandwidth\")[\"time_online\"].mean().reset_index()\n", + "\n", + "\n", + " plt.plot(agg_total_native[\"bandwidth\"], agg_total_native[\"time_total\"]/1000.0, label=\"native\")\n", + " plt.plot(agg_total_browser[\"bandwidth\"], agg_total_browser[\"time_total\"]/1000.0, label=\"browser\")\n", + " plt.plot(agg_online_native[\"bandwidth\"], agg_online_native[\"time_online\"]/1000.0, label=\"native online\", color='C0', linestyle='--')\n", + " plt.plot(agg_online_browser[\"bandwidth\"], agg_online_browser[\"time_online\"]/1000.0, label=\"browser online\", color='C1', linestyle='--')\n", + "\n", + " plt.xticks(list(range(0, 120, 20)) + list(range(100, 400, 100)) )\n", + " plt.xlim(0, 300)\n", + " plt.ylim(0, 32)\n", + " \n", + " plt.xlabel(\"Bandwidth (Mbps)\")\n", + " plt.ylabel(\"Runtime (sec)\")\n", + " plt.title(\"Upload bandwidth effect on protocol runtime\")\n", + " plt.legend(loc=\"upper right\") \n", + "\n", + " plt.grid(True, linestyle=\"--\")\n", + "\n", + " svg_name = \"bandwidth_dark.svg\" if dark else \"bandwidth_light.svg\"\n", + " plt.savefig(svg_name, bbox_inches=\"tight\")\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b02379fc-3c4b-4ec6-b340-44ee0d01a687", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/crates/harness/plot/data/download.ipynb b/crates/harness/plot/data/download.ipynb new file mode 100644 index 000000000..93e16706e --- /dev/null +++ b/crates/harness/plot/data/download.ipynb @@ -0,0 +1,163 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "5d91e955-ef4d-47a0-a254-9e3f64f46deb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHFCAYAAAAaD0bAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdPVJREFUeJzt3Xd4VNXWx/HvpPdAQkihhARCr4L0LkWKXjtSBOyKgMCLFBtFBEXlqqjYrvVauPYGCChVQBBUEBDpIBJCTUhIn/3+cchISIIhJJlJ8vs8Tx7Y+5w5s+ZMklnZZ5+9bMYYg4iIiEgF4ubsAERERERKmxIgERERqXCUAImIiEiFowRIREREKhwlQCIiIlLhKAESERGRCkcJkIiIiFQ4SoBERESkwlECJCIiIhWOEiAp0FtvvYXNZnN8eXh4EBkZyc0338zOnTudHV65tXz5cmw2G8uXL3d2KPk6ceIEN998M1WrVsVms3HNNdcAsG/fPvr160dISAg2m40xY8YU+3O/9NJLvPXWW8V+3LLE1c5B165d6dq1q7PDyGPmzJl8/vnnefpd/edLSo9NpTCkIG+99Ra33norb775JvXr1yctLY0ffviBxx9/nMDAQH7//XcqV67s7DDLnaSkJLZt20bDhg0JCgpydjh5jB07lpdeeok33niD2rVrExISQt26dbn22mtZtWoVr7/+OhEREURGRhIdHV2sz924cWOqVKlSoT+8XO0c5CQ/rhJPjoCAAG644YY8yaKr/3xJ6fFwdgDi+ho3bkyrVq0A65dddnY2U6ZM4fPPP+fWW291cnTlT1BQEG3btnV2GAX67bffqF27NoMHD87T37p1a8eIkBTOmTNn8PPzc3YYTpGamoqvr2+pPqer/3xJ6dElMLloOcnQkSNHcvX/9NNPXH311YSEhODj40OLFi343//+l2ufM2fOMH78eGJiYvDx8SEkJIRWrVrxwQcfOPYZPnw4AQEBbN26lSuuuAJ/f3/CwsIYOXIkZ86cyXW8tLQ0Jk+eTExMDF5eXlSrVo377ruPU6dO5dqvVq1a9O/fn0WLFnHZZZfh6+tL/fr1eeONNy46vsK+1oLMmzePZs2aERAQQGBgIPXr1+fBBx90bD9/iH7fvn25LkWe/3WupUuXcsUVVxAUFISfnx8dOnTgu+++K1RcSUlJjteecy7HjBlDSkpKrjiWLl3K9u3bHc+fE++uXbtYuHCho3/fvn2FOm4Ou93O3Llzad68Ob6+vlSqVIm2bdvy5ZdfAtZ7uHXrVlasWOF4jlq1al3wNRX390d+cs7L7Nmzefzxx6lZsyY+Pj60atUqz7mfOnUqNpuNTZs2ccMNN1C5cmVq165d6Fj/6RwcOHCAIUOGULVqVby9vWnQoAHPPPMMdrs9Vxzp6elMnz6dBg0a4OPjQ2hoKN26dWPNmjUXfe4KK+ccf/rpp7Ro0QIfHx+mTZvmOH/5Xdaz2WxMnTo1z/nbunUrAwcOJDg4mPDwcG677TYSExNzPS4lJYW3337bcZ7OHak6/xJYzu+c33//nd69e+Pv709kZCRPPPEEAOvWraNjx474+/tTt25d3n777TyxxsfHc/fdd1O9enW8vLyIiYlh2rRpZGVlFel8SSkwIgV48803DWA2bNiQq/+FF14wgPnkk08cfd9//73x8vIynTp1MvPnzzeLFi0yw4cPN4B58803Hfvdfffdxs/Pz8yZM8csW7bMfP311+aJJ54wc+fOdewzbNgw4+XlZWrWrGkef/xxs3jxYjN16lTj4eFh+vfv79jPbreb3r17Gw8PD/PII4+YxYsXm6efftr4+/ubFi1amLS0NMe+0dHRpnr16qZhw4bmnXfeMd9++6258cYbDWBWrFhxUfEV9rXm54MPPjCAGTVqlFm8eLFZunSpefnll83o0aMd+yxbtswAZtmyZcYYY9LS0szatWtzfX355ZcmKCjINGjQwPG4d99919hsNnPNNdeYTz/91Hz11Vemf//+xt3d3SxduvSCcaWkpJjmzZubKlWqmDlz5pilS5ea5557zgQHB5vu3bsbu93uiKNFixYmNjbWEUtiYqJZu3atiYiIMB06dHD0p6WlFeq4OW655RZjs9nMHXfcYb744guzcOFC8/jjj5vnnnvOGGPMpk2bTGxsrGnRooXjOTZt2lTgayqJ74/87N271wCmRo0apmPHjuaTTz4xH330kbn88suNp6enWbNmjWPfKVOmGMBER0ebiRMnmiVLlpjPP/+80LFe6BwkJCSYatWqmbCwMPPyyy+bRYsWmZEjRxrA3HvvvY4YMjMzTbdu3YyHh4cZP368WbBggfnyyy/Ngw8+aD744IOLPnddunQxXbp0ueA5yjnHkZGRJjY21rzxxhtm2bJlZv369Y7zl9/PDmCmTJmS5/zVq1fPPProo2bJkiVmzpw5xtvb29x6662O/dauXWt8fX1N3759Hedp69atxpi8P1/G/P07p0GDBua5554zS5YsMbfeeqsBzOTJk03dunXNf/7zH/Ptt9+a/v37G8D89NNPjscfPnzY1KhRw0RHR5tXXnnFLF261Dz22GPG29vbDB8+/B/PjTiHEiApUE4CtG7dOpOZmWlOnz5tFi1aZCIiIkznzp1NZmamY9/69eubFi1a5Oozxpj+/fubyMhIk52dbYwxpnHjxuaaa6654PMOGzbMAI4PvhyPP/64Aczq1auNMcYsWrTIAGb27Nm59ps/f74BzKuvvuroi46ONj4+Pmb//v2OvtTUVBMSEmLuvvtuR19h4ivsa83PyJEjTaVKlS54/Px+QZ8rJSXFtG7d2kRGRpp9+/Y5+kJCQsxVV12Va9/s7GzTrFkz07p16ws+56xZs4ybm1ueZPfjjz82gFmwYIGjr0uXLqZRo0Z5jhEdHW369etXpOOuXLnSAOahhx66YJyNGjUq1IetMSXz/ZGfnA/wqKgok5qa6uhPSkoyISEhpkePHo6+nA/wRx99tMixFnQOJk2aZADz448/5uq/9957jc1mMzt27DDGGPPOO+8YwLz22msFvqaLiediEiB3d3dHHDmKkgCdH9eIESOMj49ProTa39/fDBs2LM8xC0qAzv+jLjMz04SFhRkgV6J9/Phx4+7ubsaNG+fou/vuu01AQECu7x9jjHn66acN4Ei+xLXoEpj8o7Zt2+Lp6UlgYCBXXnkllStX5osvvsDDw5pCtmvXLn7//XfHnJCsrCzHV9++fTl8+DA7duwAoHXr1ixcuJBJkyaxfPlyUlNTC3ze8+eYDBo0CIBly5YB8P333wPW8PW5brzxRvz9/fNcfmjevDk1a9Z0tH18fKhbty779+939P1TfBfzWvPTunVrTp06xcCBA/niiy84duxYgfvmJzs7mwEDBrB9+3YWLFjgmGS8Zs0aTpw4wbBhw3LFZLfbufLKK9mwYUOeS07n+vrrr2ncuDHNmzfP9fjevXtf0h0zhT3uwoULAbjvvvuK9Dz5KYnvjwu57rrr8PHxcbQDAwO56qqrWLlyJdnZ2bn2vf766y8p1vx8//33NGzYkNatW+fqHz58OMYYx3MsXLgQHx8fbrvttgse61LjyU/Tpk2pW7dukR57rquvvjrPcdPS0khISCjyMW02G3379nW0PTw8qFOnDpGRkbRo0cLRHxISQtWqVXN9X3z99dd069aNqKioXN/nffr0AWDFihVFjktKjiZByz965513aNCgAadPn2b+/Pm88sorDBw40PGhlTMXaPz48YwfPz7fY+R80D///PNUr16d+fPn8+STT+Lj40Pv3r156qmniIuLc+zv4eFBaGhormNEREQAcPz4cce/Hh4ehIWF5drPZrMRERHh2C/H+ccD8Pb2zpXk/FN8F/Na83PLLbeQlZXFa6+9xvXXX4/dbufyyy9nxowZ9OzZs8DH5bjnnntYtGgR33zzDc2bN3f058R1ww03FPjYEydO4O/vn++2I0eOsGvXLjw9PS/6NV1IYY979OhR3N3dHe9xcSiJ748LyS/2iIgIMjIySE5OJjg42NEfGRl5SbHm5/jx4/nOiYqKinJsB+tcR0VF4eZW8N+/xRFPfs5/3UV1/nvl7e0NUOj3Kj9+fn65ElgALy8vQkJC8uzr5eVFWlqao33kyBG++uqrYv/5kZKlBEj+UYMGDRwTn7t160Z2djavv/46H3/8MTfccANVqlQBYPLkyVx33XX5HqNevXoA+Pv7M23aNKZNm8aRI0ccoy1XXXUVv//+u2P/rKwsjh8/nusXXXx8PPD3L7/Q0FCysrI4evRorl/Uxhji4+O5/PLLL/q1/lN8F/NaC3Lrrbdy6623kpKSwsqVK5kyZQr9+/fnjz/+uOBt41OnTuX111/nzTffpFevXrm25cQ1d+7cAu9wCQ8PL/DYVapUwdfXt8BJvznHv1iFPW5YWBjZ2dnEx8cX64dkcX9/XEjO9+f5fV5eXgQEBOTqP3/yenHEGhoayuHDh/P0//XXX0Duc7169WrsdnuBSVBJnbvzXzfgSDrS09Nz9Rc1yXKGKlWq0LRpUx5//PF8t+ckoeJadAlMLtrs2bOpXLkyjz76KHa7nXr16hEXF8evv/5Kq1at8v0KDAzMc5zw8HCGDx/OwIED2bFjR547vN57771c7ffffx/4e92RK664AoD//ve/ufb75JNPSElJcWwvqvziK+przY+/vz99+vThoYceIiMjg61btxa473/+8x+mTZvG9OnT81yWAOjQoQOVKlVi27ZtBcbl5eVV4PH79+/P7t27CQ0Nzfex/3S31aUeN+dSwbx58y54vIsZkSnp74/zffrpp7lGBU6fPs1XX31Fp06dcHd3L7ZYCzoHV1xxBdu2bWPTpk25+t955x1sNhvdunUDrHOdlpZ2wcUUS/PchYeH4+Pjw+bNm3P1f/HFF5d03Iv5XrlU/fv3dywPkd/3uRIg16QRILlolStXZvLkyUyYMIH333+fIUOG8Morr9CnTx969+7N8OHDqVatGidOnGD79u1s2rSJjz76CIA2bdrQv39/mjZtSuXKldm+fTvvvvsu7dq1y7UWipeXF8888wzJyclcfvnlrFmzhhkzZtCnTx86duwIQM+ePenduzcTJ04kKSmJDh06sHnzZqZMmUKLFi245ZZbLvq1FSa+wr7W/Nx55534+vrSoUMHIiMjiY+PZ9asWQQHBxf4V/XatWu555576NChAz179mTdunW5trdt25aAgADmzp3LsGHDOHHiBDfccANVq1bl6NGj/Prrrxw9evSCycWYMWP45JNP6Ny5M2PHjqVp06bY7XYOHDjA4sWL+b//+z/atGlz0eezsMft1KkTt9xyCzNmzODIkSP0798fb29vfv75Z/z8/Bg1ahQATZo04cMPP2T+/PnExsbi4+NDkyZN8n3ukvj+uBB3d3d69uzJuHHjsNvtPPnkkyQlJTFt2rR/fOzFxFrQORg7dizvvPMO/fr1Y/r06URHR/PNN9/w0ksvce+99zrm3gwcOJA333yTe+65hx07dtCtWzfsdjs//vgjDRo04Oabby7Vc2ez2RgyZIhjYc1mzZqxfv16xx88RdWkSROWL1/OV199RWRkJIGBgf84OltU06dPZ8mSJbRv357Ro0dTr1490tLS2LdvHwsWLODll1+mevXqJfLccgmcOgVbXFpBt8EbY90hU7NmTRMXF2eysrKMMcb8+uuv5qabbjJVq1Y1np6eJiIiwnTv3t28/PLLjsdNmjTJtGrVylSuXNl4e3ub2NhYM3bsWHPs2DHHPsOGDTP+/v5m8+bNpmvXrsbX19eEhISYe++91yQnJ+eJY+LEiSY6Otp4enqayMhIc++995qTJ0/m2i+/O5SMyXsHS2HiK+xrzc/bb79tunXrZsLDw42Xl5eJiooyN910k9m8ebNjn/PvUsl5Hwr6OteKFStMv379TEhIiPH09DTVqlUz/fr1Mx999NEF4zLGmOTkZPPwww+bevXqGS8vLxMc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4WEef/xxs3PnTvPee+8ZPz8/89///texj85l4QwbNsxUq1bNcRv8p59+aqpUqWImTJjg2EfnMn/F8fv7nnvuMdWrVzdLly41mzZtMt27d69wt8Ff6DxmZmaaq6++2lSvXt388ssv5vDhw46v9PR0xzGK6zyW2wTIGGNefPFFEx0dbby8vMxll11mVqxY4dR4li1bZoA8X8OGDTPGWLdSTpkyxURERBhvb2/TuXNns2XLllKNMb/4AHP77bc79snOzjZdunQxbm5uBnD80MuFnZ8AucL7XVZ89dVXpnHjxsbb29vUr1/fvPrqq7m261wWTlJSkrn//vtNzZo1jY+Pj4mNjTUPPfRQrg8Xncv8Fcfv79TUVDNy5EgTEhJifH19Tf/+/c2BAwec8Gqc50Lnce/evQV+Bi1btsxxjOI6jzZjNHtVREREKpZyOQdIRERE5EKUAImIiEiFowRIREREKhwlQCIiIlLhKAESERGRCkcJkIiIiFQ4SoBERESkwlECJCIVTteuXRkzZkyJPkdGRgZ16tThhx9+KPZjf/3117Ro0cJRwkJELp4SIJEybPjw4dhsNmw2Gx4eHtSsWZN77703T6FAye3TTz/lscceK9HnePXVV4mOjqZDhw6OPpvNxueff+5o51S8joyMZPPmzQDUqlXL8Z66u7sTFRXF7bffnus97d+/Pzabjffff79EX4NIeaYESKSMu/LKKzl8+DD79u3j9ddf56uvvmLEiBHODsulhYSEEBgYWKLPMXfuXO64444Ct585c4arr76aDRs2sHr1apo2berYNn36dA4fPsyBAwd47733WLlyJaNHj871+FtvvZW5c+eWWPwi5Z0SIJEyztvbm4iICKpXr06vXr0YMGAAixcvzrXPm2++SYMGDfDx8aF+/fq89NJLjm0ZGRmMHDmSyMhIfHx8qFWrFrNmzXJst9lszJs3jz59+uDr60tMTAwfffRRruNv2bKF7t274+vrS2hoKHfddRfJycmO7cOHD+eaa67h6aefJjIyktDQUO677z4yMzMd+7z00kvExcXh4+NDeHg4N9xwg2ObMYbZs2cTGxuLr68vzZo14+OPP77gebnQ8c69BLZ8+XLHiMu5X8OHD3fs/9VXX9GyZUt8fHyIjY1l2rRpZGVlFfjcmzZtYteuXfTr1y/f7adOnaJXr14cOnSI1atXU7t27VzbAwMDiYiIoFq1anTr1o2hQ4eyadOmXPtcffXVrF+/nj179lzwPIhI/jycHYCIFJ89e/awaNEiPD09HX2vvfYaU6ZM4YUXXqBFixb8/PPP3Hnnnfj7+zNs2DCef/55vvzyS/73v/9Rs2ZNDh48yMGDB3Md95FHHuGJJ57gueee491332XgwIE0btyYBg0acObMGa688kratm3Lhg0bSEhI4I477mDkyJG89dZbjmMsW7aMyMhIli1bxq5duxgwYADNmzfnzjvv5KeffmL06NG8++67tG/fnhMnTrBq1SrHYx9++GE+/fRT5s2bR1xcHCtXrmTIkCGEhYXRpUuXPOfhn453rvbt23P48GFHe/v27fTt25fOnTsD8O233zJkyBCef/55OnXqxO7du7nrrrsAmDJlSr7HXLlyJXXr1iUoKCjPtvj4eLp06YK/vz8rVqygcuXK+R4jx6FDh/j6669p06ZNrv7o6GiqVq3KqlWriI2NveAxRCQfxVXhVURK37Bhw4y7u7vx9/c3Pj4+jsrJc+bMcexTo0YN8/777+d63GOPPWbatWtnjDFm1KhRpnv37sZut+f7HIC55557cvW1adPG3HvvvcYYY1599VVTuXJlk5yc7Nj+zTffGDc3NxMfH++IMzo62mRlZTn2ufHGG82AAQOMMcZ88sknJigoyCQlJeV5/uTkZOPj42PWrFmTq//22283AwcOzDfmCx3PGGO6dOli7r///jz9x44dM7Vr1zYjRoxw9HXq1MnMnDkz137vvvuuiYyMzPfYxhhz//33m+7du+fpB4yXl5epX7++SUlJyfex0dHRxsvLK9d72qZNG3Py5Mk8+7Zo0cJMnTq1wDhEpGC6BCZSxnXr1o1ffvmFH3/8kVGjRtG7d29GjRoFwNGjRzl48CC33347AQEBjq8ZM2awe/duwLo89csvv1CvXj1Gjx6d5/IZQLt27fK0t2/fDlgjJs2aNcPf39+xvUOHDtjtdnbs2OHoa9SoEe7u7o52ZGQkCQkJAPTs2ZPo6GhiY2O55ZZbeO+99zhz5gwA27ZtIy0tjZ49e+Z6De+8847jNZzvQscrSGZmJtdffz01a9bkueeec/Rv3LiR6dOn53ruO++8k8OHDxd4zNTUVHx8fPLddtVVV/HHH3/wyiuvFBjLAw88wC+//MLmzZv57rvvAOjXrx/Z2dm59vP19f3H1yUi+dMlMJEyzt/fnzp16gDw/PPP061bN6ZNm8Zjjz3muE36tddey3MJJScZueyyy9i7dy8LFy5k6dKl3HTTTfTo0eMf59jYbDbAmp+T8/+C9gFyXZbL2ZYTX2BgIJs2bWL58uUsXryYRx99lKlTp7JhwwbHPt988w3VqlXLdQxvb+98n/dCx6tUqVK+j7n33ns5cOAAGzZswMPj71+NdrudadOmcd111+V5TEFJTpUqVdiyZUu+24YMGcLVV1/NbbfdRnZ2NuPHj8/38TnvaVxcHM8++yzt2rVj2bJl9OjRw7HfiRMnCAsLy/d5ROTClACJlDNTpkyhT58+3HvvvURFRVGtWjX27NnD4MGDC3xMUFAQAwYMYMCAAdxwww1ceeWVnDhxgpCQEADWrVvH0KFDHfuvW7eOFi1aANCwYUPefvttUlJSHKNAP/zwA25ubtStW7fQcXt4eNCjRw969OjBlClTqFSpEt9//z09e/bE29ubAwcO5Dvf52KPl18iM2fOHObPn8/atWsJDQ3Nte2yyy5jx44djoSkMFq0aMG8efMKTA6HDh2Ku7s7w4YNw263M2HChAseLydZTU1NdfSlpaWxe/dux/sgIhdHCZBIOdO1a1caNWrEzJkzeeGFF5g6dSqjR48mKCiIPn36kJ6ezk8//cTJkycZN24c//73v4mMjKR58+a4ubnx0UcfERERkWuk5KOPPqJVq1Z07NiR9957j/Xr1/Of//wHgMGDBzNlyhSGDRvG1KlTOXr0KKNGjeKWW24hPDy8UDF//fXX7Nmzh86dO1O5cmUWLFiA3W6nXr16BAYGMn78eMaOHYvdbqdjx44kJSWxZs0aAgICGDZs2EUd73xLly5lwoQJvPjii1SpUoX4+HjAurwUHBzMo48+Sv/+/alRowY33ngjbm5ubN68mS1btjBjxox8X0+3bt1ISUlh69atNG7cON99Bg8ejJubG7fccgt2u51JkyY5tp0+fZr4+HiMMRw8eJAJEyZQpUoV2rdv79hn3bp1eHt757k8KSKF5OQ5SCJyCYYNG2b+9a9/5el/7733jJeXlzlw4ICj3bx5c+Pl5WUqV65sOnfubD799FNjjDWJuXnz5sbf398EBQWZK664wmzatMlxLMC8+OKLpmfPnsbb29tER0ebDz74INfzbd682XTr1s34+PiYkJAQc+edd5rTp09fMM7777/fdOnSxRhjzKpVq0yXLl1M5cqVja+vr2natKmZP3++Y1+73W6ee+45U69ePePp6WnCwsJM7969zYoVK/I9L/90vHMnQU+ZMsUxefzcr2HDhjn2X7RokWnfvr3x9fU1QUFBpnXr1ubVV1/N/0056+abbzaTJk3K1QeYzz77LFff/PnzjYeHh3n88ceNMdYk6HPjCAsLM3379jU///xzrsfddddd5u67775gDCJSMJsxxjgr+RIR12ez2fjss8+45pprnB1KmbJlyxZ69OjBrl27in3RxaNHj1K/fn1++uknYmJiivXYIhWF7gITESkBTZo0Yfbs2ezbt6/Yj713715eeuklJT8il0AjQCJyQRoBEpHySJOgReSC9DeSiJRHugQmIiIiFY4SIBEREalwlACJiIhIhaMESERERCocJUAiIiJS4SgBEhERkQpHCZCIiIhUOEqAREREpMJRAiQiIiIVzv8DCK2QGspg1OUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from brokenaxes import brokenaxes\n", + "import pandas as pd\n", + "\n", + "for dark in [True, False]:\n", + " if dark:\n", + " plt.style.use(\"dark_background\")\n", + " else:\n", + " plt.style.use(\"default\")\n", + "\n", + " df1 = pd.read_csv(\"bench.native.csv\", header=0)\n", + " df2 = pd.read_csv(\"bench.browser.csv\", header=0)\n", + "\n", + " agg1 = df1.groupby(\"download_size\")[\"time_total\"].mean().reset_index()\n", + " agg2 = df2.groupby(\"download_size\")[\"time_total\"].mean().reset_index()\n", + "\n", + " plt.plot(agg1[\"download_size\"]/1024.0, agg1[\"time_total\"]/1000.0, label=\"native\")\n", + " plt.plot(agg2[\"download_size\"]/1024.0, agg2[\"time_total\"]/1000.0, label=\"browser\")\n", + "\n", + " plt.xlabel(\"Response size (KB)\")\n", + " plt.ylabel(\"Runtime (sec)\")\n", + " plt.title(\"Response size effect on protocol runtime\")\n", + " plt.legend(loc=\"upper left\") \n", + "\n", + " plt.xticks(list(range(0, 30, 10)) + list(range(20,140, 20)) )\n", + " plt.yticks(list(range(0, 15, 5)) + list(range(10, 70, 10)) )\n", + "\n", + " plt.xlim(0, 120)\n", + " plt.ylim(0, 60)\n", + "\n", + " # plt.grid(True, linestyle=\"-\")\n", + "\n", + " svg_name = \"download_dark.svg\" if dark else \"download_light.svg\"\n", + " plt.savefig(svg_name, bbox_inches=\"tight\")\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7226c389", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5eb6fc0c", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16899509", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "735c270e", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4f61c9fb-7176-4f79-8537-772256a0443d", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "76dddf3c-94cd-4b24-ad4c-172a9bb133f4", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16aaacfc-5c3f-43fd-8149-7e19b40577b9", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7f7a83f8-b14e-4b12-b181-1db5eb853aef", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29b36958-84dd-4eb8-a082-44e70d99cc9d", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/crates/harness/plot/data/latency.ipynb b/crates/harness/plot/data/latency.ipynb new file mode 100644 index 000000000..edd84213c --- /dev/null +++ b/crates/harness/plot/data/latency.ipynb @@ -0,0 +1,92 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 8, + "id": "d43eeaf8-36c1-49c3-8399-2fe3dc8346b0", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from brokenaxes import brokenaxes\n", + "import pandas as pd\n", + "\n", + "for dark in [True, False]:\n", + " if dark:\n", + " plt.style.use(\"dark_background\")\n", + " else:\n", + " plt.style.use(\"default\")\n", + "\n", + " df1 = pd.read_csv(\"latency.native.csv\", header=0)\n", + " df2 = pd.read_csv(\"latency.browser.csv\", header=0)\n", + "\n", + " agg1 = df1.groupby(\"latency\")[\"time_total\"].mean().reset_index()\n", + " agg2 = df2.groupby(\"latency\")[\"time_total\"].mean().reset_index()\n", + "\n", + " plt.plot(agg1[\"latency\"], agg1[\"time_total\"]/1000.0, label=\"native\")\n", + " plt.plot(agg2[\"latency\"], agg2[\"time_total\"]/1000.0, label=\"browser\")\n", + "\n", + " plt.xlim(10, 200)\n", + " plt.ylim(0, 13)\n", + "\n", + " # force ticks, otherwise 10 is not displayed\n", + " plt.xticks([10] + list(range(25, 201, 25)))\n", + "\n", + " plt.xlabel(\"Latency (msec)\")\n", + " plt.ylabel(\"Runtime (sec)\")\n", + " plt.title(\"Latency effect on protocol runtime\")\n", + " plt.legend(loc=\"upper left\") \n", + "\n", + " plt.grid(True, linestyle=\"--\")\n", + "\n", + " svg_name = \"latency_dark.svg\" if dark else \"latency_light.svg\"\n", + "\n", + " plt.savefig(svg_name, bbox_inches=\"tight\")\n", + "\n", + " plt.show()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "39b91559-3c26-45e1-9348-8fdf2a486122", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/crates/harness/toml/bandwidth.toml b/crates/harness/toml/bandwidth.toml new file mode 100644 index 000000000..094caee56 --- /dev/null +++ b/crates/harness/toml/bandwidth.toml @@ -0,0 +1,25 @@ +#### Bandwidth #### + +[[group]] +name = "bandwidth" +protocol_latency = 25 + +[[bench]] +group = "bandwidth" +bandwidth = 10 + +[[bench]] +group = "bandwidth" +bandwidth = 50 + +[[bench]] +group = "bandwidth" +bandwidth = 100 + +[[bench]] +group = "bandwidth" +bandwidth = 250 + +[[bench]] +group = "bandwidth" +bandwidth = 1000 diff --git a/crates/harness/toml/download.toml b/crates/harness/toml/download.toml new file mode 100644 index 000000000..234cd838d --- /dev/null +++ b/crates/harness/toml/download.toml @@ -0,0 +1,37 @@ +[[group]] +name = "download_size" +protocol_latency = 10 +bandwidth = 200 +upload-size = 2048 + +[[bench]] +group = "download_size" +download-size = 1024 + +[[bench]] +group = "download_size" +download-size = 2048 + +[[bench]] +group = "download_size" +download-size = 4096 + +[[bench]] +group = "download_size" +download-size = 8192 + +[[bench]] +group = "download_size" +download-size = 16384 + +[[bench]] +group = "download_size" +download-size = 32768 + +[[bench]] +group = "download_size" +download-size = 65536 + +[[bench]] +group = "download_size" +download-size = 131072 diff --git a/crates/harness/toml/latency.toml b/crates/harness/toml/latency.toml new file mode 100644 index 000000000..630ef5924 --- /dev/null +++ b/crates/harness/toml/latency.toml @@ -0,0 +1,25 @@ +#### Latency #### + +[[group]] +name = "latency" +bandwidth = 1000 + +[[bench]] +group = "latency" +protocol_latency = 10 + +[[bench]] +group = "latency" +protocol_latency = 25 + +[[bench]] +group = "latency" +protocol_latency = 50 + +[[bench]] +group = "latency" +protocol_latency = 100 + +[[bench]] +group = "latency" +protocol_latency = 200