diff --git a/.cargo/config.toml b/.cargo/config.toml
index 74b158fbdc..6582bd95fb 100644
--- a/.cargo/config.toml
+++ b/.cargo/config.toml
@@ -9,7 +9,7 @@ target-dir = "rust/target"
runner = 'wasm-bindgen-test-runner'
rustflags = [
"--cfg=web_sys_unstable_apis",
- "-Ctarget-feature=+bulk-memory,+simd128,+relaxed-simd",
+ "-Ctarget-feature=+bulk-memory,+simd128,+relaxed-simd,+reference-types",
]
[target.i686-pc-windows-msvc]
diff --git a/.github/actions/install-deps/action.yaml b/.github/actions/install-deps/action.yaml
index 7eb4704cd9..a016508e51 100644
--- a/.github/actions/install-deps/action.yaml
+++ b/.github/actions/install-deps/action.yaml
@@ -140,7 +140,7 @@ runs:
uses: dtolnay/rust-toolchain@nightly
if: ${{ inputs.rust == 'true' && inputs.arch != 'aarch64' }}
with:
- toolchain: nightly-2024-08-29
+ toolchain: nightly-2025-02-01
targets: wasm32-unknown-unknown
components: rustfmt, clippy, rust-src
@@ -148,7 +148,7 @@ runs:
uses: dtolnay/rust-toolchain@nightly
if: ${{ inputs.rust == 'true' && inputs.arch == 'aarch64' && runner.os == 'macOS' }}
with:
- toolchain: nightly-2024-08-29
+ toolchain: nightly-2025-02-01
targets: aarch64-apple-darwin
components: rustfmt, clippy, rust-src
@@ -156,7 +156,7 @@ runs:
uses: dtolnay/rust-toolchain@nightly
if: ${{ inputs.rust == 'true' && inputs.arch == 'aarch64' && runner.os == 'Linux' }}
with:
- toolchain: nightly-2024-08-29
+ toolchain: nightly-2025-02-01
targets: aarch64-unknown-linux-gnu
components: rustfmt, clippy, rust-src
diff --git a/Cargo.lock b/Cargo.lock
index c13d88deb3..d32146aa1c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1,6 +1,6 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
-version = 3
+version = 4
[[package]]
name = "addr2line"
@@ -17,6 +17,18 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+[[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
[[package]]
name = "aho-corasick"
version = "1.1.3"
@@ -126,9 +138,9 @@ version = "0.1.80"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -441,9 +453,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
dependencies = [
"heck 0.5.0",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -511,6 +523,31 @@ dependencies = [
"cfg-if",
]
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
+
[[package]]
name = "crypto-common"
version = "0.1.6"
@@ -542,10 +579,10 @@ dependencies = [
"cc",
"codespan-reporting",
"once_cell",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"scratch",
- "syn 2.0.66",
+ "syn 2.0.99",
]
[[package]]
@@ -560,9 +597,9 @@ version = "1.0.122"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "928bc249a7e3cd554fd2e8e08a426e9670c50bbfc9a621653cfa9accc9641783"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -583,10 +620,10 @@ checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120"
dependencies = [
"fnv",
"ident_case",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"strsim 0.11.1",
- "syn 2.0.66",
+ "syn 2.0.99",
]
[[package]]
@@ -596,8 +633,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178"
dependencies = [
"darling_core",
- "quote 1.0.36",
- "syn 2.0.66",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -622,8 +659,8 @@ version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"syn 1.0.109",
]
@@ -732,9 +769,9 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "311a6d2f1f9d60bff73d2c78a0af97ed27f79672f15c238192a5bbb64db56d00"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -849,9 +886,9 @@ version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -939,9 +976,9 @@ version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -1292,9 +1329,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "956caa58d4857bc9941749d55e4bd3000032d8212762586fa5705632967140e7"
dependencies = [
"proc-macro-crate",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -1327,6 +1364,10 @@ name = "hashbrown"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+dependencies = [
+ "ahash",
+ "serde",
+]
[[package]]
name = "heck"
@@ -1517,6 +1558,9 @@ name = "id-arena"
version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
+dependencies = [
+ "rayon",
+]
[[package]]
name = "ident_case"
@@ -1550,8 +1594,8 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9311685eb9a34808bbb0608ad2fcab9ae216266beca5848613e95553ac914e3b"
dependencies = [
- "quote 1.0.36",
- "syn 2.0.66",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -1842,8 +1886,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb"
dependencies = [
"cfg-if",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"syn 1.0.109",
]
@@ -2032,7 +2076,6 @@ dependencies = [
"serde_json",
"thiserror",
"tracing",
- "tracing-unwrap",
"ts-rs",
]
@@ -2044,6 +2087,7 @@ dependencies = [
"base64 0.13.1",
"chrono",
"console_error_panic_hook",
+ "derivative",
"extend",
"futures",
"getrandom",
@@ -2185,9 +2229,9 @@ version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -2273,8 +2317,8 @@ version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
dependencies = [
- "proc-macro2 1.0.83",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "syn 2.0.99",
]
[[package]]
@@ -2294,8 +2338,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"syn 1.0.109",
"version_check",
]
@@ -2306,8 +2350,8 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"version_check",
]
@@ -2322,9 +2366,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.83"
+version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43"
+checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84"
dependencies = [
"unicode-ident",
]
@@ -2390,7 +2434,7 @@ dependencies = [
"prost",
"prost-types",
"regex",
- "syn 2.0.66",
+ "syn 2.0.99",
"tempfile",
]
@@ -2402,9 +2446,9 @@ checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
dependencies = [
"anyhow",
"itertools 0.12.1",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -2464,9 +2508,9 @@ version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2df2884957d2476731f987673befac5d521dff10abb0a7cbe12015bc7702fe9"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -2505,10 +2549,10 @@ version = "0.23.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91871864b353fd5ffcb3f91f2f703a22a9797c91b9ab497b1acac7b07ae509c7"
dependencies = [
- "proc-macro2 1.0.83",
+ "proc-macro2 1.0.94",
"pyo3-macros-backend",
- "quote 1.0.36",
- "syn 2.0.66",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -2518,10 +2562,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43abc3b80bc20f3facd86cd3c60beed58c3e2aa26213f3cda368de39c60a27e4"
dependencies = [
"heck 0.5.0",
- "proc-macro2 1.0.83",
+ "proc-macro2 1.0.94",
"pyo3-build-config 0.23.4",
- "quote 1.0.36",
- "syn 2.0.66",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -2554,11 +2598,11 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.36"
+version = "1.0.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801"
dependencies = [
- "proc-macro2 1.0.83",
+ "proc-macro2 1.0.94",
]
[[package]]
@@ -2591,6 +2635,26 @@ dependencies = [
"getrandom",
]
+[[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
[[package]]
name = "redox_syscall"
version = "0.5.1"
@@ -2820,9 +2884,9 @@ version = "1.0.202"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -2892,9 +2956,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2"
dependencies = [
"darling",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -3031,8 +3095,8 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
dependencies = [
"heck 0.3.3",
"proc-macro-error",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"syn 1.0.109",
]
@@ -3061,8 +3125,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
dependencies = [
"heck 0.4.1",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"rustversion",
"syn 1.0.109",
]
@@ -3074,10 +3138,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
dependencies = [
"heck 0.4.1",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"rustversion",
- "syn 2.0.66",
+ "syn 2.0.99",
]
[[package]]
@@ -3097,19 +3161,19 @@ version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"unicode-ident",
]
[[package]]
name = "syn"
-version = "2.0.66"
+version = "2.0.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
+checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"unicode-ident",
]
@@ -3185,9 +3249,9 @@ version = "1.0.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -3270,9 +3334,9 @@ version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -3416,9 +3480,9 @@ version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -3460,15 +3524,6 @@ dependencies = [
"tracing-log",
]
-[[package]]
-name = "tracing-unwrap"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4e33415be97f5ae70322d6fefc696bbc08887d8835400d6c77f059469b30354"
-dependencies = [
- "tracing",
-]
-
[[package]]
name = "ts-rs"
version = "10.0.0"
@@ -3487,9 +3542,9 @@ version = "10.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ea0b99e8ec44abd6f94a18f28f7934437809dd062820797c52401298116f70e"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
"termcolor",
]
@@ -3621,15 +3676,16 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "walrus"
-version = "0.20.3"
+version = "0.23.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c03529cd0c4400a2449f640d2f27cd1b48c3065226d15e26d98e4429ab0adb7"
+checksum = "6481311b98508f4bc2d0abbfa5d42172e7a54b4b24d8f15e28b0dc650be0c59f"
dependencies = [
"anyhow",
"gimli 0.26.2",
"id-arena",
"leb128",
"log",
+ "rayon",
"walrus-macro",
"wasm-encoder",
"wasmparser",
@@ -3637,14 +3693,14 @@ dependencies = [
[[package]]
name = "walrus-macro"
-version = "0.19.0"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a6e5bd22c71e77d60140b0bd5be56155a37e5bd14e24f5f87298040d0cc40d7"
+checksum = "439ad39ff894c43c9649fa724cdde9a6fc50b855d517ef071a93e5df82fe51d3"
dependencies = [
- "heck 0.3.3",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 1.0.109",
+ "heck 0.5.0",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
@@ -3655,11 +3711,13 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.92"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
dependencies = [
"cfg-if",
+ "once_cell",
+ "rustversion",
"serde",
"serde_json",
"wasm-bindgen-macro",
@@ -3667,32 +3725,31 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.92"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
dependencies = [
"bumpalo",
"log",
- "once_cell",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-cli-support"
-version = "0.2.92"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca821da8c1ae6c87c5e94493939a206daa8587caff227c6032e0061a3d80817f"
+checksum = "21e1a4a49abe9cd6f762fc65fac2ef5732afeeb66be369d2f71a85b165a533cf"
dependencies = [
"anyhow",
- "base64 0.21.7",
+ "base64 0.22.1",
"log",
"rustc-demangle",
+ "serde",
"serde_json",
"tempfile",
- "unicode-ident",
"walrus",
"wasm-bindgen-externref-xform",
"wasm-bindgen-multi-value-xform",
@@ -3704,12 +3761,13 @@ dependencies = [
[[package]]
name = "wasm-bindgen-externref-xform"
-version = "0.2.92"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "102582726b35a30d53157fbf8de3d0f0fed4c40c0c7951d69a034e9ef01da725"
+checksum = "940542c5cdbe96c35f98b5da5c65fb9d18df55a0cb1d81fc5ca4acc4fda4d61c"
dependencies = [
"anyhow",
"walrus",
+ "wasm-bindgen-wasm-conventions",
]
[[package]]
@@ -3726,42 +3784,46 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.92"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
dependencies = [
- "quote 1.0.36",
+ "quote 1.0.39",
"wasm-bindgen-macro-support",
]
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.92"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-multi-value-xform"
-version = "0.2.92"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3498e4799f43523d780ceff498f04d882a8dbc9719c28020034822e5952f32a4"
+checksum = "64b5ad2e97adde0c3e4369c38e0dbaee329ad8f6cc2ee8e01d1d0b13bd8b14cf"
dependencies = [
"anyhow",
"walrus",
+ "wasm-bindgen-wasm-conventions",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.92"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
+dependencies = [
+ "unicode-ident",
+]
[[package]]
name = "wasm-bindgen-test"
@@ -3783,16 +3845,16 @@ version = "0.3.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7f89739351a2e03cb94beb799d47fb2cac01759b40ec441f7de39b00cbf7ef0"
dependencies = [
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
name = "wasm-bindgen-threads-xform"
-version = "0.2.92"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d5add359b7f7d09a55299a9d29be54414264f2b8cf84f8c8fda5be9269b5dd9"
+checksum = "1cbdf2d55a50f7edc9dd9aecae7a3a40e9736fda851bd8816f98a86167c8c277"
dependencies = [
"anyhow",
"walrus",
@@ -3801,19 +3863,22 @@ dependencies = [
[[package]]
name = "wasm-bindgen-wasm-conventions"
-version = "0.2.92"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c04e3607b810e76768260db3a5f2e8beb477cb089ef8726da85c8eb9bd3b575"
+checksum = "b1c24fcaa34d2d84407122cfb1d3f37c3586756cf462be18e049b49245a16c08"
dependencies = [
"anyhow",
+ "leb128",
+ "log",
"walrus",
+ "wasmparser",
]
[[package]]
name = "wasm-bindgen-wasm-interpreter"
-version = "0.2.92"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ea966593c8243a33eb4d643254eb97a69de04e89462f46cf6b4f506aae89b3a"
+checksum = "33f24921401faadd6944206f9d6837d07bbb5ff766ed51ad34528089f66550e0"
dependencies = [
"anyhow",
"log",
@@ -3823,9 +3888,9 @@ dependencies = [
[[package]]
name = "wasm-encoder"
-version = "0.29.0"
+version = "0.214.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18c41dbd92eaebf3612a39be316540b8377c871cb9bde6b064af962984912881"
+checksum = "ff694f02a8d7a50b6922b197ae03883fbf18cdb2ae9fbee7b6148456f5f44041"
dependencies = [
"leb128",
]
@@ -3872,9 +3937,17 @@ dependencies = [
[[package]]
name = "wasmparser"
-version = "0.80.2"
+version = "0.214.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "449167e2832691a1bff24cde28d2804e90e09586a448c8e76984792c44334a6b"
+checksum = "5309c1090e3e84dad0d382f42064e9933fdaedb87e468cc239f0eabea73ddcb6"
+dependencies = [
+ "ahash",
+ "bitflags 2.5.0",
+ "hashbrown 0.14.5",
+ "indexmap 2.2.6",
+ "semver 1.0.23",
+ "serde",
+]
[[package]]
name = "web-sys"
@@ -4112,10 +4185,10 @@ dependencies = [
"codespan-reporting",
"diffy",
"dirs",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
"serde",
- "syn 2.0.66",
+ "syn 2.0.99",
]
[[package]]
@@ -4128,9 +4201,29 @@ dependencies = [
"once_cell",
"prettyplease",
"proc-macro-error",
- "proc-macro2 1.0.83",
- "quote 1.0.36",
- "syn 2.0.66",
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
+dependencies = [
+ "proc-macro2 1.0.94",
+ "quote 1.0.39",
+ "syn 2.0.99",
]
[[package]]
diff --git a/cpp/perspective/CMakeLists.txt b/cpp/perspective/CMakeLists.txt
index 10abb43d3a..988122b784 100644
--- a/cpp/perspective/CMakeLists.txt
+++ b/cpp/perspective/CMakeLists.txt
@@ -232,7 +232,7 @@ if(PSP_WASM_BUILD)
-g3 \
-Wcast-align \
-Wover-aligned \
- -emit-tsd=perspective-server.d.ts \
+ --emit-tsd=perspective-server.d.ts \
")
if (PSP_WASM_EXCEPTIONS)
set(OPT_FLAGS "${OPT_FLAGS} -fwasm-exceptions ")
diff --git a/examples/blocks/src/editable/index.html b/examples/blocks/src/editable/index.html
index fdba271eff..6fad615870 100644
--- a/examples/blocks/src/editable/index.html
+++ b/examples/blocks/src/editable/index.html
@@ -29,7 +29,7 @@
viewer.load(table);
}
- viewer.restore({ plugin_config: { edit_mode: "EDIT" } });
+ viewer.restore({ plugin_config: { edit_mode: "EDIT" }, settings: true });
diff --git a/examples/rust-axum/Cargo.toml b/examples/rust-axum/Cargo.toml
index 16d78739bf..6401b09053 100644
--- a/examples/rust-axum/Cargo.toml
+++ b/examples/rust-axum/Cargo.toml
@@ -13,7 +13,7 @@
[package]
name = "rust-axum"
version = "0.1.0"
-edition = "2021"
+edition = "2024"
publish = false
[dependencies]
diff --git a/examples/rust-axum/package.json b/examples/rust-axum/package.json
index 86bdb14c6e..ff0a6b4fba 100644
--- a/examples/rust-axum/package.json
+++ b/examples/rust-axum/package.json
@@ -4,7 +4,7 @@
"version": "3.3.4",
"description": "An example of a Rust/Axum virtual Perspective server",
"scripts": {
- "start": "cargo run"
+ "start": "cargo run --target=$(rustc -vV | sed -n 's|host: ||p')"
},
"keywords": [],
"license": "Apache-2.0",
diff --git a/examples/rust-axum/src/index.html b/examples/rust-axum/src/index.html
index f2932e6978..5c6eab7117 100644
--- a/examples/rust-axum/src/index.html
+++ b/examples/rust-axum/src/index.html
@@ -14,8 +14,9 @@
import "/node_modules/@finos/perspective-viewer/dist/cdn/perspective-viewer.js";
import perspective from "/node_modules/@finos/perspective/dist/cdn/perspective.js";
const socket = await perspective.websocket("/ws");
- const table = await socket.open_table("my_data_source");
+ const table = socket.open_table("my_data_source");
const viewer = document.getElementsByTagName("perspective-viewer")[0];
+
viewer.load(table);
viewer.restore({ settings: true, plugin_config: { edit_mode: "EDIT" } });
diff --git a/packages/perspective-viewer-d3fc/src/ts/legend/filter.ts b/packages/perspective-viewer-d3fc/src/ts/legend/filter.ts
index 7d04f9788c..6b6b224b73 100644
--- a/packages/perspective-viewer-d3fc/src/ts/legend/filter.ts
+++ b/packages/perspective-viewer-d3fc/src/ts/legend/filter.ts
@@ -18,7 +18,6 @@ function refineDateData(settings: Settings) {
const { crossValues } = settings;
crossValues.forEach(({ type }, index) => {
- console.log("Type:", type);
const formatType =
type === "date" || type === "datetime"
? (value: any) => new Date(value).toLocaleString()
diff --git a/packages/perspective-workspace/src/themes/pro-dark.less b/packages/perspective-workspace/src/themes/pro-dark.less
index 224805bfc7..4e70bb94d4 100644
--- a/packages/perspective-workspace/src/themes/pro-dark.less
+++ b/packages/perspective-workspace/src/themes/pro-dark.less
@@ -23,7 +23,7 @@ perspective-indicator[theme="Pro Dark"] {
}
perspective-workspace perspective-viewer {
- --status-bar--height: 38px;
+ --status-bar--height: 39px;
}
perspective-workspace perspective-viewer[settings] {
diff --git a/packages/perspective-workspace/src/themes/pro.less b/packages/perspective-workspace/src/themes/pro.less
index 8e263e97c0..a938573087 100644
--- a/packages/perspective-workspace/src/themes/pro.less
+++ b/packages/perspective-workspace/src/themes/pro.less
@@ -35,7 +35,7 @@ perspective-workspace perspective-viewer[settings] {
}
perspective-workspace perspective-viewer {
- --status-bar--height: 38px;
+ --status-bar--height: 39px;
}
perspective-viewer[theme="Pro Light"].workspace-master-widget {
diff --git a/rust-toolchain.toml b/rust-toolchain.toml
index 7822610563..674bb7481b 100644
--- a/rust-toolchain.toml
+++ b/rust-toolchain.toml
@@ -11,6 +11,6 @@
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
[toolchain]
-channel = "nightly-2024-08-29"
+channel = "nightly-2025-02-01"
components = ["rustfmt", "clippy", "rust-src"]
targets = ["wasm32-unknown-unknown", "wasm32-unknown-emscripten"]
diff --git a/rust/bootstrap-runtime/Cargo.toml b/rust/bootstrap-runtime/Cargo.toml
index 3d0888fcaf..137935b2fb 100644
--- a/rust/bootstrap-runtime/Cargo.toml
+++ b/rust/bootstrap-runtime/Cargo.toml
@@ -13,7 +13,7 @@
[package]
name = "perspective-bootstrap-runtime"
description = "A tiny runtime wrapper to create self-extracting wasm binaries"
-edition = "2021"
+edition = "2024"
publish = false
[lib]
@@ -32,4 +32,3 @@ features = ["zlib"]
[features]
env_target = []
default_features = []
-
diff --git a/rust/bootstrap-runtime/lib.rs b/rust/bootstrap-runtime/lib.rs
index 2149aa2518..be571a18c2 100644
--- a/rust/bootstrap-runtime/lib.rs
+++ b/rust/bootstrap-runtime/lib.rs
@@ -28,7 +28,7 @@
//! freeing the uncompressed memory from the archive.
#![no_std]
-#![allow(internal_features, improper_ctypes_definitions)]
+#![allow(internal_features, improper_ctypes_definitions, static_mut_refs)]
#![feature(core_intrinsics, lang_items, alloc_error_handler)]
extern crate alloc;
@@ -53,13 +53,13 @@ static ALLOCATOR: talc::Talck
#[cfg(not(test))]
#[panic_handler]
-#[no_mangle]
+#[unsafe(no_mangle)]
pub fn panic(_info: &::core::panic::PanicInfo) -> ! {
::core::intrinsics::abort();
}
#[alloc_error_handler]
-#[no_mangle]
+#[unsafe(no_mangle)]
pub extern "C" fn oom(_: ::core::alloc::Layout) -> ! {
::core::intrinsics::abort();
}
@@ -74,13 +74,13 @@ const COMPRESSED_BYTES: &[u8] = include_bytes!(env!("BOOTSTRAP_TARGET"));
static mut DECOMPRESSED_BYTES: Vec = Vec::new();
-#[no_mangle]
+#[unsafe(no_mangle)]
pub fn size() -> usize {
init();
unsafe { DECOMPRESSED_BYTES.len() }
}
-#[no_mangle]
+#[unsafe(no_mangle)]
pub fn offset() -> *const u8 {
unsafe { DECOMPRESSED_BYTES.as_ptr() }
}
diff --git a/rust/bootstrap/Cargo.toml b/rust/bootstrap/Cargo.toml
index 99dd458201..3aacbe34cc 100644
--- a/rust/bootstrap/Cargo.toml
+++ b/rust/bootstrap/Cargo.toml
@@ -13,7 +13,7 @@
[package]
name = "perspective-bootstrap"
description = "A CLI utility to create self-extracting wasm binaries"
-edition = "2021"
+edition = "2024"
publish = false
[[bin]]
diff --git a/rust/bundle/Cargo.toml b/rust/bundle/Cargo.toml
index 9e11735a32..d1c39514dd 100644
--- a/rust/bundle/Cargo.toml
+++ b/rust/bundle/Cargo.toml
@@ -13,7 +13,7 @@
[package]
name = "perspective-bundle"
description = "A CLI utility to build and link persecptive-viewer"
-edition = "2021"
+edition = "2024"
publish = false
[[bin]]
diff --git a/rust/bundle/main.rs b/rust/bundle/main.rs
index 02deaa2f4d..5455f4dff0 100644
--- a/rust/bundle/main.rs
+++ b/rust/bundle/main.rs
@@ -71,7 +71,7 @@ fn bindgen(outdir: &Path, artifact: &str, is_release: bool) {
.input_path(input)
.encode_into(EncodeInto::Always)
.typescript(true)
- .reference_types(true)
+ // .reference_types(true)
.out_name(&format!("{}.wasm", artifact.replace('_', "-")))
.generate(outdir)
.unwrap();
diff --git a/rust/generate-metadata/Cargo.toml b/rust/generate-metadata/Cargo.toml
index d31fa303f4..3a1d5f6fc7 100644
--- a/rust/generate-metadata/Cargo.toml
+++ b/rust/generate-metadata/Cargo.toml
@@ -13,7 +13,7 @@
[package]
name = "perspective-metadata"
description = "A CLI utility for generating Perspective project metadata like TypeScript definitions."
-edition = "2021"
+edition = "2024"
publish = false
[[bin]]
diff --git a/rust/lint/Cargo.toml b/rust/lint/Cargo.toml
index 05b5e6e043..23145c00cb 100644
--- a/rust/lint/Cargo.toml
+++ b/rust/lint/Cargo.toml
@@ -14,7 +14,7 @@
name = "perspective-lint"
description = "A CLI utility to lint rust code"
version = "3.3.4"
-edition = "2021"
+edition = "2024"
publish = false
[[bin]]
diff --git a/rust/perspective-client/Cargo.toml b/rust/perspective-client/Cargo.toml
index 44ed92540c..7925b9b83a 100644
--- a/rust/perspective-client/Cargo.toml
+++ b/rust/perspective-client/Cargo.toml
@@ -14,7 +14,7 @@
name = "perspective-client"
version = "3.3.4"
authors = ["Andrew Stein "]
-edition = "2021"
+edition = "2024"
description = "A data visualization and analytics component, especially well-suited for large and/or streaming datasets."
repository = "https://github.com/finos/perspective"
license = "Apache-2.0"
@@ -67,7 +67,6 @@ serde_bytes = { version = "0.11" }
serde_json = { version = "1.0.107", features = ["raw_value"] }
thiserror = { version = "1.0.55" }
tracing = { version = ">=0.1.36" }
-tracing-unwrap = "1.0.1"
[dependencies.prost]
version = "0.12.3"
diff --git a/rust/perspective-client/build.rs b/rust/perspective-client/build.rs
index 8b0ef86da2..7768d3d10d 100644
--- a/rust/perspective-client/build.rs
+++ b/rust/perspective-client/build.rs
@@ -41,7 +41,9 @@ fn prost_build() -> Result<()> {
// that crate. When protobuf-src is disabled, builders must set PROTOC
// in the environment to a protocol buffer compiler.
#[cfg(feature = "protobuf-src")]
- std::env::set_var("PROTOC", protobuf_src::protoc());
+ unsafe {
+ std::env::set_var("PROTOC", protobuf_src::protoc())
+ };
#[cfg(not(feature = "protobuf-src"))]
if std::env::var("PROTOC").is_err() {
panic!(
diff --git a/rust/perspective-client/src/rust/client.rs b/rust/perspective-client/src/rust/client.rs
index d6aee3eddd..9a40e8a963 100644
--- a/rust/perspective-client/src/rust/client.rs
+++ b/rust/perspective-client/src/rust/client.rs
@@ -16,12 +16,11 @@ use std::sync::atomic::AtomicU32;
use std::sync::Arc;
use async_lock::{Mutex, RwLock};
-use futures::future::BoxFuture;
+use futures::future::{join_all, BoxFuture, LocalBoxFuture};
use futures::Future;
use nanoid::*;
use prost::Message;
use serde::{Deserialize, Serialize};
-use tracing_unwrap::{OptionExt, ResultExt};
use crate::proto::request::ClientReq;
use crate::proto::response::ClientResp;
@@ -63,8 +62,11 @@ impl GetFeaturesResp {
}
type BoxFn = Box O + Send + Sync + 'static>;
+type Box2Fn = Box O + Send + Sync + 'static>;
type Subscriptions = Arc>>;
+type OnErrorCallback =
+ Box2Fn