diff --git a/Cargo.lock b/Cargo.lock index 9f80057f2e..bc4369ae26 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11,12 +11,6 @@ dependencies = [ "gimli 0.31.1", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.0" @@ -189,9 +183,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" @@ -223,9 +217,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.91" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" +checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" [[package]] name = "anymap2" @@ -426,7 +420,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -653,7 +647,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -719,7 +713,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -736,7 +730,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -924,9 +918,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.58.0" +version = "1.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0656a79cf5e6ab0d4bb2465cd750a7a2fd7ea26c062183ed94225f5782e22365" +checksum = "9f883bb1e349fa8343dc46336c252c0f32ceb6e81acb146aeef2e0f8afc9183e" dependencies = [ "aws-credential-types", "aws-runtime", @@ -958,9 +952,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.47.0" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8776850becacbd3a82a4737a9375ddb5c6832a51379f24443a98e61513f852c" +checksum = "ded855583fa1d22e88fe39fd6062b062376e50a8211989e07cf5e38d52eb3453" dependencies = [ "aws-credential-types", "aws-runtime", @@ -980,9 +974,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.48.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0007b5b8004547133319b6c4e87193eee2a0bcb3e4c18c75d09febe9dab7b383" +checksum = "9177ea1192e6601ae16c7273385690d88a7ed386a00b74a6bc894d12103cd933" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1002,9 +996,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.47.0" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fffaa356e7f1c725908b75136d53207fa714e348f365671df14e95a60530ad3" +checksum = "823ef553cf36713c97453e2ddff1eb8f62be7f4523544e2a5db64caf80100f0a" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1364,7 +1358,7 @@ checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -1382,7 +1376,7 @@ dependencies = [ "hyper 1.5.0", "hyper-util", "pin-project-lite", - "rustls 0.23.15", + "rustls 0.23.16", "rustls-pemfile 2.2.0", "rustls-pki-types", "tokio", @@ -1456,7 +1450,7 @@ dependencies = [ "addr2line", "cfg-if", "libc", - "miniz_oxide 0.8.0", + "miniz_oxide", "object 0.36.5", "rustc-demangle", "windows-targets 0.52.6", @@ -1542,7 +1536,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.85", + "syn 2.0.86", "which", ] @@ -1704,7 +1698,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "syn_derive", ] @@ -2030,9 +2024,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.31" +version = "1.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "e3788d6ac30243803df38a3e9991cf37e41210232916d41a8222ae378f912624" dependencies = [ "jobserver", "libc", @@ -2206,7 +2200,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -2847,7 +2841,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -2857,7 +2851,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" dependencies = [ "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -2904,7 +2898,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -2940,7 +2934,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -2957,7 +2951,7 @@ checksum = "a1719100f31492cd6adeeab9a0f46cdbc846e615fdb66d7b398aa46ec7fdd06f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -2981,7 +2975,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -2992,7 +2986,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3062,7 +3056,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3083,7 +3077,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3093,7 +3087,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3106,7 +3100,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3199,7 +3193,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3211,7 +3205,7 @@ dependencies = [ "pretty_assertions", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3262,6 +3256,7 @@ dependencies = [ "ignore", "itertools 0.13.0", "krates", + "log", "manganis-core", "notify", "object 0.36.5", @@ -3272,12 +3267,12 @@ dependencies = [ "ratatui", "rayon", "regex", - "reqwest 0.12.8", - "rustls 0.23.15", + "reqwest 0.12.9", + "rustls 0.23.16", "serde", "serde_json", "strum 0.26.3", - "syn 2.0.85", + "syn 2.0.86", "tar", "tauri-bundler", "tauri-utils", @@ -3296,6 +3291,7 @@ dependencies = [ "unicode-segmentation", "uuid", "walkdir", + "walrus", "wasm-bindgen-cli-support", "wasm-bindgen-shared", "wasm-opt", @@ -3329,7 +3325,7 @@ dependencies = [ "longest-increasing-subsequence", "pretty_assertions", "rand 0.8.5", - "reqwest 0.12.8", + "reqwest 0.12.9", "rustc-hash 1.1.0", "rustversion", "serde", @@ -3354,7 +3350,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.85", + "syn 2.0.86", "tokio", "trybuild", ] @@ -3398,7 +3394,7 @@ dependencies = [ "objc_id", "once_cell", "rand 0.8.5", - "reqwest 0.12.8", + "reqwest 0.12.9", "rfd", "rustc-hash 1.1.0", "separator", @@ -3472,7 +3468,7 @@ dependencies = [ "getrandom 0.2.15", "http-range", "rand 0.8.5", - "reqwest 0.12.8", + "reqwest 0.12.9", "separator", "serde", "serde_json", @@ -3487,7 +3483,7 @@ dependencies = [ "dioxus-autofmt", "dioxus-rsx-rosetta", "html_parser", - "syn 2.0.85", + "syn 2.0.86", "wasm-bindgen", ] @@ -3522,7 +3518,7 @@ dependencies = [ "once_cell", "parking_lot", "pin-project", - "rustls 0.23.15", + "rustls 0.23.16", "serde", "server_fn", "thiserror", @@ -3556,7 +3552,7 @@ dependencies = [ "futures-channel", "futures-util", "generational-box", - "reqwest 0.12.8", + "reqwest 0.12.9", "rustversion", "slab", "tokio", @@ -3601,7 +3597,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "trybuild", ] @@ -3770,7 +3766,7 @@ dependencies = [ "proc-macro2", "quote", "slab", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3782,7 +3778,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3796,7 +3792,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.85", + "syn 2.0.86", "tracing", ] @@ -3813,7 +3809,7 @@ dependencies = [ "pretty_assertions", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3828,7 +3824,7 @@ dependencies = [ "once_cell", "parking_lot", "rand 0.8.5", - "reqwest 0.12.8", + "reqwest 0.12.9", "rustc-hash 1.1.0", "serde", "simple_logger", @@ -3927,7 +3923,7 @@ dependencies = [ "quote", "serde", "server_fn_macro", - "syn 2.0.85", + "syn 2.0.86", "tower-http", ] @@ -3987,7 +3983,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4016,7 +4012,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4119,7 +4115,7 @@ version = "0.1.1" dependencies = [ "chrono", "dioxus", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", ] @@ -4237,7 +4233,7 @@ checksum = "ba7795da175654fe16979af73f81f26a8ea27638d8d9823d317016888a63dc4c" dependencies = [ "num-traits", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4258,7 +4254,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4279,7 +4275,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4420,7 +4416,7 @@ checksum = "ce8cd46a041ad005ab9c71263f9a0ff5b529eac0fe4cc9b4a20f4f0765d8cf4b" dependencies = [ "execute-command-tokens", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4437,15 +4433,14 @@ checksum = "de853764b47027c2e862a995c34978ffa63c1501f2e15f987ba11bd4f9bba193" [[package]] name = "exr" -version = "1.72.0" +version = "1.73.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" +checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" dependencies = [ "bit_field", - "flume", "half", "lebe", - "miniz_oxide 0.7.4", + "miniz_oxide", "rayon-core", "smallvec", "zune-inflate", @@ -4471,9 +4466,9 @@ checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fdeflate" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8090f921a24b04994d9929e204f50b498a33ea6ba559ffaa05e04f7ee7fb5ab" +checksum = "07c6f4c64c1d33a3111c4466f7365ebdcc37c5bd1ea0d62aae2e3d722aacbedb" dependencies = [ "simd-adler32", ] @@ -4563,7 +4558,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", - "miniz_oxide 0.8.0", + "miniz_oxide", ] [[package]] @@ -4625,7 +4620,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4733,7 +4728,7 @@ version = "0.1.0" dependencies = [ "chrono", "dioxus", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "tracing", "tracing-subscriber", @@ -4745,7 +4740,7 @@ name = "fullstack-hello-world-example" version = "0.1.0" dependencies = [ "dioxus", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "simple_logger", "tracing", @@ -4856,9 +4851,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +checksum = "3f1fa2f9765705486b33fd2acf1577f8ec449c2ba1f318ae5447697b7c08d210" dependencies = [ "fastrand", "futures-core", @@ -4875,7 +4870,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -5421,7 +5416,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -5629,7 +5624,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -5682,11 +5677,12 @@ dependencies = [ [[package]] name = "handlebars" -version = "6.1.0" +version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25b617d1375ef96eeb920ae717e3da34a02fc979fe632c75128350f9e1f74a" +checksum = "fd4ccde012831f9a071a637b0d4e31df31c0f6c525784b35ae76a9ac6bc1e315" dependencies = [ "log", + "num-order", "pest", "pest_derive", "serde", @@ -6029,7 +6025,7 @@ dependencies = [ "hyper 1.5.0", "hyper-util", "log", - "rustls 0.23.15", + "rustls 0.23.16", "rustls-native-certs 0.8.0", "rustls-pki-types", "tokio", @@ -6068,9 +6064,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", @@ -6113,6 +6109,9 @@ name = "id-arena" version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" +dependencies = [ + "rayon", +] [[package]] name = "idea" @@ -6296,7 +6295,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b23a0c8dfe501baac4adf6ebbfa6eddf8f0c07f56b058cc1288017e32397846c" dependencies = [ "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -6326,7 +6325,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -6806,9 +6805,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" @@ -6931,7 +6930,7 @@ checksum = "3b51f1d220e3fa869e24cfd75915efe3164bd09bb11b3165db3f37f57bf673e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -7064,7 +7063,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -7203,15 +7202,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.8.0" @@ -7537,7 +7527,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -7560,6 +7550,21 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-modular" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" + +[[package]] +name = "num-order" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" +dependencies = [ + "num-modular", +] + [[package]] name = "num-rational" version = "0.4.2" @@ -7599,7 +7604,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -7864,7 +7869,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -8137,7 +8142,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -8196,7 +8201,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -8388,7 +8393,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -8435,7 +8440,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -8555,7 +8560,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide 0.8.0", + "miniz_oxide", ] [[package]] @@ -8625,7 +8630,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32db37eb2b0ec0af154e9c1b33425902d8cd9481e35167c4e9ffb28fec3916bb" dependencies = [ "proc-macro2", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -8655,7 +8660,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -8742,7 +8747,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "version_check", "yansi", ] @@ -8769,7 +8774,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30" dependencies = [ "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -8792,7 +8797,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -8859,7 +8864,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.0.0", - "rustls 0.23.15", + "rustls 0.23.16", "socket2", "thiserror", "tokio", @@ -8876,7 +8881,7 @@ dependencies = [ "rand 0.8.5", "ring", "rustc-hash 2.0.0", - "rustls 0.23.15", + "rustls 0.23.16", "slab", "thiserror", "tinyvec", @@ -8885,10 +8890,11 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "e346e016eacfff12233c243718197ca12f148c84e1e84268a896699b41c71780" dependencies = [ + "cfg_aliases 0.2.1", "libc", "once_cell", "socket2", @@ -9278,9 +9284,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.8" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", "bytes", @@ -9306,7 +9312,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.15", + "rustls 0.23.16", "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", @@ -9403,7 +9409,7 @@ checksum = "a5a11a05ee1ce44058fa3d5961d05194fdbe3ad6b40f904af764d81b86450e6b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -9571,9 +9577,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ "bitflags 2.6.0", "errno", @@ -9610,9 +9616,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.15" +version = "0.23.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" +checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" dependencies = [ "aws-lc-rs", "log", @@ -9803,7 +9809,7 @@ checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -9919,9 +9925,9 @@ checksum = "f97841a747eef040fcd2e7b3b9a220a7205926e60488e673d9e4926d27772ce5" [[package]] name = "serde" -version = "1.0.213" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" dependencies = [ "serde_derive", ] @@ -9962,13 +9968,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.213" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -10012,7 +10018,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -10063,7 +10069,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -10097,7 +10103,7 @@ dependencies = [ "inventory", "js-sys", "once_cell", - "reqwest 0.12.8", + "reqwest 0.12.9", "send_wrapper", "serde", "serde_json", @@ -10124,7 +10130,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "xxhash-rust", ] @@ -10135,7 +10141,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f2aa8119b558a17992e0ac1fd07f080099564f24532858811ce04f742542440" dependencies = [ "server_fn_macro", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -10358,7 +10364,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33a1b4f13e2bbf2f5b29d09dfebc9de69229ffee245aed80e3b70f9b5fd28c06" dependencies = [ "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -10834,7 +10840,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -10884,9 +10890,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.85" +version = "2.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" +checksum = "e89275301d38033efb81a6e60e3497e734dfcc62571f2854bf4b16690398824c" dependencies = [ "proc-macro2", "quote", @@ -10902,7 +10908,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -11002,9 +11008,9 @@ dependencies = [ [[package]] name = "tao" -version = "0.30.3" +version = "0.30.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0dbbebe82d02044dfa481adca1550d6dd7bd16e086bc34fa0fbecceb5a63751" +checksum = "63f1f6b2017cc33d7f6fc9c6186a2c0f5dfc985899a7b4fe9e64985c17533db3" dependencies = [ "bitflags 2.6.0", "cocoa 0.26.0", @@ -11048,7 +11054,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -11059,9 +11065,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff6c40d3aedb5e06b57c6f669ad17ab063dd1e63d977c6a88e7f4dfa4f04020" +checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" dependencies = [ "filetime", "libc", @@ -11253,22 +11259,22 @@ checksum = "a38c90d48152c236a3ab59271da4f4ae63d678c5d7ad6b7714d7cb9760be5e4b" [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "5d171f59dbaa811dbbb1aee1e73db92ec2b122911a48e1390dfe327a821ddede" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "b08be0f17bd307950653ce45db00cd31200d82b624b36e181337d9c7d92765b5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -11406,7 +11412,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -11435,7 +11441,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.15", + "rustls 0.23.16", "rustls-pki-types", "tokio", ] @@ -11461,7 +11467,7 @@ dependencies = [ "futures-util", "log", "native-tls", - "rustls 0.23.15", + "rustls 0.23.16", "tokio", "tokio-native-tls", "tungstenite 0.23.0", @@ -11679,7 +11685,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -12087,7 +12093,7 @@ dependencies = [ "base64 0.22.1", "log", "once_cell", - "rustls 0.23.15", + "rustls 0.23.16", "rustls-pki-types", "socks", "url", @@ -12215,6 +12221,7 @@ dependencies = [ "id-arena", "leb128", "log", + "rayon", "walrus-macro", "wasm-encoder", "wasmparser 0.212.0", @@ -12229,7 +12236,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -12259,7 +12266,7 @@ checksum = "59195a1db0e95b920366d949ba5e0d3fc0e70b67c09be15ce5abb790106b0571" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -12302,7 +12309,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "wasm-bindgen-shared", ] @@ -12370,7 +12377,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -12415,7 +12422,7 @@ checksum = "c97b2ef2c8d627381e51c071c2ab328eac606d3f69dd82bcbca20a9e389d95f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -12668,7 +12675,7 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -12810,7 +12817,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -12821,7 +12828,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -13338,7 +13345,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "zvariant_utils", ] @@ -13371,7 +13378,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -13391,7 +13398,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -13550,7 +13557,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "zvariant_utils", ] @@ -13562,5 +13569,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] diff --git a/Cargo.toml b/Cargo.toml index 04f793f4ba..ac53a09ef0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -245,6 +245,11 @@ tray-icon = "0.19" incremental = true debug = 0 +[profile.release-max-opt] +inherits = "release" +lto = true +codegen-units = 1 + # Disable debug assertions to check the released path of core and other packages, but build without optimizations to keep build times quick [profile.release-unoptimized] inherits = "dev" diff --git a/packages/cli/Cargo.toml b/packages/cli/Cargo.toml index 2ec7dbd35a..9a52d84212 100644 --- a/packages/cli/Cargo.toml +++ b/packages/cli/Cargo.toml @@ -61,6 +61,7 @@ syn = { workspace = true, features = ["full", "extra-traits", "visit", "visit-mu headers = "0.4.0" walkdir = "2" +walrus = { workspace = true, features = ["parallel"] } # tools download dirs = { workspace = true } @@ -99,6 +100,9 @@ ansi-to-tui = "6.0" ansi-to-html = "0.2.1" ratatui = { version = "0.28.0", features = ["crossterm", "unstable"] } +# disable `log` entirely since `walrus` uses it and is *much* slower with it enableda +log = { version = "0.4", features = ["max_level_off", "release_max_level_off"] } + # link intercept tempfile = "3.3" manganis-core = { workspace = true } diff --git a/packages/cli/src/assets.rs b/packages/cli/src/assets.rs index c05e8c1019..659aa5fec1 100644 --- a/packages/cli/src/assets.rs +++ b/packages/cli/src/assets.rs @@ -15,6 +15,7 @@ pub(crate) struct AssetManifest { } impl AssetManifest { + #[allow(dead_code)] pub(crate) fn load_from_file(path: &Path) -> anyhow::Result { let src = std::fs::read_to_string(path) .context("Failed to read asset manifest from filesystem")?; @@ -24,31 +25,20 @@ impl AssetManifest { /// Fill this manifest with a file object/rlib files, typically extracted from the linker intercepted pub(crate) fn add_from_object_path(&mut self, path: PathBuf) -> anyhow::Result<()> { - let Some(ext) = path.extension() else { - return Ok(()); - }; - - let Some(ext) = ext.to_str() else { - return Ok(()); - }; - let data = std::fs::read(path.clone())?; - match ext { - // Parse an unarchived object file - "o" => { - if let Ok(object) = object::File::parse(&*data) { - self.add_from_object_file(&object)?; - } - } - + match path.extension().and_then(|ext| ext.to_str()) { // Parse an rlib as a collection of objects - "rlib" => { + Some("rlib") => { if let Ok(archive) = object::read::archive::ArchiveFile::parse(&*data) { self.add_from_archive_file(&archive, &data)?; } } - _ => {} + _ => { + if let Ok(object) = object::File::parse(&*data) { + self.add_from_object_file(&object)?; + } + } } Ok(()) diff --git a/packages/cli/src/builder/build.rs b/packages/cli/src/builder/build.rs index 1e6a0c3a0f..efc3d6a4a9 100644 --- a/packages/cli/src/builder/build.rs +++ b/packages/cli/src/builder/build.rs @@ -6,7 +6,10 @@ use crate::{build::BuildArgs, link::LinkAction}; use crate::{AppBundle, Platform}; use anyhow::Context; use serde::Deserialize; -use std::{path::PathBuf, process::Stdio}; +use std::{ + path::{Path, PathBuf}, + process::Stdio, +}; use tokio::{io::AsyncBufReadExt, process::Command}; #[derive(Clone, Debug)] @@ -50,7 +53,7 @@ impl BuildRequest { pub(crate) async fn build_app(&self) -> Result { tracing::debug!("Building app..."); let exe = self.build_cargo().await?; - let assets = self.collect_assets().await?; + let assets = self.collect_assets(&exe).await?; Ok(BuildArtifacts { exe, assets }) } @@ -185,7 +188,7 @@ impl BuildRequest { /// This will execute `dx` with an env var set to force `dx` to operate as a linker, and then /// traverse the .o and .rlib files rustc passes that new `dx` instance, collecting the link /// tables marked by manganis and parsing them as a ResourceAsset. - pub(crate) async fn collect_assets(&self) -> anyhow::Result { + pub(crate) async fn collect_assets(&self, exe: &Path) -> Result { tracing::debug!("Collecting assets ..."); // If assets are skipped, we don't need to collect them @@ -193,43 +196,11 @@ impl BuildRequest { return Ok(AssetManifest::default()); } - // Create a temp file to put the output of the args - // We need to do this since rustc won't actually print the link args to stdout, so we need to - // give `dx` a file to dump its env::args into - let tmp_file = tempfile::NamedTempFile::new()?; + let mut manifest = AssetManifest::default(); - // Run `cargo rustc` again, but this time with a custom linker (dx) and an env var to force - // `dx` to act as a linker - // - // This will force `dx` to look through the incremental cache and find the assets from the previous build - Command::new("cargo") - // .env("RUSTFLAGS", self.rust_flags()) - .arg("rustc") - .args(self.build_arguments()) - .arg("--offline") /* don't use the network, should already be resolved */ - .arg("--") - .arg(format!( - "-Clinker={}", - std::env::current_exe() - .unwrap() - .canonicalize() - .unwrap() - .display() - )) - .env( - LinkAction::ENV_VAR_NAME, - LinkAction::BuildAssetManifest { - destination: tmp_file.path().to_path_buf(), - } - .to_json(), - ) - .stdout(Stdio::piped()) - .stderr(Stdio::piped()) - .output() - .await?; + _ = manifest.add_from_object_path(exe.to_path_buf()); - // The linker wrote the manifest to the temp file, let's load it! - AssetManifest::load_from_file(tmp_file.path()) + Ok(manifest) } /// Create a list of arguments for cargo builds @@ -416,4 +387,51 @@ impl BuildRequest { / 3.5) as usize }) } + + /// We used to require traversing incremental artifacts for assets that were included but not + /// directly exposed to the final binary. Now, however, we force APIs to carry items created + /// from asset calls into top-level items such that they *do* get included in the final binary. + /// + /// There's a chance that's not actually true, so this function is kept around in case we do + /// need to revert to "deep extraction". + #[allow(unused)] + async fn deep_linker_asset_extract(&self) -> Result { + // Create a temp file to put the output of the args + // We need to do this since rustc won't actually print the link args to stdout, so we need to + // give `dx` a file to dump its env::args into + let tmp_file = tempfile::NamedTempFile::new()?; + + // Run `cargo rustc` again, but this time with a custom linker (dx) and an env var to force + // `dx` to act as a linker + // + // This will force `dx` to look through the incremental cache and find the assets from the previous build + Command::new("cargo") + // .env("RUSTFLAGS", self.rust_flags()) + .arg("rustc") + .args(self.build_arguments()) + .arg("--offline") /* don't use the network, should already be resolved */ + .arg("--") + .arg(format!( + "-Clinker={}", + std::env::current_exe() + .unwrap() + .canonicalize() + .unwrap() + .display() + )) + .env( + LinkAction::ENV_VAR_NAME, + LinkAction::BuildAssetManifest { + destination: tmp_file.path().to_path_buf(), + } + .to_json(), + ) + .stdout(Stdio::piped()) + .stderr(Stdio::piped()) + .output() + .await?; + + // The linker wrote the manifest to the temp file, let's load it! + Ok(AssetManifest::load_from_file(tmp_file.path())?) + } } diff --git a/packages/cli/src/builder/bundle.rs b/packages/cli/src/builder/bundle.rs index b873e02d73..e08633e7b2 100644 --- a/packages/cli/src/builder/bundle.rs +++ b/packages/cli/src/builder/bundle.rs @@ -653,7 +653,8 @@ impl AppBundle { let input_path = input_path.to_path_buf(); let bindgen_outdir = bindgen_outdir.to_path_buf(); let name = self.build.krate.executable_name().to_string(); - let keep_debug = self.build.krate.config.web.wasm_opt.debug || (!self.build.build.release); + let keep_debug = self.build.krate.config.web.wasm_opt.debug; + let reference_types = self.build.krate.config.web.wasm_opt.reference_types; let start = std::time::Instant::now(); tokio::task::spawn_blocking(move || { @@ -664,9 +665,9 @@ impl AppBundle { .debug(keep_debug) .demangle(keep_debug) .keep_debug(keep_debug) - .reference_types(true) - .remove_name_section(!keep_debug) - .remove_producers_section(!keep_debug) + .reference_types(reference_types) + .remove_name_section(true) + .remove_producers_section(true) .out_name(&name) .generate(&bindgen_outdir) }) diff --git a/packages/cli/src/config/web.rs b/packages/cli/src/config/web.rs index 489bfa07c8..63d28d9069 100644 --- a/packages/cli/src/config/web.rs +++ b/packages/cli/src/config/web.rs @@ -58,6 +58,10 @@ pub(crate) struct WasmOptConfig { /// Keep debug symbols in the wasm file #[serde(default = "false_bool")] pub(crate) debug: bool, + + /// Enable reference types + #[serde(default = "false_bool")] + pub(crate) reference_types: bool, } /// The wasm-opt level to use for release web builds [default: 4]