atagen

matrix-rust-sdk

public
Star0
Watch0

Commit 7ff8adafe9e4

tarball

atagen <boss@atagen.co>2026-10-22 12:30 UTC

994 files changed+454591-0
base: snapshot of upstream 1c44fb662
Added file: .cargo/config.toml+16 additions
@@ -0,0 +1,16 @@
1+[alias]
2+xtask = "run --package xtask --"
3+uniffi-bindgen = "run --package uniffi-bindgen --"
4+
5+[doc.extern-map.registries]
6+crates-io = "https://docs.rs/"
7+
8+[unstable]
9+rustdoc-map = true
10+
11+[target.aarch64-linux-android]
12+# These rust flags improve the performance on Android on arm64
13+rustflags = ["-C", "target-feature=+neon,+aes,+sha2,+sha3,+pmuv3"]
14+
15+[env]
16+IPHONEOS_DEPLOYMENT_TARGET = "16.0"
Added file: .config/nextest.toml+13 additions
@@ -0,0 +1,13 @@
1+[profile.default]
2+retries = { backoff = "exponential", count = 3, delay = "1s", jitter = true }
3+# kill the slow tests if they still aren't up after 180s
4+slow-timeout = { period = "60s", terminate-after = 3 }
5+
6+[profile.ci]
7+retries = { backoff = "exponential", count = 4, delay = "1s", jitter = true }
8+# kill the slow tests if they still aren't up after 180s
9+slow-timeout = { period = "60s", terminate-after = 3 }
10+
11+[profile.ci.junit]
12+path = "junit.xml"
13+store-success-output = true
Added file: .deny.toml+53 additions
@@ -0,0 +1,53 @@
1+# https://embarkstudios.github.io/cargo-deny/checks/cfg.html
2+[graph]
3+all-features = true
4+exclude = [
5+ # dev only dependency
6+ "criterion"
7+]
8+
9+[advisories]
10+version = 2
11+ignore = [
12+ { id = "RUSTSEC-2024-0388", reason = "Unmaintained derivative crate, not a direct dependency" },
13+]
14+
15+[licenses]
16+version = 2
17+allow = [
18+ "Apache-2.0",
19+ "Apache-2.0 WITH LLVM-exception",
20+ "CDLA-Permissive-2.0",
21+ "BSD-2-Clause",
22+ "BSD-3-Clause",
23+ "BSL-1.0",
24+ "ISC",
25+ "MIT",
26+ "MPL-2.0",
27+ "Unicode-3.0",
28+ "Zlib",
29+]
30+
31+[bans]
32+# We should disallow this, but it's currently a PITA.
33+multiple-versions = "allow"
34+wildcards = "allow"
35+
36+[sources]
37+unknown-registry = "deny"
38+unknown-git = "deny"
39+
40+allow-git = [
41+ # A patch override for the bindings fixing a bug for Android before upstream
42+ # releases a new version.
43+ "https://github.com/tokio-rs/tracing.git",
44+ # Well, it's Ruma.
45+ "https://github.com/ruma/ruma",
46+ # A patch override for the bindings: https://github.com/rodrimati1992/const_panic/pull/10
47+ "https://github.com/jplatte/const_panic",
48+ # A patch override for the bindings: https://github.com/smol-rs/async-compat/pull/22
49+ "https://github.com/element-hq/async-compat",
50+ # We can release vodozemac whenever we need but let's not block development
51+ # on releases.
52+ "https://github.com/matrix-org/vodozemac",
53+]
Added file: .editorconfig+6 additions
@@ -0,0 +1,6 @@
1+root = true
2+
3+# Unix-style newlines with a newline ending every file
4+[*]
5+end_of_line = lf
6+insert_final_newline = true
Added file: .github/CODEOWNERS+3 additions
@@ -0,0 +1,3 @@
1+* @matrix-org/rust
2+/crates/matrix-sdk-crypto @matrix-org/rust @matrix-org/rust-crypto-reviewers
3+/crates/matrix-sdk-indexeddb/src/crypto_store @matrix-org/rust @matrix-org/rust-crypto-reviewers
Added file: .github/dependabot.yml+9 additions
@@ -0,0 +1,9 @@
1+version: 2
2+updates:
3+ - package-ecosystem: "github-actions"
4+ directory: "/"
5+ schedule:
6+ # Check for updates to GitHub Actions every week
7+ interval: "weekly"
8+ cooldown:
9+ default-days: 7
Added file: .github/pull_request_template.md+11 additions
@@ -0,0 +1,11 @@
1+<!-- description of the changes in this PR -->
2+
3+- [ ] I've documented the public API changes in the appropriate changelog files
4+ (see [Writing changelog entries][pull-request-template-changelog]).
5+- [ ] This PR was made with the help of AI.
6+
7+<!-- Sign-off, if not part of the commits -->
8+<!-- See CONTRIBUTING.md if you don't know what this is -->
9+Signed-off-by:
10+
11+[pull-request-template-changelog]: https://github.com/matrix-org/matrix-rust-sdk/blob/main/CONTRIBUTING.md#writing-changelog-entries
Added file: .github/workflows/benchmarks.yml+103 additions
@@ -0,0 +1,103 @@
1+name: Benchmarks
2+
3+on:
4+ push:
5+ branches:
6+ - "main"
7+ pull_request:
8+ workflow_dispatch:
9+
10+jobs:
11+ benchmarks:
12+ name: Run Benchmarks
13+ runs-on: ubuntu-latest
14+ permissions:
15+ contents: read
16+ id-token: write
17+ strategy:
18+ matrix:
19+ benchmark:
20+ - crypto_bench
21+ - event_cache
22+ - linked_chunk
23+ - store_bench
24+ - timeline
25+ - room_list
26+
27+ steps:
28+ # This CI workflow can run into space issue, so we're cleaning up some
29+ # space here.
30+ - name: Create some more space
31+ run: |
32+ echo "Disk space before cleanup"
33+ df -h
34+
35+ cd /opt
36+ find . -maxdepth 1 -mindepth 1 '!' -path ./containerd '!' -path ./actionarchivecache '!' -path ./runner '!' -path ./runner-cache -exec rm -rf '{}' ';'
37+ rm -rf /opt/hostedtoolcache
38+
39+ # Get rid of binaries and libs we're not interested in.
40+ sudo rm -rf \
41+ /usr/local/julia* \
42+ /usr/local/aws*
43+
44+ sudo rm -rf \
45+ /usr/local/bin/minikube \
46+ /usr/local/bin/node \
47+ /usr/local/bin/stack \
48+ /usr/local/bin/bicep \
49+ /usr/local/bin/pulumi* \
50+ /usr/local/bin/helm \
51+ /usr/local/bin/azcopy \
52+ /usr/local/bin/packer \
53+ /usr/local/bin/cmake-gui \
54+ /usr/local/bin/cpack
55+
56+ sudo rm -rf \
57+ /usr/local/share/powershell \
58+ /usr/local/share/chromium
59+
60+ sudo rm -rf /usr/local/lib/android
61+
62+ echo "::group::/usr/local/bin/*"
63+ du -hsc /usr/local/bin/* | sort -h
64+ echo "::endgroup::"
65+
66+ echo "::group::/usr/local/share/*"
67+ du -hsc /usr/local/share/* | sort -h
68+ echo "::endgroup::"
69+
70+ echo "::group::/usr/local/*"
71+ du -hsc /usr/local/* | sort -h
72+ echo "::endgroup::"
73+
74+ echo "::group::/usr/local/lib/*"
75+ du -hsc /usr/local/lib/* | sort -h
76+ echo "::endgroup::"
77+
78+ echo "::group::/opt/*"
79+ du -hsc /opt/* | sort -h
80+ echo "::endgroup::"
81+
82+ echo "Disk space after cleanup"
83+ df -h
84+
85+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
86+ with:
87+ persist-credentials: false
88+
89+ - name: Setup rust toolchain, cache and cargo-codspeed binary
90+ uses: moonrepo/setup-rust@abb2d32350334249b178c401e5ec5836e0cd88d3
91+ with:
92+ channel: stable
93+ cache-target: release
94+ bins: cargo-codspeed
95+
96+ - name: Build the benchmark target(s)
97+ run: cargo codspeed build -p benchmarks --bench ${{ matrix.benchmark }} --features codspeed
98+
99+ - name: Run the benchmarks
100+ uses: CodSpeedHQ/action@3194d9a39c4d46684cb44bf7207fc56626aad8fd
101+ with:
102+ run: cargo codspeed run
103+ mode: simulation
Added file: .github/workflows/bindings_ci.yml+243 additions
@@ -0,0 +1,243 @@
1+name: Bindings tests
2+
3+on:
4+ workflow_dispatch:
5+ push:
6+ branches: ["main", "features/**", "release-**"]
7+ pull_request:
8+ branches: ["main", "features/**", "release-**"]
9+ types:
10+ - opened
11+ - reopened
12+ - synchronize
13+ - ready_for_review
14+
15+permissions: {}
16+
17+concurrency:
18+ group: ${{ github.workflow }}-${{ github.ref }}
19+ cancel-in-progress: true
20+
21+env:
22+ CARGO_TERM_COLOR: always
23+
24+jobs:
25+ xtask:
26+ uses: ./.github/workflows/xtask.yml
27+
28+ test-uniffi-codegen:
29+ name: Test UniFFI bindings generation
30+ needs: xtask
31+ if: github.event_name == 'push' || !github.event.pull_request.draft
32+ runs-on: ubuntu-latest
33+
34+ steps:
35+ - name: Checkout
36+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
37+ with:
38+ persist-credentials: false
39+
40+ - name: Install protoc
41+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.1
42+ with:
43+ tool: protoc@3.20.3
44+
45+ - name: Install Rust
46+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
47+ with:
48+ toolchain: stable
49+
50+ # Cargo config can screw with caching and is only used for alias config
51+ # and extra lints, which we don't care about here
52+ - name: Delete cargo config
53+ run: rm .cargo/config.toml
54+
55+ - name: Load cache
56+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
57+ with:
58+ save-if: ${{ github.ref == 'refs/heads/main' }}
59+
60+ - name: Get xtask
61+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
62+ with:
63+ path: target/debug/xtask
64+ key: "${{ needs.xtask.outputs.cachekey-linux }}"
65+ fail-on-cache-miss: true
66+
67+ - name: Build library & generate bindings
68+ run: target/debug/xtask ci bindings
69+
70+ test-android:
71+ name: matrix-rust-components-kotlin
72+ needs: xtask
73+ runs-on: ubuntu-latest
74+ if: github.event_name == 'push' || !github.event.pull_request.draft
75+
76+ steps:
77+ - name: Checkout Rust SDK
78+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
79+ with:
80+ persist-credentials: false
81+
82+ - name: Checkout Kotlin Rust Components project
83+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
84+ with:
85+ repository: matrix-org/matrix-rust-components-kotlin
86+ path: rust-components-kotlin
87+ ref: main
88+ persist-credentials: false
89+
90+ - name: Use JDK 17
91+ uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
92+ with:
93+ distribution: 'temurin' # See 'Supported distributions' for available options
94+ java-version: '17'
95+
96+ - name: Install android sdk
97+ uses: malinskiy/action-android/install-sdk@fa103ef30331e95f266418a6a97e98f61f626887 # release/0.1.7
98+
99+ - name: Install android ndk
100+ uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1
101+ id: install-ndk
102+ with:
103+ ndk-version: r27
104+
105+ - name: Install Rust
106+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
107+ with:
108+ toolchain: stable
109+
110+ # Cargo config can screw with caching and is only used for alias config
111+ # and extra lints, which we don't care about here
112+ - name: Delete cargo config
113+ run: rm .cargo/config.toml
114+
115+ - name: Load cache
116+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
117+ with:
118+ save-if: ${{ github.ref == 'refs/heads/main' }}
119+
120+ - name: Get xtask
121+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
122+ with:
123+ path: target/debug/xtask
124+ key: "${{ needs.xtask.outputs.cachekey-linux }}"
125+ fail-on-cache-miss: true
126+
127+ - name: Install Rust dependencies
128+ run: |
129+ rustup target add x86_64-linux-android
130+ cargo install cargo-ndk
131+
132+ - name: Build SDK bindings for Android
133+ # Building for x86_64-linux-android as it's the most prone to breaking and building for every arch is too much
134+ run: |
135+ echo "Building SDK for x86_64-linux-android and creating bindings"
136+ target/debug/xtask kotlin build-android-library --package full-sdk --only-target x86_64-linux-android --src-dir rust-components-kotlin/sdk/sdk-android/src/main
137+ echo "Copying the result binary to the Android project"
138+ cd rust-components-kotlin
139+ echo "Building the Kotlin bindings"
140+ ./gradlew :sdk:sdk-android:assembleDebug
141+
142+ test-apple:
143+ name: matrix-rust-components-swift
144+ needs: xtask
145+ runs-on: macos-15
146+ if: github.event_name == 'push' || !github.event.pull_request.draft
147+
148+ steps:
149+ - name: Checkout
150+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
151+ with:
152+ persist-credentials: false
153+
154+ # install protoc in case we end up rebuilding opentelemetry-proto
155+ - name: Install protoc
156+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.1
157+ with:
158+ tool: protoc@3.20.3
159+
160+ - name: Install Rust
161+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
162+ with:
163+ toolchain: stable
164+
165+ - name: Install aarch64-apple-ios target
166+ run: rustup target install aarch64-apple-ios
167+
168+ # Cargo config can screw with caching and is only used for alias config
169+ # and extra lints, which we don't care about here
170+ - name: Delete cargo config
171+ run: rm .cargo/config.toml
172+
173+ - name: Load cache
174+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
175+ with:
176+ save-if: ${{ github.ref == 'refs/heads/main' }}
177+
178+ - name: Get xtask
179+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
180+ with:
181+ path: target/debug/xtask
182+ key: "${{ needs.xtask.outputs.cachekey-macos }}"
183+ fail-on-cache-miss: true
184+
185+ - name: Build library & bindings
186+ run: target/debug/xtask swift build-library
187+
188+ - name: Run XCTests
189+ working-directory: bindings/apple
190+ run: swift test
191+
192+ - name: Build Framework
193+ run: target/debug/xtask swift build-framework --target=aarch64-apple-ios --profile=dev --ios-deployment-target=18.0
194+
195+ complement-crypto:
196+ name: "Run Complement Crypto tests"
197+ uses: matrix-org/complement-crypto/.github/workflows/single_sdk_tests.yml@399a1deeab0d7e4fa9604cbe83b1df6058c40193 # main
198+ with:
199+ use_rust_sdk: "." # use local checkout
200+ use_complement_crypto: "MATCHING_BRANCH"
201+
202+ test-crypto-apple-framework-generation:
203+ name: Generate Crypto FFI Apple XCFramework
204+ runs-on: macos-15
205+ if: github.event_name == 'push' || !github.event.pull_request.draft
206+
207+ steps:
208+ - name: Checkout
209+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
210+ with:
211+ persist-credentials: false
212+
213+ # install protoc in case we end up rebuilding opentelemetry-proto
214+ - name: Install protoc
215+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.1
216+ with:
217+ tool: protoc@3.20.3
218+
219+ - name: Install Rust
220+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
221+ with:
222+ toolchain: stable
223+
224+ - name: Add rust targets
225+ run: |
226+ rustup target add aarch64-apple-ios
227+
228+ # Cargo config can screw with caching and is only used for alias config
229+ # and extra lints, which we don't care about here
230+ - name: Delete cargo config
231+ run: rm .cargo/config.toml
232+
233+ - name: Load cache
234+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
235+ with:
236+ save-if: ${{ github.ref == 'refs/heads/main' }}
237+
238+ - name: Run the Build Framework script
239+ run: ./bindings/apple/build_crypto_xcframework.sh -i
240+
241+ - name: Is XCFramework generated?
242+ if: ${{ hashFiles('generated/MatrixSDKCryptoFFI.zip') != '' }}
243+ run: echo "XCFramework exists"
Added file: .github/workflows/ci.yml+433 additions
@@ -0,0 +1,433 @@
1+name: Rust tests
2+
3+on:
4+ workflow_dispatch:
5+ push:
6+ branches: ["main", "features/**", "release-**"]
7+ pull_request:
8+ branches: ["main", "features/**", "release-**"]
9+
10+permissions: {}
11+
12+concurrency:
13+ group: ${{ github.workflow }}-${{ github.ref }}
14+ cancel-in-progress: true
15+
16+env:
17+ CARGO_TERM_COLOR: always
18+ # Insta.rs is run directly via cargo test. We don't want insta.rs to create new snapshots files.
19+ # Just want it to run the tests (option `no` instead of `auto`).
20+ INSTA_UPDATE: no
21+
22+jobs:
23+ xtask:
24+ uses: ./.github/workflows/xtask.yml
25+
26+ test-matrix-sdk-features:
27+ name: 🐧 [m], ${{ matrix.name }}
28+ needs: xtask
29+
30+ runs-on: ubuntu-latest
31+ strategy:
32+ fail-fast: true
33+ matrix:
34+ name:
35+ - no-encryption
36+ - no-sqlite
37+ - no-encryption-and-sqlite
38+ - sqlite-cryptostore
39+ - experimental-encrypted-state-events
40+ - markdown
41+ - socks
42+ - sso-login
43+ - search
44+
45+ steps:
46+ - name: Checkout
47+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
48+ with:
49+ persist-credentials: false
50+
51+ - name: Install Rust
52+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
53+ with:
54+ toolchain: stable
55+
56+ - name: Install libsqlite
57+ run: |
58+ sudo apt-get update
59+ sudo apt-get install libsqlite3-dev
60+
61+ - name: Load cache
62+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
63+ with:
64+ # use a separate cache for each job to work around
65+ # https://github.com/Swatinem/rust-cache/issues/124
66+ key: "${{ matrix.name }}"
67+
68+ # ... but only save the cache on the main branch
69+ # cf https://github.com/Swatinem/rust-cache/issues/95
70+ save-if: ${{ github.ref == 'refs/heads/main' }}
71+
72+ - name: Install nextest
73+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1
74+ with:
75+ tool: nextest
76+
77+ - name: Get xtask
78+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
79+ with:
80+ path: target/debug/xtask
81+ key: "${{ needs.xtask.outputs.cachekey-linux }}"
82+ fail-on-cache-miss: true
83+
84+ - name: Test
85+ run: |
86+ target/debug/xtask ci test-features ${{ matrix.name }}
87+
88+ test-matrix-sdk-examples:
89+ name: 🐧 [m]-examples
90+ needs: xtask
91+ runs-on: ubuntu-latest
92+
93+ steps:
94+ - name: Checkout the repo
95+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
96+ with:
97+ persist-credentials: false
98+
99+ - name: Install Rust
100+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
101+ with:
102+ toolchain: stable
103+
104+ - name: Load cache
105+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
106+ with:
107+ save-if: ${{ github.ref == 'refs/heads/main' }}
108+
109+ - name: Install nextest
110+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1
111+ with:
112+ tool: nextest
113+
114+ - name: Get xtask
115+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
116+ with:
117+ path: target/debug/xtask
118+ key: "${{ needs.xtask.outputs.cachekey-linux }}"
119+ fail-on-cache-miss: true
120+
121+ - name: Test
122+ run: |
123+ target/debug/xtask ci examples
124+
125+ test-matrix-sdk-crypto:
126+ name: 🐧 [m]-crypto
127+ needs: xtask
128+ runs-on: ubuntu-latest
129+
130+ steps:
131+ - name: Checkout the repo
132+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
133+ with:
134+ persist-credentials: false
135+
136+ - name: Install libsqlite
137+ run: |
138+ sudo apt-get update
139+ sudo apt-get install libsqlite3-dev
140+
141+ - name: Install Rust
142+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
143+ with:
144+ toolchain: stable
145+ components: clippy
146+
147+ - name: Load cache
148+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
149+ with:
150+ save-if: ${{ github.ref == 'refs/heads/main' }}
151+
152+ - name: Install nextest
153+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1
154+ with:
155+ tool: nextest
156+
157+ - name: Get xtask
158+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
159+ with:
160+ path: target/debug/xtask
161+ key: "${{ needs.xtask.outputs.cachekey-linux }}"
162+ fail-on-cache-miss: true
163+
164+ - name: Test
165+ run: |
166+ target/debug/xtask ci test-crypto
167+
168+ test-all-crates:
169+ name: ${{ matrix.name }}
170+
171+ runs-on: ${{ matrix.os }}
172+ strategy:
173+ fail-fast: true
174+ matrix:
175+ include:
176+ - name: 🐧 all crates, 🦀 stable
177+ rust: stable
178+ os: ubuntu-latest
179+
180+ - name: 🐧 all crates, 🦀 beta
181+ rust: beta
182+ os: ubuntu-latest
183+
184+ - name: 🍏 all crates, 🦀 stable
185+ rust: stable
186+ os: macos-latest
187+
188+ steps:
189+ - name: Checkout
190+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
191+ with:
192+ persist-credentials: false
193+
194+ - name: Install protoc
195+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.1
196+ with:
197+ tool: protoc@3.20.3
198+
199+ - name: Install libsqlite
200+ if: runner.os == 'Linux'
201+ run: |
202+ sudo apt-get update
203+ sudo apt-get install libsqlite3-dev
204+
205+ - name: Install Rust toolchain
206+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
207+ with:
208+ toolchain: ${{ matrix.rust }}
209+
210+ - name: Load cache
211+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
212+ with:
213+ save-if: ${{ github.ref == 'refs/heads/main' }}
214+
215+ - name: Install nextest
216+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1
217+ with:
218+ tool: nextest
219+
220+ - name: Test
221+ run: |
222+ cargo nextest run --workspace \
223+ --exclude matrix-sdk-integration-testing --features testing
224+
225+ - name: Test documentation
226+ run: |
227+ cargo test --doc --features docsrs
228+
229+ test-wasm:
230+ name: 🕸️ ${{ matrix.name }}
231+ needs: xtask
232+
233+ runs-on: ubuntu-latest
234+
235+ strategy:
236+ fail-fast: true
237+ matrix:
238+ include:
239+ - name: '[m]-qrcode'
240+ cmd: matrix-sdk-qrcode
241+
242+ - name: '[m]-base'
243+ cmd: matrix-sdk-base
244+
245+ - name: '[m]-common'
246+ cmd: matrix-sdk-common
247+
248+ - name: '[m], no-default'
249+ cmd: matrix-sdk-no-default
250+
251+ - name: '[m]-ui'
252+ cmd: matrix-sdk-ui
253+ check_only: true
254+
255+ - name: '[m]-indexeddb'
256+ cmd: indexeddb
257+
258+ - name: '[m], indexeddb stores'
259+ cmd: matrix-sdk-indexeddb-stores
260+
261+ - name: '[m], indexeddb stores, no crypto'
262+ cmd: matrix-sdk-indexeddb-stores-no-crypto
263+
264+ steps:
265+ - name: Checkout the repo
266+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
267+ with:
268+ persist-credentials: false
269+
270+ - name: Install Rust
271+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
272+ with:
273+ toolchain: stable
274+ targets: wasm32-unknown-unknown
275+ components: clippy
276+
277+ - name: Install wasm-pack
278+ uses: qmaru/wasm-pack-action@785fe709cd17eb6a97607eda9b6f5dbebed2b89c # v0.5.3
279+ if: '!matrix.check_only'
280+ with:
281+ version: v0.13.1
282+
283+ - name: Load cache
284+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
285+ with:
286+ # use a separate cache for each job to work around
287+ # https://github.com/Swatinem/rust-cache/issues/124
288+ key: "${{ matrix.cmd }}"
289+
290+ # ... but only save the cache on the main branch
291+ # cf https://github.com/Swatinem/rust-cache/issues/95
292+ save-if: ${{ github.ref == 'refs/heads/main' }}
293+
294+ - name: Install nextest
295+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1
296+ with:
297+ tool: nextest
298+
299+ - name: Get xtask
300+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
301+ with:
302+ path: target/debug/xtask
303+ key: "${{ needs.xtask.outputs.cachekey-linux }}"
304+ fail-on-cache-miss: true
305+
306+ - name: Rust Check
307+ run: |
308+ target/debug/xtask ci wasm ${{ matrix.cmd }}
309+
310+ - name: Wasm-Pack test
311+ if: '!matrix.check_only'
312+ run: |
313+ target/debug/xtask ci wasm-pack ${{ matrix.cmd }}
314+
315+ typos:
316+ name: Spell Check with Typos
317+ runs-on: ubuntu-latest
318+
319+ steps:
320+ - name: Checkout Actions Repository
321+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
322+ with:
323+ persist-credentials: false
324+
325+ - name: Check the spelling of the files in our repo
326+ uses: crate-ci/typos@aca895bf05aec0cb7dffa6f94495e923224d9f17 # v1.46.2
327+
328+ lint:
329+ name: Lint
330+ needs: xtask
331+ runs-on: ubuntu-latest
332+
333+ steps:
334+ - name: Checkout the repo
335+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
336+ with:
337+ persist-credentials: false
338+
339+ - name: Install protoc
340+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.1
341+ with:
342+ tool: protoc@3.20.3
343+
344+ - name: Install Rust
345+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
346+ with:
347+ toolchain: nightly-2026-02-26
348+ components: clippy, rustfmt
349+
350+ - name: Load cache
351+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
352+ with:
353+ save-if: ${{ github.ref == 'refs/heads/main' }}
354+
355+ - name: Get xtask
356+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
357+ with:
358+ path: target/debug/xtask
359+ key: "${{ needs.xtask.outputs.cachekey-linux }}"
360+ fail-on-cache-miss: true
361+
362+ - name: Check Formatting
363+ run: |
364+ target/debug/xtask ci style
365+
366+ - name: Clippy
367+ run: |
368+ target/debug/xtask ci clippy
369+
370+ integration-tests:
371+ name: 'Integration test (features: ${{ matrix.feature }})'
372+ runs-on: ubuntu-latest
373+
374+ # run several docker containers with the same networking stack so the hostname 'synapse'
375+ # maps to the synapse container, etc.
376+ services:
377+ # tests need a synapse: this is a service and not michaelkaye/setup-matrix-synapse@main as the
378+ # latter does not provide networking for services to communicate with it.
379+ synapse:
380+ image: ghcr.io/matrix-org/synapse-service:v1.117.0 # keep in sync with ./coverage.yml
381+ env:
382+ SYNAPSE_COMPLEMENT_DATABASE: sqlite
383+ SERVER_NAME: synapse
384+ ports:
385+ - 8008:8008
386+
387+ strategy:
388+ fail-fast: true
389+ matrix:
390+ feature:
391+ - "default"
392+ - "experimental-encrypted-state-events"
393+
394+ steps:
395+ - name: Checkout the repo
396+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
397+ with:
398+ persist-credentials: false
399+
400+ - name: Install libsqlite
401+ run: |
402+ sudo apt-get update
403+ sudo apt-get install libsqlite3-dev
404+
405+ - name: Install Rust
406+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
407+ with:
408+ toolchain: stable
409+
410+ - name: Load cache
411+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
412+ with:
413+ save-if: ${{ github.ref == 'refs/heads/main' }}
414+
415+ - name: Install nextest
416+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1
417+ with:
418+ tool: nextest
419+
420+ - name: Test
421+ env:
422+ RUST_LOG: "info,matrix_sdk=trace"
423+ HOMESERVER_URL: "http://localhost:8008"
424+ HOMESERVER_DOMAIN: "synapse"
425+ run: |
426+ cargo nextest run --profile ci -p matrix-sdk-integration-testing --features "${{ matrix.feature }}"
427+
428+ - name: Upload test results to Codecov
429+ if: ${{ !cancelled() }}
430+ uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3
431+ with:
432+ files: ./target/nextest/ci/junit.xml
433+ token: ${{ secrets.CODECOV_TOKEN }}
Added file: .github/workflows/coverage.yml+168 additions
@@ -0,0 +1,168 @@
1+name: Code Coverage
2+
3+on:
4+ push:
5+ branches: ["main", "features/**"]
6+ pull_request:
7+ branches: ["main", "features/**"]
8+
9+permissions: {}
10+
11+concurrency:
12+ group: ${{ github.workflow }}-${{ github.ref }}
13+ cancel-in-progress: true
14+
15+env:
16+ CARGO_TERM_COLOR: always
17+ # without matrix_sdk=trace, expressions in `trace!` fields are not evaluated
18+ # when the `trace!` statement is hit, and thus not covered
19+ RUST_LOG: info,matrix_sdk=trace
20+
21+jobs:
22+ xtask:
23+ uses: ./.github/workflows/xtask.yml
24+
25+ code_coverage:
26+ name: Code Coverage
27+ needs: xtask
28+ runs-on: "ubuntu-latest"
29+ permissions:
30+ contents: read
31+ id-token: write
32+
33+ # run several docker containers with the same networking stack so the hostname 'synapse'
34+ # maps to the synapse container, etc.
35+ services:
36+ # tests need a synapse: this is a service and not michaelkaye/setup-matrix-synapse@main as the
37+ # latter does not provide networking for services to communicate with it.
38+ synapse:
39+ image: ghcr.io/matrix-org/synapse-service:v1.117.0 # keep in sync with ./ci.yml
40+ env:
41+ SYNAPSE_COMPLEMENT_DATABASE: sqlite
42+ SERVER_NAME: synapse
43+ ports:
44+ - 8008:8008
45+
46+ steps:
47+ # This CI workflow can run into space issue, so we're cleaning up some
48+ # space here.
49+ - name: Create some more space
50+ run: |
51+ echo "Disk space before cleanup"
52+ df -h
53+
54+ cd /opt
55+ find . -maxdepth 1 -mindepth 1 '!' -path ./containerd '!' -path ./actionarchivecache '!' -path ./runner '!' -path ./runner-cache -exec rm -rf '{}' ';'
56+ rm -rf /opt/hostedtoolcache
57+
58+ # Get rid of binaries and libs we're not interested in.
59+ sudo rm -rf \
60+ /usr/local/julia* \
61+ /usr/local/aws*
62+
63+ sudo rm -rf \
64+ /usr/local/bin/minikube \
65+ /usr/local/bin/node \
66+ /usr/local/bin/stack \
67+ /usr/local/bin/bicep \
68+ /usr/local/bin/pulumi* \
69+ /usr/local/bin/helm \
70+ /usr/local/bin/azcopy \
71+ /usr/local/bin/packer \
72+ /usr/local/bin/cmake-gui \
73+ /usr/local/bin/cpack
74+
75+ sudo rm -rf \
76+ /usr/local/share/powershell \
77+ /usr/local/share/chromium
78+
79+ sudo rm -rf /usr/local/lib/android
80+
81+ echo "::group::/usr/local/bin/*"
82+ du -hsc /usr/local/bin/* | sort -h
83+ echo "::endgroup::"
84+
85+ echo "::group::/usr/local/share/*"
86+ du -hsc /usr/local/share/* | sort -h
87+ echo "::endgroup::"
88+
89+ echo "::group::/usr/local/*"
90+ du -hsc /usr/local/* | sort -h
91+ echo "::endgroup::"
92+
93+ echo "::group::/usr/local/lib/*"
94+ du -hsc /usr/local/lib/* | sort -h
95+ echo "::endgroup::"
96+
97+ echo "::group::/opt/*"
98+ du -hsc /opt/* | sort -h
99+ echo "::endgroup::"
100+
101+ echo "Disk space after cleanup"
102+ df -h
103+
104+ - name: Checkout repository
105+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
106+ with:
107+ ref: ${{ github.event.pull_request.head.sha }}
108+ persist-credentials: false
109+
110+ - name: Install libsqlite
111+ run: |
112+ sudo apt-get update
113+ sudo apt-get install libsqlite3-dev
114+ sudo apt-get clean
115+ sudo rm -rf /var/lib/apt/lists/*
116+
117+ - name: Install Rust
118+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
119+ with:
120+ toolchain: stable
121+
122+ # Cargo config can screw with caching and is only used for alias config
123+ # and extra lints, which we don't care about here
124+ - name: Delete cargo config
125+ run: rm .cargo/config.toml
126+
127+ - name: Load cache
128+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
129+ with:
130+ prefix-key: "coverage"
131+ save-if: ${{ github.ref == 'refs/heads/main' }}
132+
133+ - name: Install nextest and llvm-cov
134+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1
135+ with:
136+ tool: nextest,cargo-llvm-cov
137+
138+ - name: Get xtask
139+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
140+ with:
141+ path: target/debug/xtask
142+ key: "${{ needs.xtask.outputs.cachekey-linux }}"
143+ fail-on-cache-miss: true
144+
145+ - name: Check total disk space before running
146+ run: |
147+ df -h
148+
149+ - name: Create the coverage report
150+ run: |
151+ target/debug/xtask ci coverage -o codecov
152+ env:
153+ CARGO_PROFILE_COV_INHERITS: 'dev'
154+ CARGO_PROFILE_COV_DEBUG: 1
155+ HOMESERVER_URL: "http://localhost:8008"
156+ HOMESERVER_DOMAIN: "synapse"
157+
158+ - name: Upload coverage to Codecov
159+ uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2
160+ with:
161+ use_oidc: true
162+
163+ - name: Upload test results to Codecov
164+ if: ${{ !cancelled() }}
165+ uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2
166+ with:
167+ use_oidc: true
168+ report_type: "test_results"
Added file: .github/workflows/deny.yml+19 additions
@@ -0,0 +1,19 @@
1+name: Lint dependencies (for licences, allowed sources, banned dependencies, vulnerabilities)
2+on:
3+ pull_request:
4+ paths:
5+ - '**/Cargo.toml'
6+ workflow_dispatch:
7+ schedule:
8+ - cron: '0 0 * * *'
9+
10+permissions: {}
11+
12+jobs:
13+ cargo-deny:
14+ runs-on: ubuntu-latest
15+ steps:
16+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
17+ with:
18+ persist-credentials: false
19+ - uses: EmbarkStudios/cargo-deny-action@6c8f9facfa5047ec02d8485b6bf52b587b7777d1 # v2.0.18
Added file: .github/workflows/detect-long-path.yml+39 additions
@@ -0,0 +1,39 @@
1+# Check if the path of changed file is longer than 260 characters
2+# that windows filesystem allows
3+
4+name: Detect long path among changed files
5+
6+on:
7+ workflow_dispatch:
8+ pull_request: # focus on the changed files in current PR
9+ branches: ["main", "features/**", "release-**"]
10+
11+permissions: {}
12+
13+concurrency:
14+ group: ${{ github.workflow }}-${{ github.ref }}
15+ cancel-in-progress: true
16+
17+jobs:
18+ long-path:
19+ runs-on: ubuntu-latest
20+
21+ steps:
22+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
23+ with:
24+ persist-credentials: false
25+ - name: Check for changed files
26+ id: changed-files
27+ uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96 # v47.0.6
28+ - name: Detect long path
29+ env:
30+ ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} # ignore the deleted files
31+ MAX_LENGTH: 120 # set max length to 120, considering the base path of app project that uses matrix-sdk
32+ run: |
33+ for file in ${ALL_CHANGED_FILES}; do
34+ if [ ${#file} -gt $MAX_LENGTH ]; then
35+ echo "File path is too long. Length: ${#file}, Path: $file"
36+ exit 1
37+ fi
38+ done
39+ exit 0
Added file: .github/workflows/detect-unused-dependencies.yml+16 additions
@@ -0,0 +1,16 @@
1+name: Detects unused dependencies
2+on:
3+ pull_request: { branches: "*" }
4+
5+permissions: {}
6+
7+jobs:
8+ build:
9+ runs-on: ubuntu-latest
10+ steps:
11+ - name: Checkout
12+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
13+ with:
14+ persist-credentials: false
15+ - name: Machete
16+ uses: bnjbvr/cargo-machete@ac30a525c0a8d163a92d727b3ff079ee3f6ecb08
Added file: .github/workflows/documentation.yml+64 additions
@@ -0,0 +1,64 @@
1+name: Documentation
2+
3+on:
4+ push:
5+ branches: [main]
6+ pull_request:
7+
8+concurrency:
9+ group: ${{ github.workflow }}-${{ github.ref }}
10+ cancel-in-progress: true
11+
12+permissions:
13+ contents: read
14+ pages: write
15+ id-token: write
16+
17+jobs:
18+ docs:
19+ name: All crates
20+ runs-on: ubuntu-latest
21+
22+ steps:
23+ - name: Checkout repository
24+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
25+ with:
26+ persist-credentials: false
27+
28+ - name: Install protoc
29+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.1
30+ with:
31+ tool: protoc@3.20.3
32+
33+ - name: Install Rust
34+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
35+ with:
36+ toolchain: nightly-2026-02-26
37+
38+ - name: Install Node.js
39+ uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
40+ with:
41+ node-version: 20
42+
43+ - name: Load cache
44+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
45+ with:
46+ save-if: ${{ github.ref == 'refs/heads/main' }}
47+
48+ # Keep in sync with xtask docs
49+ - name: Build documentation
50+ env:
51+ RUSTDOCFLAGS: "--enable-index-page -Zunstable-options --cfg docsrs -Dwarnings"
52+ run:
53+ cargo doc --no-deps --workspace --features docsrs --exclude=xtask
54+
55+ - name: Upload artifact
56+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
57+ uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
58+ with:
59+ path: './target/doc/'
60+
61+ - name: Deploy to GitHub Pages
62+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
63+ id: deployment
64+ uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0
Added file: .github/workflows/fixup-block.yml+16 additions
@@ -0,0 +1,16 @@
1+name: Git Checks
2+
3+on: [pull_request]
4+
5+permissions: {}
6+
7+jobs:
8+ block-fixup:
9+ runs-on: ubuntu-latest
10+
11+ steps:
12+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
13+ with:
14+ persist-credentials: false
15+ - name: Block Fixup Commit Merge
16+ uses: 13rac1/block-fixup-merge-action@bd5504fb9ca0253e109d98eb86b7debc01970cdc # v2.0.0
Added file: .github/workflows/msrv.yaml+22 additions
@@ -0,0 +1,22 @@
1+name: Rust version
2+
3+on:
4+ workflow_dispatch:
5+ push:
6+ branches: ["main", "features/**", "release-**"]
7+ pull_request:
8+ branches: ["main", "features/**", "release-**"]
9+
10+permissions: {}
11+
12+jobs:
13+ msrv:
14+ runs-on: ubuntu-latest
15+ steps:
16+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
17+ with:
18+ persist-credentials: false
19+ - uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # cargo-hack
20+ with:
21+ tool: cargo-hack
22+ - run: cargo hack check --rust-version --workspace --all-targets
Added file: .github/workflows/xtask.yml+82 additions
@@ -0,0 +1,82 @@
1+# A reusable github actions workflow that will build xtask, if it is not
2+# already cached.
3+#
4+# It will create a pair of GHA cache entries, if they do not already exist.
5+# The cache keys take the form `xtask-{os}-{hash}`, where "{os}" is "linux"
6+# or "macos", and "{hash}" is the hash of the xtask# directory.
7+#
8+# The cache keys are written to output variables named "cachekey-{os}".
9+#
10+
11+name: Build xtask if necessary
12+
13+on:
14+ workflow_call:
15+ outputs:
16+ cachekey-linux:
17+ description: "The cache key for the linux build artifact"
18+ value: "${{ jobs.xtask.outputs.cachekey-linux }}"
19+ cachekey-macos:
20+ description: "The cache key for the macos build artifact"
21+ value: "${{ jobs.xtask.outputs.cachekey-macos }}"
22+
23+permissions: {}
24+
25+env:
26+ CARGO_TERM_COLOR: always
27+
28+jobs:
29+ xtask:
30+ name: "xtask-${{ matrix.os-name }}"
31+
32+ strategy:
33+ fail-fast: true
34+ matrix:
35+ include:
36+ - os: ubuntu-latest
37+ os-name: 🐧
38+ cachekey-id: linux
39+
40+ - os: macos-15
41+ os-name: 🍏
42+ cachekey-id: macos
43+
44+ runs-on: "${{ matrix.os }}"
45+
46+ steps:
47+ - name: Checkout repo
48+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
49+ with:
50+ persist-credentials: false
51+
52+ - name: Calculate cache key
53+ id: cachekey
54+ # set a step output variable "cachekey-{os}" that can be referenced in
55+ # the job outputs below.
56+ run: |
57+ echo "cachekey-${{ matrix.cachekey-id }}=xtask-${{ matrix.cachekey-id }}-${{ hashFiles('Cargo.toml', 'xtask/**') }}" >> $GITHUB_OUTPUT
58+
59+ - name: Check xtask cache
60+ uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
61+ id: xtask-cache
62+ with:
63+ path: target/debug/xtask
64+ # use the cache key calculated in the step above. Bit of an awkward
65+ # syntax
66+ key: |
67+ ${{ steps.cachekey.outputs[format('cachekey-{0}', matrix.cachekey-id)] }}
68+
69+ - name: Install Rust stable toolchain
70+ if: steps.xtask-cache.outputs.cache-hit != 'true'
71+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
72+ with:
73+ toolchain: stable
74+
75+ - name: Build
76+ if: steps.xtask-cache.outputs.cache-hit != 'true'
77+ run: |
78+ cargo build -p xtask
79+
80+ outputs:
81+ "cachekey-linux": "${{ steps.cachekey.outputs.cachekey-linux }}"
82+ "cachekey-macos": "${{ steps.cachekey.outputs.cachekey-macos }}"
Added file: .github/workflows/zizmor.yml+24 additions
@@ -0,0 +1,24 @@
1+name: Lint GHA workflows with zizmor
2+
3+on:
4+ push:
5+ branches: ["main"]
6+ pull_request:
7+ branches: ["**"]
8+
9+permissions: {}
10+
11+jobs:
12+ zizmor:
13+ name: Run zizmor
14+ runs-on: ubuntu-latest
15+ permissions:
16+ security-events: write # Required for upload-sarif (used by zizmor-action) to upload SARIF files.
17+ steps:
18+ - name: Checkout repository
19+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
20+ with:
21+ persist-credentials: false
22+
23+ - name: Run zizmor
24+ uses: zizmorcore/zizmor-action@5f14fd08f7cf1cb1609c1e344975f152c7ee938d # v0.5.6
Added file: .gitignore+24 additions
@@ -0,0 +1,24 @@
1+target
2+generated
3+master.zip
4+emsdk-*
5+.idea/
6+.env
7+.envrc
8+.build
9+.swiftpm
10+/Package.swift
11+# code coverage report
12+cobertura.xml
13+
14+## User settings
15+xcuserdata/
16+.vscode/
17+
18+## OS garbage
19+.DS_Store
20+
21+## Kotlin bindings generated files
22+bindings/kotlin/.gradle/
23+bindings/kotlin/buildSrc/build/
24+bindings/kotlin/buildSrc/.gradle/
Added file: .rumdl.toml+91 additions
@@ -0,0 +1,91 @@
1+[global]
2+# Use the GitHub Markdown flavour, https://github.com/rvben/rumdl/blob/main/docs/flavors/gfm.md.
3+flavor = "gfm"
4+disable = [
5+ # `commands-show-output`, https://github.com/rvben/rumdl/blob/main/docs/md014.md.
6+ # Not necessary to show the shell commands output every time.
7+ "MD014",
8+
9+ # `first-line-heading`, https://github.com/rvben/rumdl/blob/main/docs/md041.md.
10+ # Some documents are fragments, the first heading is defined somewhere else.
11+ "MD041",
12+]
13+
14+# `heading-style`, https://github.com/rvben/rumdl/blob/main/docs/md003.md.
15+[MD003]
16+style = "atx"
17+
18+# `ul-style`, https://github.com/rvben/rumdl/blob/main/docs/md004.md.
19+[MD004]
20+style = "dash"
21+
22+# `line-length`, https://github.com/rvben/rumdl/blob/main/docs/md013.md.
23+[MD013]
24+line-length = 80
25+code-blocks = false
26+reflow = true
27+
28+# `no-trailing-punctuation`, https://github.com/rvben/rumdl/blob/main/docs/md026.md.
29+[MD026]
30+punctuation = ".,;:"
31+
32+# `ol-prefix`, https://github.com/rvben/rumdl/blob/main/docs/md029.md.
33+[MD029]
34+style = "ordered"
35+
36+# `no-inline-html`, https://github.com/rvben/rumdl/blob/main/docs/md033.md.
37+[MD033]
38+allowed-elements = [
39+ "i",
40+ "q",
41+ "cite",
42+ "a",
43+ "time",
44+ "sub",
45+ "sup",
46+ "figure", "figcaption",
47+ "table",
48+ "summary", "details",
49+ "math", "mo", "mn", "mi", "semantics", "annotation",
50+]
51+disallowed-elements = ["gfm"]
52+fix = true
53+fix-mode = "relaxed"
54+
55+# `code-block-style`, https://github.com/rvben/rumdl/blob/main/docs/md046.md.
56+[MD046]
57+style = "fenced"
58+
59+# `code-fence-style`, https://github.com/rvben/rumdl/blob/main/docs/md048.md.
60+[MD048]
61+style = "backtick"
62+
63+# `emphasis-style`, https://github.com/rvben/rumdl/blob/main/docs/md049.md.
64+[MD049]
65+style = "underscore"
66+
67+# `strong-style`, https://github.com/rvben/rumdl/blob/main/docs/md050.md.
68+[MD050]
69+style = "asterisk"
70+
71+# `link-image-style`, https://github.com/rvben/rumdl/blob/main/docs/md054.md.
72+[MD054]
73+autolink = false
74+collapsed = false
75+preferred-style = "full"
76+
77+# `table-format`, https://github.com/rvben/rumdl/blob/main/docs/md060.md.
78+[MD060]
79+enabled = true
80+
81+# `heading-capitalization`, https://github.com/rvben/rumdl/blob/main/docs/md063.md.
82+[MD063]
83+enabled = true
84+style = "sentence-case"
85+max-level = 3
86+ignore-words = ["Matrix", "Rust", "Swift", "Android", "Java"]
87+
88+# `list-item-spacing`, https://github.com/rvben/rumdl/blob/main/docs/md076.md.
89+[MD076]
90+style = "tight"
91+allow-loose-continuation = true
Added file: .rustfmt.toml+10 additions
@@ -0,0 +1,10 @@
1+max_width = 100
2+comment_width = 80
3+wrap_comments = true
4+imports_granularity = "Crate"
5+use_small_heuristics = "Max"
6+group_imports = "StdExternalCrate"
7+format_code_in_doc_comments = true
8+doc_comment_code_block_width = 80
9+# Workaround for https://github.com/rust-lang/rust.vim/issues/464
10+edition = "2024"
Added file: .typos.toml+44 additions
@@ -0,0 +1,44 @@
1+[default]
2+extend-ignore-re = [
3+ # base 58 strings with spaces every four chars.
4+ # this would also match regular sentence parts with eight or more words of
5+ # exactly four characters in row, but that doesn't really happen.
6+ "[1-9A-Za-z]{4}( [1-9A-Za-z]{4}){7,}",
7+ # some heuristics for base64 strings with no false matches found at the
8+ # time of writing.
9+ "[A-Za-z0-9+=]{72,}",
10+ "([A-Za-z0-9+=]|\\\\\\s\\*){72,}",
11+ "[0-9+][A-Za-z0-9+]{30,}[a-z0-9+]",
12+ "\\$[A-Z0-9+][A-Za-z0-9+]{6,}[a-z0-9+]",
13+ "\\b[a-z0-9+/=][A-Za-z0-9+/=]{7,}[a-z0-9+/=][A-Z]\\b",
14+]
15+
16+[default.extend-identifiers]
17+WeeChat = "WeeChat"
18+
19+[default.extend-words]
20+# all of these are valid words, but should never appear in this repo
21+bellow = "below"
22+stat = "state"
23+sing = "sign"
24+singed = "signed"
25+singing = "signing"
26+# crate name
27+ratatui = "ratatui"
28+# path name
29+consts = "consts"
30+# base64 false positives
31+Nd = "Nd"
32+Abl = "Abl"
33+Som = "Som"
34+Ba = "Ba"
35+Yur = "Yur" # as found in crates/matrix-sdk-indexeddb/src/crypto_store/migrations/mod.rs
36+TYE = "TYE" # as found in testing/matrix-sdk-test/src/test_json/keys_query_sets.rs
37+
38+[files]
39+extend-exclude = [
40+ # Our json files contain a bunch of base64 encoded ed25519 keys.
41+ "*.json",
42+ # Fuzzy match patterns that can be understood as typos confusingly.
43+ "crates/matrix-sdk-ui/tests/integration/room_list_service.rs",
44+]
Added file: .zizmor.yml+3 additions
@@ -0,0 +1,3 @@
1+rules:
2+ unpinned-uses:
3+ severity: high
Added file: ARCHITECTURE.md+128 additions
@@ -0,0 +1,128 @@
1+# Architecture
2+
3+The SDK is split into multiple layers:
4+
5+```text
6+ WASM (external crate matrix-rust-sdk-crypto-wasm)
7+ /
8+ / uniffi
9+ / /
10+ / bindings (matrix-sdk-ffi)
11+ crypto |
12+bindings |
13+ | |
14+ | UI (matrix-sdk-ui)
15+ | \
16+ | \
17+ | main (matrix-sdk)
18+ | / /
19+crypto /
20+ \ /
21+ store (matrix-sdk-base, + all the store impls)
22+ |
23+ common (matrix-sdk-common)
24+```
25+
26+Where the store implementations are `matrix-sdk-sqlite` and
27+`matrix-sdk-indexeddb` as well as `MemoryStore` which is defined in
28+`matrix-sdk-base`.
29+
30+## `crates/matrix-sdk`
31+
32+This is the main crate, and one that is expected to be used by most consumers.
33+Notable data types include:
34+
35+- the `Client`, which can run room-independent requests: logging in/out,
36+ creating rooms, running sync, etc.
37+- the `Room`, which represents a room and its state (notably via the observable
38+ `RoomInfo`), and allows running queries that are room-specific, notably
39+ sending events.
40+
41+## `crates/matrix-sdk-base`
42+
43+A _sans I/O_ crate to represent the base data types persisted in the SDK. No
44+network or storage I/O happens in this crate, although it defines traits
45+(`StateStore` and `EventCacheStore`) representing storage backends, as well as
46+dummy in-memory implementations of these traits.
47+
48+## `crates/matrix-sdk-common`
49+
50+Common helpers used by most of the other crates; almost a leaf in the dependency
51+tree of our own crates (the only crate it's using is test helpers).
52+
53+## `crates/matrix-sdk-crypto`
54+
55+A _sans I/O_ implementation of a state machine that handles end-to-end
56+encryption for Matrix clients. It defines a `CryptoStore` trait representing
57+storage backends that will perform the actual storage I/O later, as well as a
58+dummy in-memory implementation of this trait.
59+
60+## `crates/matrix-sdk-indexeddb`
61+
62+Implementations of `EventCacheStore`, `StateStore` and `CryptoStore` for a
63+indexeddb backend (for use in Web browsers, via WebAssembly).
64+
65+## `crates/matrix-sdk-qrcode`
66+
67+Implementation of QR codes for interactive verifications, used in the crypto
68+crate.
69+
70+## `crates/matrix-sdk-sqlite`
71+
72+Implementations of `EventCacheStore`, `StateStore` and `CryptoStore` for a
73+SQLite backend.
74+
75+## `crates/matrix-sdk-store-encryption`
76+
77+Low-level primitives for encrypting/decrypting/hashing values. Store
78+implementations that implement encryption at rest can use those primitives.
79+
80+## `crates/matrix-sdk-ui`
81+
82+Very high-level primitives implementing the best practices and cutting-edge
83+Matrix tech:
84+
85+- `EncryptionSyncService`: a specialized service running simplified sliding sync
86+ (MSC4186) for everything related to crypto and E2EE for the current `Client`.
87+- `RoomListService`: a specialized service running simplified sliding sync
88+ (MSC4186) for retrieving the list of current rooms, and exposing its entries.
89+- `SyncService`: a wrapper for the two previous services, coordinating their
90+ running and shutting down.
91+- `Timeline`: a high-level view for a `Room`'s timeline of events, grouping
92+ related events (aggregations) into single timeline items.
93+
94+## `bindings/matrix-sdk-crypto-ffi/`
95+
96+FFI bindings for the crypto crate, used in a Web browser context via
97+WebAssembly. These use `wasm-bindgen` to generate the bindings. These bindings
98+are used in Element Web and the legacy Element apps, as of 2024-11-07.
99+
100+## `bindings/matrix-sdk-ffi/`
101+
102+FFI bindings for important concepts in `matrix-sdk-ui` and `matrix-sdk`,
103+generated with [UniFFI](https://github.com/mozilla/uniffi-rs) and to be used
104+from other languages like Swift/Go/Kotlin. These bindings are used in the
105+ElementX apps, as of 2024-11-07.
106+
107+## `bindings/matrix-sdk-ffi-macros/`
108+
109+Macros used in `bindings/matrix-sdk-ffi`.
110+
111+## `testing/matrix-sdk-test/`
112+
113+Common test helpers, used by all the other crates.
114+
115+## `testing/matrix-sdk-test-macros/`
116+
117+Implementation of the `#[async_test]` test macro.
118+
119+## `testing/matrix-sdk-integration-testing/`
120+
121+Fully-fledged integration tests that require spawning a Synapse instance to run.
122+A docker-compose setup is provided to ease running the tests, and it is
123+compatible for running with Podman too.
124+
125+## Inspiration
126+
127+This document has been inspired by the reading of this
128+[blog post](https://matklad.github.io/2021/02/06/ARCHITECTURE.md.html).
Added file: CONTRIBUTING.md+412 additions
@@ -0,0 +1,412 @@
1+# Contributing to `matrix-rust-sdk`
2+
3+## Chat rooms
4+
5+In addition to our [main Matrix room], we have a development room at
6+[#matrix-rust-sdk-dev:flipdot.org]. Please use it to discuss potential changes,
7+the overall direction of development and related topics.
8+
9+[main Matrix room]: https://matrix.to/#/#matrix-rust-sdk:matrix.org
10+[#matrix-rust-sdk-dev:flipdot.org]: https://matrix.to/#/#matrix-rust-sdk-dev:flipdot.org
11+
12+## Testing
13+
14+You can run most of the tests that also happen in CI also using
15+`cargo xtask ci`. This needs a few dependencies to be installed, as it also runs
16+automatic WASM tests:
17+
18+```bash
19+rustup component add clippy
20+cargo install cargo-nextest typos-cli wasm-pack
21+```
22+
23+If you want to execute only one part of CI, there are a few sub-commands (see
24+`cargo xtask ci --help`).
25+
26+Some tests are not automatically run in `cargo xtask ci`, for example the
27+integration tests that need a running synapse instance. These tests reside in
28+`./testing/matrix-sdk-integration-testing`. See its
29+[README](./testing/matrix-sdk-integration-testing/README.md) to easily set up a
30+synapse for testing purposes.
31+
32+### Snapshot testing
33+
34+You can add/review snapshot tests using [insta.rs](https://insta.rs)
35+
36+Every new struct/enum that derives `Serialize` `Deserialise` should have a
37+snapshot test for it. Any code change that breaks serialisation will then break
38+a test, the author will then have to decide how to handle migration and test it
39+if needed.
40+
41+And for an improved review experience it's recommended (but not necessary) to
42+install the `cargo-insta` tool:
43+
44+Unix:
45+
46+```shell
47+curl -LsSf https://insta.rs/install.sh | sh
48+```
49+
50+Windows:
51+
52+```shell
53+powershell -c "irm https://insta.rs/install.ps1 | iex"
54+```
55+
56+Usual flow is to first run the test, then review them.
57+
58+```shell
59+cargo insta test
60+cargo insta review
61+```
62+
63+### Intermittent failure policy
64+
65+While we strive to add test coverage for as many features as we can, it
66+sometimes happens that the tests will be intermittently failing in CI (such
67+tests are sometimes called "flaky"). This can be caused by race conditions
68+of all sorts, either in the test code itself, but sometimes in the underlying
69+feature being tested too, and as such, it requires some investigation, usually
70+from the original author of the test.
71+
72+Whenever such an intermittent failure happens, we try to open an issue to track
73+the failures, adding the
74+[`intermittent-failure`](https://github.com/matrix-org/matrix-rust-sdk/issues?q=is%3Aissue%20state%3Aopen%20label%3Aintermittent-failure)
75+label to it, and commenting with links to CI runs where the failure happened.
76+
77+If a test has been intermittently failing for **two weeks** or more, and no one
78+is actively working on fixing it, then we might decide to mark the test as
79+`ignored` until it is fixed, to not cause unrelated failures in other
80+contributors' pull requests and pushes.
81+
82+## Pull requests
83+
84+Ideally, a PR should have a _proper title_, with _atomic logical commits_, and
85+each commit should have a _good commit message_.
86+
87+A _proper PR title_ would be a one-liner summary of the changes in the PR,
88+following the same guidelines of a good commit message, including the
89+area/feature prefix. Something like `FFI: Allow logs files to be pruned.` would
90+be a good PR title.
91+
92+(An additional bad example of a bad PR title would be `mynickname/branch name`,
93+that is, just the branch name.)
94+
95+## Writing changelog entries
96+
97+We use towncrier to generate changelogs from individual fragment files. Each
98+change must be documented as a changelog fragment in the appropriate crate:
99+
100+```text
101+/crates/<crate-name>/changelog.d/
102+```
103+
104+Each changelog fragment must include **both the pull request number and the
105+fragment type** in its filename:
106+
107+```text
108+<PR number>.<fragment type>.md
109+```
110+
111+For example:
112+
113+```text
114+4357.added.md
115+4357.fixed.md
116+4357.changed.md
117+```
118+
119+The pull request link is automatically added during changelog generation, so it
120+must not be included manually.
121+
122+We use standard towncrier fragment types to categorize changes. Common types
123+include:
124+
125+- `added` – new features or functionality
126+- `changed` – changes in existing behavior
127+- `fixed` – bug fixes
128+- `removed` – removed features or APIs
129+- `security` – security-related fixes
130+- `internal` – changes that do not affect users (refactoring, CI, tooling)
131+
132+Choose the type that best matches the nature of the change.
133+
134+A well-written changelog entry should be understandable even to those who may
135+not be deeply familiar with the project. Provide enough context to ensure
136+clarity and ease of understanding.
137+
138+A couple of examples of bad changelog entry would look like:
139+
140+```markdown
141+- Fixed a panic.
142+```
143+
144+```markdown
145+Added the Bar function to Foo.
146+```
147+
148+A good example of a changelog entry could look like the following:
149+
150+```markdown
151+Use the inviter's server name and the server name from the room alias as
152+fallback values for the via parameter when requesting the room summary from the
153+homeserver. This ensures requests succeed even when the room being previewed is
154+hosted on a federated server.
155+```
156+
157+For security-related changelog entries, please include the following additional
158+details alongside the pull request number:
159+
160+- Impact: Clearly describe the issue's potential impact on users or systems.
161+- CVE Number: If available, include the CVE (Common Vulnerabilities and
162+ Exposures) identifier.
163+- GitHub Advisory Link: Provide a link to the corresponding GitHub security
164+ advisory for further context.
165+
166+```markdown
167+Use a constant-time Base64 encoder for secret key material to mitigate
168+side-channel attacks leaking secret key material
169+[CVE-2024-40640](https://www.cve.org/CVERecord?id=CVE-2024-40640),
170+[GHSA-j8cm-g7r6-hfpq](https://github.com/matrix-org/vodozemac/security/advisories/GHSA-j8cm-g7r6-hfpq)).
171+```
172+
173+## Commit message format
174+
175+Commit messages should be formatted as Conventional Commits. In addition, some
176+git trailers are supported and have special meaning (see below).
177+
178+### Conventional commits
179+
180+Conventional Commits are structured as follows:
181+
182+```text
183+<type>(<scope>): <short summary>
184+```
185+
186+The type of changes which will be included in changelogs is one of the
187+following:
188+
189+- `feat`: A new feature
190+- `fix`: A bugfix
191+- `doc`: Documentation changes
192+- `refactor`: Code refactoring
193+- `perf`: Performance improvements
194+- `ci`: Changes to CI configuration files and scripts
195+
196+The scope is optional and can specify the area of the codebase affected (e.g.,
197+olm, cipher).
198+
199+### Security fixes
200+
201+Commits addressing security vulnerabilities must include specific trailers for
202+vulnerability metadata, which should also be reflected in the corresponding
203+changelog entry.
204+
205+The metadata must be included in the following git-trailers:
206+
207+- `Security-Impact`: The magnitude of harm that can be expected, i.e.
208+ low/moderate/high/critical.
209+- `CVE`: The CVE that was assigned to this issue.
210+- `GitHub-Advisory`: The GitHub advisory identifier.
211+
212+Please include all the fields that are available.
213+
214+Example:
215+
216+```text
217+fix(crypto): Use a constant-time Base64 encoder for secret key material
218+
219+This patch fixes a security issue around a side-channel vulnerability[1]
220+when decoding secret key material using Base64.
221+
222+In some circumstances an attacker can obtain information about secret
223+secret key material via a controlled-channel and side-channel attack.
224+
225+This patch avoids the side-channel by switching to the base64ct crate
226+for the encoding, and more importantly, the decoding of secret key
227+material.
228+
229+Security-Impact: Low
230+CVE: CVE-2024-40640
231+GitHub-Advisory: GHSA-j8cm-g7r6-hfpq
232+```
233+
234+## Review process
235+
236+To streamline the review process and make it easier for maintainers to review
237+your contributions, follow these basic rules:
238+
239+1. Do not force push after a review has started. This helps maintainers track
240+ incremental changes without confusion and makes it easier to follow the
241+ evolution of the code.
242+
243+2. Do not mix moves and refactoring with functional changes. Keep these in
244+ separate commits for clarity. This ensures that the purpose of each commit is
245+ clear and easy to review.
246+
247+3. Each commit must compile. If commits don’t compile, git bisect becomes
248+ unusable, which hampers the debugging process and makes it harder to identify
249+ the source of issues.
250+
251+4. Commits should only introduce test failures if they are proving that a bug
252+ exists. New features should never introduce test failures. Test failures
253+ should only be used to demonstrate existing bugs, not as part of adding new
254+ functionality.
255+
256+5. Keep PRs on topic and small. Large PRs are harder to review and more prone to
257+ delays. Create small, focused commits that address a single topic. Use a
258+ combination of [git add] -p or [git checkout] -p to split changes into
259+ logical units. This makes your work easier to review and reduces the chance
260+ of introducing unrelated changes.
261+
262+[git add]: https://git-scm.com/docs/git-add#Documentation/git-add.txt---patch
263+[git checkout]: https://git-scm.com/docs/git-checkout#Documentation/git-checkout.txt---patch
264+
265+### Addressing review comments using fixup commits
266+
267+So you posted a PR and the maintainers aren't quite happy with it. Here are some
268+guidelines to make the maintainers life easier and increase the chances that
269+your PR will be reviewed swiftly.
270+
271+1. Use [fixup] commits. When addressing reviewer feedback, you can create fixup
272+ commits. These commits mark your changes as corrections of specific previous
273+ commits in the PR.
274+
275+Example:
276+
277+```shell
278+git commit --fixup=<commit-hash>
279+```
280+
281+This command creates a new commit that refers to an existing one, making it
282+easier to rebase and squash later while showing reviewers the history of fixes.
283+For extra points, link to the fixup commit in the thread where the change was
284+requested.
285+
286+2. After all requested changes were addressed, feel free to re-request a review.
287+ People might not notice that all changes were addressed.
288+
289+3. Once the PR has been approved, rebase your PR to squash all the fixup
290+ commits, the [autosquash] option can help with this.
291+
292+```shell
293+git rebase main --interactive --autosquash
294+```
295+
296+[fixup]: https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupamendrewordltcommitgt
297+[autosquash]: https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt---autosquash
298+
299+## Sign off
300+
301+In order to have a concrete record that your contribution is intentional
302+and you agree to license it under the same terms as the project's
303+license, we've adopted the same lightweight approach that the [Linux
304+Kernel](https://www.kernel.org/doc/Documentation/SubmittingPatches),
305+[Docker](https://github.com/docker/docker/blob/master/CONTRIBUTING.md),
306+and many other projects use: the DCO ([Developer Certificate of
307+Origin](http://developercertificate.org/)). This is a simple declaration that
308+you wrote the contribution or otherwise have the right to contribute it to
309+Matrix:
310+
311+```text
312+Developer Certificate of Origin
313+Version 1.1
314+
315+Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
316+660 York Street, Suite 102,
317+San Francisco, CA 94110 USA
318+
319+Everyone is permitted to copy and distribute verbatim copies of this
320+license document, but changing it is not allowed.
321+
322+Developer's Certificate of Origin 1.1
323+
324+By making a contribution to this project, I certify that:
325+
326+(a) The contribution was created in whole or in part by me and I
327+ have the right to submit it under the open source license
328+ indicated in the file; or
329+
330+(b) The contribution is based upon previous work that, to the best
331+ of my knowledge, is covered under an appropriate open source
332+ license and I have the right under that license to submit that
333+ work with modifications, whether created in whole or in part
334+ by me, under the same open source license (unless I am
335+ permitted to submit under a different license), as indicated
336+ in the file; or
337+
338+(c) The contribution was provided directly to me by some other
339+ person who certified (a), (b) or (c) and I have not modified
340+ it.
341+
342+(d) I understand and agree that this project and the contribution
343+ are public and that a record of the contribution (including all
344+ personal information I submit with it, including my sign-off) is
345+ maintained indefinitely and may be redistributed consistent with
346+ this project or the open source license(s) involved.
347+```
348+
349+If you agree to this for your contribution, then all that's needed is to
350+include the line in your commit or pull request comment:
351+
352+```text
353+Signed-off-by: Your Name <your@email.example.org>
354+```
355+
356+Git allows you to add this signoff automatically when using the `-s` flag to
357+`git commit`, which uses the name and email set in your `user.name` and
358+`user.email` git configs.
359+
360+If you forgot to sign off your commits before making your pull request and are
361+on Git 2.17+ you can mass signoff using rebase:
362+
363+```text
364+git rebase --signoff origin/main
365+```
366+
367+## AI policy
368+
369+This policy is a copy of the [Forgejo's AI agreement][Forgejo].
370+
371+### Terminology
372+
373+This does not necessarily reflect the official or commonly used terminology.
374+
375+Software and services that heavily rely on large language model technology to
376+generate their outcomes are referred to as _Artificial Intelligence_ (AI).
377+Examples of products that fit this definition: GitHub Copilot, ChatGPT, Claude
378+Sonnet, DeepSeek, Llama and Gemini.
379+
380+There is a distinction between _general_ and _narrow_ AI, all the aforementioned
381+examples fall under general AI as they were not trained to execute a specific
382+well-defined task. Narrow AI is trained to be used for specific well-defined
383+tasks where the problem space is known in advance.
384+
385+_Vibe coding_ is the practice where AI creates a code change (feature, bugfix,
386+tests, refactor) with a human that describes what needs to be implemented.
387+
388+_AI agents_ are AIs that are configured to perform interactions or make changes
389+with little to no human supervision.
390+
391+### Agreement
392+
393+1. If content was made with the help of AI, you **must** convey that this is
394+ the case. This includes content that you authored but was motivated by a
395+ suggestion of AI.
396+2. If at any point you used AI's work in your contribution you should make
397+ an effort to **verify** that you can submit this under the license of the
398+ repository.
399+3. The **accountability** of using AI in a contribution lies with the person
400+ that makes that contribution.
401+4. All communication, that includes: commit messages, pull request messages,
402+ documentation, code comments and issues (and comments on issues/pull
403+ requests), that is intended to be read by people to understand your thoughts
404+ and work **must not** have been generated with AI. We exclude machine
405+ translation and tooling that helps with grammar and spelling check.
406+5. Using general AI for review is **forbidden**. If the change contains changes
407+ to the user experience it has to be approved by a human reviewer.
408+6. It is **not allowed** to use AI in an autonomous-looking way to contribute to
409+ the Matrix Rust SDK. This also applies when someone engages in _vibe coding_
410+ or uses so-called _agent mode_.
411+
412+[Forgejo]: https://codeberg.org/forgejo/governance/src/branch/main/AIAgreement.md
Added file: Cargo.lock+7790 additions
@@ -0,0 +1,8266 @@
1+# This file is automatically @generated by Cargo.
2+# It is not intended for manual editing.
3+version = 4
4+
5+[[package]]
6+name = "accessory"
7+version = "2.1.0"
8+source = "registry+https://github.com/rust-lang/crates.io-index"
9+checksum = "28e416a3ab45838bac2ab2d81b1088d738d7b2d2c5272a54d39366565a29bd80"
10+dependencies = [
11+ "macroific",
12+ "proc-macro2",
13+ "quote",
14+ "syn 2.0.101",
15+]
16+
17+[[package]]
18+name = "addr2line"
19+version = "0.25.1"
20+source = "registry+https://github.com/rust-lang/crates.io-index"
21+checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b"
22+dependencies = [
23+ "gimli",
24+]
25+
26+[[package]]
27+name = "adler2"
28+version = "2.0.1"
29+source = "registry+https://github.com/rust-lang/crates.io-index"
30+checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
31+
32+[[package]]
33+name = "aead"
34+version = "0.5.2"
35+source = "registry+https://github.com/rust-lang/crates.io-index"
36+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
37+dependencies = [
38+ "crypto-common",
39+ "generic-array",
40+]
41+
42+[[package]]
43+name = "aes"
44+version = "0.8.4"
45+source = "registry+https://github.com/rust-lang/crates.io-index"
46+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
47+dependencies = [
48+ "cfg-if",
49+ "cipher",
50+ "cpufeatures 0.2.12",
51+]
52+
53+[[package]]
54+name = "aho-corasick"
55+version = "1.1.3"
56+source = "registry+https://github.com/rust-lang/crates.io-index"
57+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
58+dependencies = [
59+ "memchr",
60+]
61+
62+[[package]]
63+name = "allocator-api2"
64+version = "0.2.18"
65+source = "registry+https://github.com/rust-lang/crates.io-index"
66+checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
67+
68+[[package]]
69+name = "android_system_properties"
70+version = "0.1.5"
71+source = "registry+https://github.com/rust-lang/crates.io-index"
72+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
73+dependencies = [
74+ "libc",
75+]
76+
77+[[package]]
78+name = "anes"
79+version = "0.1.6"
80+source = "registry+https://github.com/rust-lang/crates.io-index"
81+checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
82+
83+[[package]]
84+name = "anstyle"
85+version = "1.0.11"
86+source = "registry+https://github.com/rust-lang/crates.io-index"
87+checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd"
88+
89+[[package]]
90+name = "anyhow"
91+version = "1.0.100"
92+source = "registry+https://github.com/rust-lang/crates.io-index"
93+checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
94+
95+[[package]]
96+name = "anymap2"
97+version = "0.13.0"
98+source = "registry+https://github.com/rust-lang/crates.io-index"
99+checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c"
100+
101+[[package]]
102+name = "approx"
103+version = "0.5.1"
104+source = "registry+https://github.com/rust-lang/crates.io-index"
105+checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
106+dependencies = [
107+ "num-traits",
108+]
109+
110+[[package]]
111+name = "aquamarine"
112+version = "0.6.0"
113+source = "registry+https://github.com/rust-lang/crates.io-index"
114+checksum = "0f50776554130342de4836ba542aa85a4ddb361690d7e8df13774d7284c3d5c2"
115+dependencies = [
116+ "include_dir",
117+ "itertools 0.10.5",
118+ "proc-macro-error2",
119+ "proc-macro2",
120+ "quote",
121+ "syn 2.0.101",
122+]
123+
124+[[package]]
125+name = "arc-swap"
126+version = "1.7.1"
127+source = "registry+https://github.com/rust-lang/crates.io-index"
128+checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
129+
130+[[package]]
131+name = "archery"
132+version = "1.2.1"
133+source = "registry+https://github.com/rust-lang/crates.io-index"
134+checksum = "eae2ed21cd55021f05707a807a5fc85695dafb98832921f6cfa06db67ca5b869"
135+
136+[[package]]
137+name = "arrayref"
138+version = "0.3.8"
139+source = "registry+https://github.com/rust-lang/crates.io-index"
140+checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a"
141+
142+[[package]]
143+name = "arrayvec"
144+version = "0.7.6"
145+source = "registry+https://github.com/rust-lang/crates.io-index"
146+checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
147+dependencies = [
148+ "serde",
149+]
150+
151+[[package]]
152+name = "as_variant"
153+version = "1.3.0"
154+source = "registry+https://github.com/rust-lang/crates.io-index"
155+checksum = "9dbc3a507a82b17ba0d98f6ce8fd6954ea0c8152e98009d36a40d8dcc8ce078a"
156+
157+[[package]]
158+name = "askama"
159+version = "0.14.0"
160+source = "registry+https://github.com/rust-lang/crates.io-index"
161+checksum = "f75363874b771be265f4ffe307ca705ef6f3baa19011c149da8674a87f1b75c4"
162+dependencies = [
163+ "askama_derive",
164+ "itoa",
165+ "percent-encoding",
166+ "serde",
167+ "serde_json",
168+]
169+
170+[[package]]
171+name = "askama_derive"
172+version = "0.14.0"
173+source = "registry+https://github.com/rust-lang/crates.io-index"
174+checksum = "129397200fe83088e8a68407a8e2b1f826cf0086b21ccdb866a722c8bcd3a94f"
175+dependencies = [
176+ "askama_parser",
177+ "basic-toml",
178+ "memchr",
179+ "proc-macro2",
180+ "quote",
181+ "rustc-hash",
182+ "serde",
183+ "serde_derive",
184+ "syn 2.0.101",
185+]
186+
187+[[package]]
188+name = "askama_parser"
189+version = "0.14.0"
190+source = "registry+https://github.com/rust-lang/crates.io-index"
191+checksum = "d6ab5630b3d5eaf232620167977f95eb51f3432fc76852328774afbd242d4358"
192+dependencies = [
193+ "memchr",
194+ "serde",
195+ "serde_derive",
196+ "winnow 0.7.13",
197+]
198+
199+[[package]]
200+name = "assert-json-diff"
201+version = "2.0.2"
202+source = "registry+https://github.com/rust-lang/crates.io-index"
203+checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
204+dependencies = [
205+ "serde",
206+ "serde_json",
207+]
208+
209+[[package]]
210+name = "assert_matches"
211+version = "1.5.0"
212+source = "registry+https://github.com/rust-lang/crates.io-index"
213+checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
214+
215+[[package]]
216+name = "assert_matches2"
217+version = "0.1.2"
218+source = "registry+https://github.com/rust-lang/crates.io-index"
219+checksum = "15832d94c458da98cac0ffa6eca52cc19c2a3c6c951058500a5ae8f01f0fdf56"
220+
221+[[package]]
222+name = "assign"
223+version = "1.1.1"
224+source = "registry+https://github.com/rust-lang/crates.io-index"
225+checksum = "5f093eed78becd229346bf859eec0aa4dd7ddde0757287b2b4107a1f09c80002"
226+
227+[[package]]
228+name = "async-channel"
229+version = "2.5.0"
230+source = "registry+https://github.com/rust-lang/crates.io-index"
231+checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2"
232+dependencies = [
233+ "concurrent-queue",
234+ "event-listener-strategy",
235+ "futures-core",
236+ "pin-project-lite",
237+]
238+
239+[[package]]
240+name = "async-compat"
241+version = "0.2.5"
242+source = "git+https://github.com/element-hq/async-compat?rev=5a27c8b290f1f1dcfc0c4ec22c464e38528aa591#5a27c8b290f1f1dcfc0c4ec22c464e38528aa591"
243+dependencies = [
244+ "futures-core",
245+ "futures-io",
246+ "once_cell",
247+ "pin-project-lite",
248+ "tokio",
249+]
250+
251+[[package]]
252+name = "async-compression"
253+version = "0.4.12"
254+source = "registry+https://github.com/rust-lang/crates.io-index"
255+checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa"
256+dependencies = [
257+ "flate2",
258+ "futures-core",
259+ "memchr",
260+ "pin-project-lite",
261+ "tokio",
262+]
263+
264+[[package]]
265+name = "async-once-cell"
266+version = "0.5.4"
267+source = "registry+https://github.com/rust-lang/crates.io-index"
268+checksum = "4288f83726785267c6f2ef073a3d83dc3f9b81464e9f99898240cced85fce35a"
269+
270+[[package]]
271+name = "async-rx"
272+version = "0.2.0"
273+source = "registry+https://github.com/rust-lang/crates.io-index"
274+checksum = "9053bf9b3852b83be29d9a29dd7dcf68273f81b10d55ae8beceedb4d23f41448"
275+dependencies = [
276+ "futures-core",
277+ "pin-project-lite",
278+]
279+
280+[[package]]
281+name = "async-stream"
282+version = "0.3.6"
283+source = "registry+https://github.com/rust-lang/crates.io-index"
284+checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476"
285+dependencies = [
286+ "async-stream-impl",
287+ "futures-core",
288+ "pin-project-lite",
289+]
290+
291+[[package]]
292+name = "async-stream-impl"
293+version = "0.3.6"
294+source = "registry+https://github.com/rust-lang/crates.io-index"
295+checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
296+dependencies = [
297+ "proc-macro2",
298+ "quote",
299+ "syn 2.0.101",
300+]
301+
302+[[package]]
303+name = "async-trait"
304+version = "0.1.89"
305+source = "registry+https://github.com/rust-lang/crates.io-index"
306+checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
307+dependencies = [
308+ "proc-macro2",
309+ "quote",
310+ "syn 2.0.101",
311+]
312+
313+[[package]]
314+name = "async_cell"
315+version = "0.2.3"
316+source = "registry+https://github.com/rust-lang/crates.io-index"
317+checksum = "447ab28afbb345f5408b120702a44e5529ebf90b1796ec76e9528df8e288e6c2"
318+dependencies = [
319+ "loom",
320+]
321+
322+[[package]]
323+name = "atomic"
324+version = "0.6.1"
325+source = "registry+https://github.com/rust-lang/crates.io-index"
326+checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340"
327+dependencies = [
328+ "bytemuck",
329+]
330+
331+[[package]]
332+name = "atomic-waker"
333+version = "1.1.2"
334+source = "registry+https://github.com/rust-lang/crates.io-index"
335+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
336+
337+[[package]]
338+name = "autocfg"
339+version = "1.3.0"
340+source = "registry+https://github.com/rust-lang/crates.io-index"
341+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
342+
343+[[package]]
344+name = "aws-lc-rs"
345+version = "1.16.2"
346+source = "registry+https://github.com/rust-lang/crates.io-index"
347+checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc"
348+dependencies = [
349+ "aws-lc-sys",
350+ "zeroize",
351+]
352+
353+[[package]]
354+name = "aws-lc-sys"
355+version = "0.39.0"
356+source = "registry+https://github.com/rust-lang/crates.io-index"
357+checksum = "1fa7e52a4c5c547c741610a2c6f123f3881e409b714cd27e6798ef020c514f0a"
358+dependencies = [
359+ "cc",
360+ "cmake",
361+ "dunce",
362+ "fs_extra",
363+]
364+
365+[[package]]
366+name = "axum"
367+version = "0.8.4"
368+source = "registry+https://github.com/rust-lang/crates.io-index"
369+checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5"
370+dependencies = [
371+ "axum-core",
372+ "bytes",
373+ "form_urlencoded",
374+ "futures-util",
375+ "http",
376+ "http-body",
377+ "http-body-util",
378+ "hyper",
379+ "hyper-util",
380+ "itoa",
381+ "matchit",
382+ "memchr",
383+ "mime",
384+ "percent-encoding",
385+ "pin-project-lite",
386+ "rustversion",
387+ "serde",
388+ "serde_json",
389+ "serde_path_to_error",
390+ "serde_urlencoded",
391+ "sync_wrapper",
392+ "tokio",
393+ "tower",
394+ "tower-layer",
395+ "tower-service",
396+ "tracing",
397+]
398+
399+[[package]]
400+name = "axum-core"
401+version = "0.5.2"
402+source = "registry+https://github.com/rust-lang/crates.io-index"
403+checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6"
404+dependencies = [
405+ "bytes",
406+ "futures-core",
407+ "http",
408+ "http-body",
409+ "http-body-util",
410+ "mime",
411+ "pin-project-lite",
412+ "rustversion",
413+ "sync_wrapper",
414+ "tower-layer",
415+ "tower-service",
416+ "tracing",
417+]
418+
419+[[package]]
420+name = "backon"
421+version = "1.6.0"
422+source = "registry+https://github.com/rust-lang/crates.io-index"
423+checksum = "cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef"
424+dependencies = [
425+ "fastrand",
426+ "gloo-timers",
427+ "tokio",
428+]
429+
430+[[package]]
431+name = "backtrace"
432+version = "0.3.76"
433+source = "registry+https://github.com/rust-lang/crates.io-index"
434+checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6"
435+dependencies = [
436+ "addr2line",
437+ "cfg-if",
438+ "libc",
439+ "miniz_oxide",
440+ "object",
441+ "rustc-demangle",
442+ "windows-link 0.2.1",
443+]
444+
445+[[package]]
446+name = "base64"
447+version = "0.22.1"
448+source = "registry+https://github.com/rust-lang/crates.io-index"
449+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
450+
451+[[package]]
452+name = "base64ct"
453+version = "1.8.3"
454+source = "registry+https://github.com/rust-lang/crates.io-index"
455+checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
456+
457+[[package]]
458+name = "basic-toml"
459+version = "0.1.9"
460+source = "registry+https://github.com/rust-lang/crates.io-index"
461+checksum = "823388e228f614e9558c6804262db37960ec8821856535f5c3f59913140558f8"
462+dependencies = [
463+ "serde",
464+]
465+
466+[[package]]
467+name = "benchmarks"
468+version = "1.0.0"
469+dependencies = [
470+ "assert_matches",
471+ "codspeed-criterion-compat",
472+ "futures-util",
473+ "matrix-sdk",
474+ "matrix-sdk-base",
475+ "matrix-sdk-crypto",
476+ "matrix-sdk-sqlite",
477+ "matrix-sdk-test",
478+ "matrix-sdk-ui",
479+ "rand 0.10.1",
480+ "ruma",
481+ "serde",
482+ "serde_json",
483+ "tempfile",
484+ "tokio",
485+ "wiremock",
486+]
487+
488+[[package]]
489+name = "bit-set"
490+version = "0.5.3"
491+source = "registry+https://github.com/rust-lang/crates.io-index"
492+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
493+dependencies = [
494+ "bit-vec",
495+]
496+
497+[[package]]
498+name = "bit-vec"
499+version = "0.6.3"
500+source = "registry+https://github.com/rust-lang/crates.io-index"
501+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
502+
503+[[package]]
504+name = "bitflags"
505+version = "1.3.2"
506+source = "registry+https://github.com/rust-lang/crates.io-index"
507+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
508+
509+[[package]]
510+name = "bitflags"
511+version = "2.10.0"
512+source = "registry+https://github.com/rust-lang/crates.io-index"
513+checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
514+dependencies = [
515+ "serde_core",
516+]
517+
518+[[package]]
519+name = "bitmaps"
520+version = "3.2.1"
521+source = "registry+https://github.com/rust-lang/crates.io-index"
522+checksum = "a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6"
523+
524+[[package]]
525+name = "bitpacking"
526+version = "0.9.3"
527+source = "registry+https://github.com/rust-lang/crates.io-index"
528+checksum = "96a7139abd3d9cebf8cd6f920a389cf3dc9576172e32f4563f188cae3c3eb019"
529+dependencies = [
530+ "crunchy",
531+]
532+
533+[[package]]
534+name = "blake3"
535+version = "1.8.2"
536+source = "registry+https://github.com/rust-lang/crates.io-index"
537+checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0"
538+dependencies = [
539+ "arrayref",
540+ "arrayvec",
541+ "cc",
542+ "cfg-if",
543+ "constant_time_eq",
544+]
545+
546+[[package]]
547+name = "block-buffer"
548+version = "0.10.4"
549+source = "registry+https://github.com/rust-lang/crates.io-index"
550+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
551+dependencies = [
552+ "generic-array",
553+]
554+
555+[[package]]
556+name = "block-padding"
557+version = "0.3.3"
558+source = "registry+https://github.com/rust-lang/crates.io-index"
559+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
560+dependencies = [
561+ "generic-array",
562+]
563+
564+[[package]]
565+name = "bon"
566+version = "3.6.5"
567+source = "registry+https://github.com/rust-lang/crates.io-index"
568+checksum = "33d9ef19ae5263a138da9a86871eca537478ab0332a7770bac7e3f08b801f89f"
569+dependencies = [
570+ "bon-macros",
571+ "rustversion",
572+]
573+
574+[[package]]
575+name = "bon-macros"
576+version = "3.6.5"
577+source = "registry+https://github.com/rust-lang/crates.io-index"
578+checksum = "577ae008f2ca11ca7641bd44601002ee5ab49ef0af64846ce1ab6057218a5cc1"
579+dependencies = [
580+ "darling 0.21.1",
581+ "ident_case",
582+ "prettyplease",
583+ "proc-macro2",
584+ "quote",
585+ "rustversion",
586+ "syn 2.0.101",
587+]
588+
589+[[package]]
590+name = "bs58"
591+version = "0.5.1"
592+source = "registry+https://github.com/rust-lang/crates.io-index"
593+checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4"
594+dependencies = [
595+ "tinyvec",
596+]
597+
598+[[package]]
599+name = "bumpalo"
600+version = "3.16.0"
601+source = "registry+https://github.com/rust-lang/crates.io-index"
602+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
603+
604+[[package]]
605+name = "bytemuck"
606+version = "1.16.3"
607+source = "registry+https://github.com/rust-lang/crates.io-index"
608+checksum = "102087e286b4677862ea56cf8fc58bb2cdfa8725c40ffb80fe3a008eb7f2fc83"
609+
610+[[package]]
611+name = "byteorder"
612+version = "1.5.0"
613+source = "registry+https://github.com/rust-lang/crates.io-index"
614+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
615+
616+[[package]]
617+name = "byteorder-lite"
618+version = "0.1.0"
619+source = "registry+https://github.com/rust-lang/crates.io-index"
620+checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
621+
622+[[package]]
623+name = "bytes"
624+version = "1.11.1"
625+source = "registry+https://github.com/rust-lang/crates.io-index"
626+checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
627+
628+[[package]]
629+name = "bytesize"
630+version = "2.3.0"
631+source = "registry+https://github.com/rust-lang/crates.io-index"
632+checksum = "00f4369ba008f82b968b1acbe31715ec37bd45236fa0726605a36cc3060ea256"
633+
634+[[package]]
635+name = "camino"
636+version = "1.2.2"
637+source = "registry+https://github.com/rust-lang/crates.io-index"
638+checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48"
639+dependencies = [
640+ "serde_core",
641+]
642+
643+[[package]]
644+name = "cargo-platform"
645+version = "0.1.9"
646+source = "registry+https://github.com/rust-lang/crates.io-index"
647+checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"
648+dependencies = [
649+ "serde",
650+]
651+
652+[[package]]
653+name = "cargo_metadata"
654+version = "0.19.2"
655+source = "registry+https://github.com/rust-lang/crates.io-index"
656+checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba"
657+dependencies = [
658+ "camino",
659+ "cargo-platform",
660+ "semver",
661+ "serde",
662+ "serde_json",
663+ "thiserror 2.0.18",
664+]
665+
666+[[package]]
667+name = "cast"
668+version = "0.3.0"
669+source = "registry+https://github.com/rust-lang/crates.io-index"
670+checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
671+
672+[[package]]
673+name = "castaway"
674+version = "0.2.3"
675+source = "registry+https://github.com/rust-lang/crates.io-index"
676+checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5"
677+dependencies = [
678+ "rustversion",
679+]
680+
681+[[package]]
682+name = "cbc"
683+version = "0.1.2"
684+source = "registry+https://github.com/rust-lang/crates.io-index"
685+checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
686+dependencies = [
687+ "cipher",
688+]
689+
690+[[package]]
691+name = "cc"
692+version = "1.2.52"
693+source = "registry+https://github.com/rust-lang/crates.io-index"
694+checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3"
695+dependencies = [
696+ "find-msvc-tools",
697+ "jobserver",
698+ "libc",
699+ "shlex",
700+]
701+
702+[[package]]
703+name = "census"
704+version = "0.4.2"
705+source = "registry+https://github.com/rust-lang/crates.io-index"
706+checksum = "4f4c707c6a209cbe82d10abd08e1ea8995e9ea937d2550646e02798948992be0"
707+
708+[[package]]
709+name = "cesu8"
710+version = "1.1.0"
711+source = "registry+https://github.com/rust-lang/crates.io-index"
712+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
713+
714+[[package]]
715+name = "cfg-if"
716+version = "1.0.4"
717+source = "registry+https://github.com/rust-lang/crates.io-index"
718+checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
719+
720+[[package]]
721+name = "cfg_aliases"
722+version = "0.2.1"
723+source = "registry+https://github.com/rust-lang/crates.io-index"
724+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
725+
726+[[package]]
727+name = "chacha20"
728+version = "0.9.1"
729+source = "registry+https://github.com/rust-lang/crates.io-index"
730+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
731+dependencies = [
732+ "cfg-if",
733+ "cipher",
734+ "cpufeatures 0.2.12",
735+]
736+
737+[[package]]
738+name = "chacha20"
739+version = "0.10.0"
740+source = "registry+https://github.com/rust-lang/crates.io-index"
741+checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601"
742+dependencies = [
743+ "cfg-if",
744+ "cpufeatures 0.3.0",
745+ "rand_core 0.10.0",
746+]
747+
748+[[package]]
749+name = "chacha20poly1305"
750+version = "0.10.1"
751+source = "registry+https://github.com/rust-lang/crates.io-index"
752+checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"
753+dependencies = [
754+ "aead",
755+ "chacha20 0.9.1",
756+ "cipher",
757+ "poly1305",
758+ "zeroize",
759+]
760+
761+[[package]]
762+name = "chrono"
763+version = "0.4.42"
764+source = "registry+https://github.com/rust-lang/crates.io-index"
765+checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
766+dependencies = [
767+ "iana-time-zone",
768+ "js-sys",
769+ "num-traits",
770+ "serde",
771+ "wasm-bindgen",
772+ "windows-link 0.2.1",
773+]
774+
775+[[package]]
776+name = "ciborium"
777+version = "0.2.2"
778+source = "registry+https://github.com/rust-lang/crates.io-index"
779+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
780+dependencies = [
781+ "ciborium-io",
782+ "ciborium-ll",
783+ "serde",
784+]
785+
786+[[package]]
787+name = "ciborium-io"
788+version = "0.2.2"
789+source = "registry+https://github.com/rust-lang/crates.io-index"
790+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
791+
792+[[package]]
793+name = "ciborium-ll"
794+version = "0.2.2"
795+source = "registry+https://github.com/rust-lang/crates.io-index"
796+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
797+dependencies = [
798+ "ciborium-io",
799+ "half",
800+]
801+
802+[[package]]
803+name = "cipher"
804+version = "0.4.4"
805+source = "registry+https://github.com/rust-lang/crates.io-index"
806+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
807+dependencies = [
808+ "crypto-common",
809+ "inout",
810+ "zeroize",
811+]
812+
813+[[package]]
814+name = "clap"
815+version = "4.5.53"
816+source = "registry+https://github.com/rust-lang/crates.io-index"
817+checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8"
818+dependencies = [
819+ "clap_builder",
820+ "clap_derive",
821+]
822+
823+[[package]]
824+name = "clap_builder"
825+version = "4.5.53"
826+source = "registry+https://github.com/rust-lang/crates.io-index"
827+checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00"
828+dependencies = [
829+ "anstyle",
830+ "clap_lex",
831+ "strsim",
832+]
833+
834+[[package]]
835+name = "clap_derive"
836+version = "4.5.49"
837+source = "registry+https://github.com/rust-lang/crates.io-index"
838+checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671"
839+dependencies = [
840+ "heck",
841+ "proc-macro2",
842+ "quote",
843+ "syn 2.0.101",
844+]
845+
846+[[package]]
847+name = "clap_lex"
848+version = "0.7.5"
849+source = "registry+https://github.com/rust-lang/crates.io-index"
850+checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675"
851+
852+[[package]]
853+name = "cmake"
854+version = "0.1.57"
855+source = "registry+https://github.com/rust-lang/crates.io-index"
856+checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d"
857+dependencies = [
858+ "cc",
859+]
860+
861+[[package]]
862+name = "codspeed"
863+version = "4.2.1"
864+source = "registry+https://github.com/rust-lang/crates.io-index"
865+checksum = "5f0d98d97fd75ca4489a1a0997820a6521531085e7c8a98941bd0e1264d567dd"
866+dependencies = [
867+ "anyhow",
868+ "cc",
869+ "colored",
870+ "getrandom 0.2.15",
871+ "glob",
872+ "libc",
873+ "nix 0.30.1",
874+ "serde",
875+ "serde_json",
876+ "statrs",
877+]
878+
879+[[package]]
880+name = "codspeed-criterion-compat"
881+version = "4.2.1"
882+source = "registry+https://github.com/rust-lang/crates.io-index"
883+checksum = "d16fe2db207123f7b3a3b5cfff0c22f99469f7534145f3573f57f4c8a5653c2c"
884+dependencies = [
885+ "clap",
886+ "codspeed",
887+ "codspeed-criterion-compat-walltime",
888+ "colored",
889+ "futures",
890+ "regex",
891+ "tokio",
892+]
893+
894+[[package]]
895+name = "codspeed-criterion-compat-walltime"
896+version = "4.2.1"
897+source = "registry+https://github.com/rust-lang/crates.io-index"
898+checksum = "b035c7f9846b143aeabb3833f5b584023eb97b43ecbff3d997db74c4372df2bd"
899+dependencies = [
900+ "anes",
901+ "cast",
902+ "ciborium",
903+ "clap",
904+ "codspeed",
905+ "criterion-plot",
906+ "futures",
907+ "is-terminal",
908+ "itertools 0.10.5",
909+ "num-traits",
910+ "once_cell",
911+ "oorandom",
912+ "plotters",
913+ "rayon",
914+ "regex",
915+ "serde",
916+ "serde_derive",
917+ "serde_json",
918+ "tinytemplate",
919+ "tokio",
920+ "walkdir",
921+]
922+
923+[[package]]
924+name = "color-eyre"
925+version = "0.6.5"
926+source = "registry+https://github.com/rust-lang/crates.io-index"
927+checksum = "e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d"
928+dependencies = [
929+ "backtrace",
930+ "color-spantrace",
931+ "eyre",
932+ "indenter",
933+ "once_cell",
934+ "owo-colors",
935+ "tracing-error",
936+]
937+
938+[[package]]
939+name = "color-spantrace"
940+version = "0.3.0"
941+source = "registry+https://github.com/rust-lang/crates.io-index"
942+checksum = "b8b88ea9df13354b55bc7234ebcce36e6ef896aca2e42a15de9e10edce01b427"
943+dependencies = [
944+ "once_cell",
945+ "owo-colors",
946+ "tracing-core",
947+ "tracing-error",
948+]
949+
950+[[package]]
951+name = "colored"
952+version = "2.2.0"
953+source = "registry+https://github.com/rust-lang/crates.io-index"
954+checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c"
955+dependencies = [
956+ "lazy_static",
957+ "windows-sys 0.59.0",
958+]
959+
960+[[package]]
961+name = "combine"
962+version = "4.6.7"
963+source = "registry+https://github.com/rust-lang/crates.io-index"
964+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
965+dependencies = [
966+ "bytes",
967+ "memchr",
968+]
969+
970+[[package]]
971+name = "compact_str"
972+version = "0.9.0"
973+source = "registry+https://github.com/rust-lang/crates.io-index"
974+checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a"
975+dependencies = [
976+ "castaway",
977+ "cfg-if",
978+ "itoa",
979+ "rustversion",
980+ "ryu",
981+ "static_assertions",
982+]
983+
984+[[package]]
985+name = "concurrent-queue"
986+version = "2.5.0"
987+source = "registry+https://github.com/rust-lang/crates.io-index"
988+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
989+dependencies = [
990+ "crossbeam-utils",
991+]
992+
993+[[package]]
994+name = "console"
995+version = "0.15.8"
996+source = "registry+https://github.com/rust-lang/crates.io-index"
997+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
998+dependencies = [
999+ "encode_unicode",
1000+ "lazy_static",
1001+ "libc",
1002+ "windows-sys 0.52.0",
1003+]
1004+
1005+[[package]]
1006+name = "console_error_panic_hook"
1007+version = "0.1.7"
1008+source = "registry+https://github.com/rust-lang/crates.io-index"
1009+checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
1010+dependencies = [
1011+ "cfg-if",
1012+ "wasm-bindgen",
1013+]
1014+
1015+[[package]]
1016+name = "const-oid"
1017+version = "0.9.6"
1018+source = "registry+https://github.com/rust-lang/crates.io-index"
1019+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
1020+
1021+[[package]]
1022+name = "const_panic"
1023+version = "0.2.15"
1024+source = "git+https://github.com/jplatte/const_panic?rev=e0b317a9a7bde2d48a7d15b6a60d70e4a41d3b5f#e0b317a9a7bde2d48a7d15b6a60d70e4a41d3b5f"
1025+dependencies = [
1026+ "typewit",
1027+]
1028+
1029+[[package]]
1030+name = "constant_time_eq"
1031+version = "0.3.1"
1032+source = "registry+https://github.com/rust-lang/crates.io-index"
1033+checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
1034+
1035+[[package]]
1036+name = "convert_case"
1037+version = "0.7.1"
1038+source = "registry+https://github.com/rust-lang/crates.io-index"
1039+checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7"
1040+dependencies = [
1041+ "unicode-segmentation",
1042+]
1043+
1044+[[package]]
1045+name = "core-foundation"
1046+version = "0.10.1"
1047+source = "registry+https://github.com/rust-lang/crates.io-index"
1048+checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"
1049+dependencies = [
1050+ "core-foundation-sys",
1051+ "libc",
1052+]
1053+
1054+[[package]]
1055+name = "core-foundation-sys"
1056+version = "0.8.6"
1057+source = "registry+https://github.com/rust-lang/crates.io-index"
1058+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
1059+
1060+[[package]]
1061+name = "cpufeatures"
1062+version = "0.2.12"
1063+source = "registry+https://github.com/rust-lang/crates.io-index"
1064+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
1065+dependencies = [
1066+ "libc",
1067+]
1068+
1069+[[package]]
1070+name = "cpufeatures"
1071+version = "0.3.0"
1072+source = "registry+https://github.com/rust-lang/crates.io-index"
1073+checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
1074+dependencies = [
1075+ "libc",
1076+]
1077+
1078+[[package]]
1079+name = "crc32fast"
1080+version = "1.4.2"
1081+source = "registry+https://github.com/rust-lang/crates.io-index"
1082+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
1083+dependencies = [
1084+ "cfg-if",
1085+]
1086+
1087+[[package]]
1088+name = "criterion-plot"
1089+version = "0.5.0"
1090+source = "registry+https://github.com/rust-lang/crates.io-index"
1091+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
1092+dependencies = [
1093+ "cast",
1094+ "itertools 0.10.5",
1095+]
1096+
1097+[[package]]
1098+name = "crossbeam-channel"
1099+version = "0.5.15"
1100+source = "registry+https://github.com/rust-lang/crates.io-index"
1101+checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
1102+dependencies = [
1103+ "crossbeam-utils",
1104+]
1105+
1106+[[package]]
1107+name = "crossbeam-deque"
1108+version = "0.8.5"
1109+source = "registry+https://github.com/rust-lang/crates.io-index"
1110+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
1111+dependencies = [
1112+ "crossbeam-epoch",
1113+ "crossbeam-utils",
1114+]
1115+
1116+[[package]]
1117+name = "crossbeam-epoch"
1118+version = "0.9.18"
1119+source = "registry+https://github.com/rust-lang/crates.io-index"
1120+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
1121+dependencies = [
1122+ "crossbeam-utils",
1123+]
1124+
1125+[[package]]
1126+name = "crossbeam-utils"
1127+version = "0.8.20"
1128+source = "registry+https://github.com/rust-lang/crates.io-index"
1129+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
1130+
1131+[[package]]
1132+name = "crossterm"
1133+version = "0.29.0"
1134+source = "registry+https://github.com/rust-lang/crates.io-index"
1135+checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"
1136+dependencies = [
1137+ "bitflags 2.10.0",
1138+ "crossterm_winapi",
1139+ "derive_more 2.0.1",
1140+ "document-features",
1141+ "mio",
1142+ "parking_lot",
1143+ "rustix",
1144+ "signal-hook",
1145+ "signal-hook-mio",
1146+ "winapi",
1147+]
1148+
1149+[[package]]
1150+name = "crossterm_winapi"
1151+version = "0.9.1"
1152+source = "registry+https://github.com/rust-lang/crates.io-index"
1153+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
1154+dependencies = [
1155+ "winapi",
1156+]
1157+
1158+[[package]]
1159+name = "crunchy"
1160+version = "0.2.2"
1161+source = "registry+https://github.com/rust-lang/crates.io-index"
1162+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
1163+
1164+[[package]]
1165+name = "crypto-common"
1166+version = "0.1.6"
1167+source = "registry+https://github.com/rust-lang/crates.io-index"
1168+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
1169+dependencies = [
1170+ "generic-array",
1171+ "rand_core 0.6.4",
1172+ "typenum",
1173+]
1174+
1175+[[package]]
1176+name = "csscolorparser"
1177+version = "0.6.2"
1178+source = "registry+https://github.com/rust-lang/crates.io-index"
1179+checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf"
1180+dependencies = [
1181+ "lab",
1182+ "phf 0.11.3",
1183+]
1184+
1185+[[package]]
1186+name = "ctor"
1187+version = "0.2.9"
1188+source = "registry+https://github.com/rust-lang/crates.io-index"
1189+checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501"
1190+dependencies = [
1191+ "quote",
1192+ "syn 2.0.101",
1193+]
1194+
1195+[[package]]
1196+name = "ctr"
1197+version = "0.9.2"
1198+source = "registry+https://github.com/rust-lang/crates.io-index"
1199+checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
1200+dependencies = [
1201+ "cipher",
1202+]
1203+
1204+[[package]]
1205+name = "curve25519-dalek"
1206+version = "4.1.3"
1207+source = "registry+https://github.com/rust-lang/crates.io-index"
1208+checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
1209+dependencies = [
1210+ "cfg-if",
1211+ "cpufeatures 0.2.12",
1212+ "curve25519-dalek-derive",
1213+ "digest",
1214+ "fiat-crypto",
1215+ "rustc_version",
1216+ "serde",
1217+ "subtle",
1218+ "zeroize",
1219+]
1220+
1221+[[package]]
1222+name = "curve25519-dalek-derive"
1223+version = "0.1.1"
1224+source = "registry+https://github.com/rust-lang/crates.io-index"
1225+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
1226+dependencies = [
1227+ "proc-macro2",
1228+ "quote",
1229+ "syn 2.0.101",
1230+]
1231+
1232+[[package]]
1233+name = "darling"
1234+version = "0.20.10"
1235+source = "registry+https://github.com/rust-lang/crates.io-index"
1236+checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
1237+dependencies = [
1238+ "darling_core 0.20.10",
1239+ "darling_macro 0.20.10",
1240+]
1241+
1242+[[package]]
1243+name = "darling"
1244+version = "0.21.1"
1245+source = "registry+https://github.com/rust-lang/crates.io-index"
1246+checksum = "d6b136475da5ef7b6ac596c0e956e37bad51b85b987ff3d5e230e964936736b2"
1247+dependencies = [
1248+ "darling_core 0.21.1",
1249+ "darling_macro 0.21.1",
1250+]
1251+
1252+[[package]]
1253+name = "darling_core"
1254+version = "0.20.10"
1255+source = "registry+https://github.com/rust-lang/crates.io-index"
1256+checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
1257+dependencies = [
1258+ "fnv",
1259+ "ident_case",
1260+ "proc-macro2",
1261+ "quote",
1262+ "strsim",
1263+ "syn 2.0.101",
1264+]
1265+
1266+[[package]]
1267+name = "darling_core"
1268+version = "0.21.1"
1269+source = "registry+https://github.com/rust-lang/crates.io-index"
1270+checksum = "b44ad32f92b75fb438b04b68547e521a548be8acc339a6dacc4a7121488f53e6"
1271+dependencies = [
1272+ "fnv",
1273+ "ident_case",
1274+ "proc-macro2",
1275+ "quote",
1276+ "strsim",
1277+ "syn 2.0.101",
1278+]
1279+
1280+[[package]]
1281+name = "darling_macro"
1282+version = "0.20.10"
1283+source = "registry+https://github.com/rust-lang/crates.io-index"
1284+checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
1285+dependencies = [
1286+ "darling_core 0.20.10",
1287+ "quote",
1288+ "syn 2.0.101",
1289+]
1290+
1291+[[package]]
1292+name = "darling_macro"
1293+version = "0.21.1"
1294+source = "registry+https://github.com/rust-lang/crates.io-index"
1295+checksum = "2b5be8a7a562d315a5b92a630c30cec6bcf663e6673f00fbb69cca66a6f521b9"
1296+dependencies = [
1297+ "darling_core 0.21.1",
1298+ "quote",
1299+ "syn 2.0.101",
1300+]
1301+
1302+[[package]]
1303+name = "datasketches"
1304+version = "0.2.0"
1305+source = "registry+https://github.com/rust-lang/crates.io-index"
1306+checksum = "c286de4e81ea2590afc24d754e0f83810c566f50a1388fa75ebd57928c0d9745"
1307+
1308+[[package]]
1309+name = "date_header"
1310+version = "1.0.5"
1311+source = "registry+https://github.com/rust-lang/crates.io-index"
1312+checksum = "0c03c416ed1a30fbb027ef484ba6ab6f80e1eada675e1a2b92fd673c045a1f1d"
1313+
1314+[[package]]
1315+name = "deadpool"
1316+version = "0.12.3"
1317+source = "registry+https://github.com/rust-lang/crates.io-index"
1318+checksum = "0be2b1d1d6ec8d846f05e137292d0b89133caf95ef33695424c09568bdd39b1b"
1319+dependencies = [
1320+ "deadpool-runtime 0.1.4",
1321+ "lazy_static",
1322+ "num_cpus",
1323+ "tokio",
1324+]
1325+
1326+[[package]]
1327+name = "deadpool"
1328+version = "0.13.0"
1329+source = "registry+https://github.com/rust-lang/crates.io-index"
1330+checksum = "883466cb8db62725aee5f4a6011e8a5d42912b42632df32aad57fc91127c6e04"
1331+dependencies = [
1332+ "deadpool-runtime 0.3.1",
1333+ "num_cpus",
1334+ "tokio",
1335+]
1336+
1337+[[package]]
1338+name = "deadpool-runtime"
1339+version = "0.1.4"
1340+source = "registry+https://github.com/rust-lang/crates.io-index"
1341+checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b"
1342+
1343+[[package]]
1344+name = "deadpool-runtime"
1345+version = "0.3.1"
1346+source = "registry+https://github.com/rust-lang/crates.io-index"
1347+checksum = "2657f61fb1dd8bf37a8d51093cc7cee4e77125b22f7753f49b289f831bec2bae"
1348+dependencies = [
1349+ "tokio",
1350+]
1351+
1352+[[package]]
1353+name = "deadpool-sync"
1354+version = "0.2.0"
1355+source = "registry+https://github.com/rust-lang/crates.io-index"
1356+checksum = "e385cc95d3d582c328b36d1ff90feac061102b001894b555e6b465a2e0eaabbf"
1357+dependencies = [
1358+ "deadpool-runtime 0.3.1",
1359+]
1360+
1361+[[package]]
1362+name = "debugid"
1363+version = "0.8.0"
1364+source = "registry+https://github.com/rust-lang/crates.io-index"
1365+checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
1366+dependencies = [
1367+ "serde",
1368+ "uuid",
1369+]
1370+
1371+[[package]]
1372+name = "decancer"
1373+version = "3.3.3"
1374+source = "registry+https://github.com/rust-lang/crates.io-index"
1375+checksum = "a9244323129647178bf41ac861a2cdb9d9c81b9b09d3d0d1de9cd302b33b8a1d"
1376+
1377+[[package]]
1378+name = "delegate-display"
1379+version = "3.0.0"
1380+source = "registry+https://github.com/rust-lang/crates.io-index"
1381+checksum = "9926686c832494164c33a36bf65118f4bd6e704000b58c94681bf62e9ad67a74"
1382+dependencies = [
1383+ "impartial-ord",
1384+ "itoa",
1385+ "macroific",
1386+ "proc-macro2",
1387+ "quote",
1388+ "syn 2.0.101",
1389+]
1390+
1391+[[package]]
1392+name = "deltae"
1393+version = "0.3.2"
1394+source = "registry+https://github.com/rust-lang/crates.io-index"
1395+checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4"
1396+
1397+[[package]]
1398+name = "der"
1399+version = "0.7.9"
1400+source = "registry+https://github.com/rust-lang/crates.io-index"
1401+checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"
1402+dependencies = [
1403+ "const-oid",
1404+ "zeroize",
1405+]
1406+
1407+[[package]]
1408+name = "deranged"
1409+version = "0.5.3"
1410+source = "registry+https://github.com/rust-lang/crates.io-index"
1411+checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc"
1412+dependencies = [
1413+ "powerfmt",
1414+ "serde",
1415+]
1416+
1417+[[package]]
1418+name = "derivative"
1419+version = "2.2.0"
1420+source = "registry+https://github.com/rust-lang/crates.io-index"
1421+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
1422+dependencies = [
1423+ "proc-macro2",
1424+ "quote",
1425+ "syn 1.0.109",
1426+]
1427+
1428+[[package]]
1429+name = "derive_builder"
1430+version = "0.20.2"
1431+source = "registry+https://github.com/rust-lang/crates.io-index"
1432+checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947"
1433+dependencies = [
1434+ "derive_builder_macro",
1435+]
1436+
1437+[[package]]
1438+name = "derive_builder_core"
1439+version = "0.20.2"
1440+source = "registry+https://github.com/rust-lang/crates.io-index"
1441+checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8"
1442+dependencies = [
1443+ "darling 0.20.10",
1444+ "proc-macro2",
1445+ "quote",
1446+ "syn 2.0.101",
1447+]
1448+
1449+[[package]]
1450+name = "derive_builder_macro"
1451+version = "0.20.2"
1452+source = "registry+https://github.com/rust-lang/crates.io-index"
1453+checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c"
1454+dependencies = [
1455+ "derive_builder_core",
1456+ "syn 2.0.101",
1457+]
1458+
1459+[[package]]
1460+name = "derive_more"
1461+version = "1.0.0"
1462+source = "registry+https://github.com/rust-lang/crates.io-index"
1463+checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05"
1464+dependencies = [
1465+ "derive_more-impl 1.0.0",
1466+]
1467+
1468+[[package]]
1469+name = "derive_more"
1470+version = "2.0.1"
1471+source = "registry+https://github.com/rust-lang/crates.io-index"
1472+checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678"
1473+dependencies = [
1474+ "derive_more-impl 2.0.1",
1475+]
1476+
1477+[[package]]
1478+name = "derive_more-impl"
1479+version = "1.0.0"
1480+source = "registry+https://github.com/rust-lang/crates.io-index"
1481+checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
1482+dependencies = [
1483+ "proc-macro2",
1484+ "quote",
1485+ "syn 2.0.101",
1486+]
1487+
1488+[[package]]
1489+name = "derive_more-impl"
1490+version = "2.0.1"
1491+source = "registry+https://github.com/rust-lang/crates.io-index"
1492+checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"
1493+dependencies = [
1494+ "convert_case",
1495+ "proc-macro2",
1496+ "quote",
1497+ "syn 2.0.101",
1498+ "unicode-xid",
1499+]
1500+
1501+[[package]]
1502+name = "difflib"
1503+version = "0.4.0"
1504+source = "registry+https://github.com/rust-lang/crates.io-index"
1505+checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
1506+
1507+[[package]]
1508+name = "digest"
1509+version = "0.10.7"
1510+source = "registry+https://github.com/rust-lang/crates.io-index"
1511+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
1512+dependencies = [
1513+ "block-buffer",
1514+ "crypto-common",
1515+ "subtle",
1516+]
1517+
1518+[[package]]
1519+name = "dirs"
1520+version = "6.0.0"
1521+source = "registry+https://github.com/rust-lang/crates.io-index"
1522+checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
1523+dependencies = [
1524+ "dirs-sys",
1525+]
1526+
1527+[[package]]
1528+name = "dirs-sys"
1529+version = "0.5.0"
1530+source = "registry+https://github.com/rust-lang/crates.io-index"
1531+checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
1532+dependencies = [
1533+ "libc",
1534+ "option-ext",
1535+ "redox_users",
1536+ "windows-sys 0.61.2",
1537+]
1538+
1539+[[package]]
1540+name = "displaydoc"
1541+version = "0.2.5"
1542+source = "registry+https://github.com/rust-lang/crates.io-index"
1543+checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
1544+dependencies = [
1545+ "proc-macro2",
1546+ "quote",
1547+ "syn 2.0.101",
1548+]
1549+
1550+[[package]]
1551+name = "document-features"
1552+version = "0.2.12"
1553+source = "registry+https://github.com/rust-lang/crates.io-index"
1554+checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
1555+dependencies = [
1556+ "litrs",
1557+]
1558+
1559+[[package]]
1560+name = "downcast-rs"
1561+version = "2.0.1"
1562+source = "registry+https://github.com/rust-lang/crates.io-index"
1563+checksum = "ea8a8b81cacc08888170eef4d13b775126db426d0b348bee9d18c2c1eaf123cf"
1564+
1565+[[package]]
1566+name = "dunce"
1567+version = "1.0.5"
1568+source = "registry+https://github.com/rust-lang/crates.io-index"
1569+checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
1570+
1571+[[package]]
1572+name = "ed25519"
1573+version = "2.2.3"
1574+source = "registry+https://github.com/rust-lang/crates.io-index"
1575+checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
1576+dependencies = [
1577+ "pkcs8",
1578+ "serde",
1579+ "signature",
1580+]
1581+
1582+[[package]]
1583+name = "ed25519-dalek"
1584+version = "2.1.1"
1585+source = "registry+https://github.com/rust-lang/crates.io-index"
1586+checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
1587+dependencies = [
1588+ "curve25519-dalek",
1589+ "ed25519",
1590+ "rand_core 0.6.4",
1591+ "serde",
1592+ "sha2",
1593+ "subtle",
1594+ "zeroize",
1595+]
1596+
1597+[[package]]
1598+name = "either"
1599+version = "1.13.0"
1600+source = "registry+https://github.com/rust-lang/crates.io-index"
1601+checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
1602+
1603+[[package]]
1604+name = "emojis"
1605+version = "0.8.0"
1606+source = "registry+https://github.com/rust-lang/crates.io-index"
1607+checksum = "50c1c1870b766fc398e5f0526498d09c94b6de15be5fd769a28bbc804fb1b05d"
1608+dependencies = [
1609+ "phf 0.13.1",
1610+]
1611+
1612+[[package]]
1613+name = "encode_unicode"
1614+version = "0.3.6"
1615+source = "registry+https://github.com/rust-lang/crates.io-index"
1616+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
1617+
1618+[[package]]
1619+name = "equivalent"
1620+version = "1.0.1"
1621+source = "registry+https://github.com/rust-lang/crates.io-index"
1622+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
1623+
1624+[[package]]
1625+name = "erased-serde"
1626+version = "0.4.10"
1627+source = "registry+https://github.com/rust-lang/crates.io-index"
1628+checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec"
1629+dependencies = [
1630+ "serde",
1631+ "serde_core",
1632+ "typeid",
1633+]
1634+
1635+[[package]]
1636+name = "errno"
1637+version = "0.3.13"
1638+source = "registry+https://github.com/rust-lang/crates.io-index"
1639+checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad"
1640+dependencies = [
1641+ "libc",
1642+ "windows-sys 0.60.2",
1643+]
1644+
1645+[[package]]
1646+name = "euclid"
1647+version = "0.22.14"
1648+source = "registry+https://github.com/rust-lang/crates.io-index"
1649+checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06"
1650+dependencies = [
1651+ "num-traits",
1652+]
1653+
1654+[[package]]
1655+name = "event-listener"
1656+version = "5.4.1"
1657+source = "registry+https://github.com/rust-lang/crates.io-index"
1658+checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
1659+dependencies = [
1660+ "concurrent-queue",
1661+ "parking",
1662+ "pin-project-lite",
1663+]
1664+
1665+[[package]]
1666+name = "event-listener-strategy"
1667+version = "0.5.4"
1668+source = "registry+https://github.com/rust-lang/crates.io-index"
1669+checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
1670+dependencies = [
1671+ "event-listener",
1672+ "pin-project-lite",
1673+]
1674+
1675+[[package]]
1676+name = "example-autojoin"
1677+version = "0.1.0"
1678+dependencies = [
1679+ "anyhow",
1680+ "matrix-sdk",
1681+ "tokio",
1682+ "tracing-subscriber",
1683+]
1684+
1685+[[package]]
1686+name = "example-backups"
1687+version = "0.1.0"
1688+dependencies = [
1689+ "anyhow",
1690+ "clap",
1691+ "futures-util",
1692+ "matrix-sdk",
1693+ "tokio",
1694+ "tracing-subscriber",
1695+ "url",
1696+]
1697+
1698+[[package]]
1699+name = "example-command-bot"
1700+version = "0.1.0"
1701+dependencies = [
1702+ "anyhow",
1703+ "matrix-sdk",
1704+ "tokio",
1705+ "tracing-subscriber",
1706+]
1707+
1708+[[package]]
1709+name = "example-cross-signing-bootstrap"
1710+version = "0.1.0"
1711+dependencies = [
1712+ "anyhow",
1713+ "matrix-sdk",
1714+ "tokio",
1715+ "tracing-subscriber",
1716+ "url",
1717+]
1718+
1719+[[package]]
1720+name = "example-custom-events"
1721+version = "0.1.0"
1722+dependencies = [
1723+ "anyhow",
1724+ "matrix-sdk",
1725+ "serde",
1726+ "tokio",
1727+ "tracing-subscriber",
1728+]
1729+
1730+[[package]]
1731+name = "example-emoji-verification"
1732+version = "0.1.0"
1733+dependencies = [
1734+ "anyhow",
1735+ "clap",
1736+ "futures-util",
1737+ "matrix-sdk",
1738+ "tokio",
1739+ "tracing-subscriber",
1740+ "url",
1741+]
1742+
1743+[[package]]
1744+name = "example-get-profiles"
1745+version = "0.1.0"
1746+dependencies = [
1747+ "anyhow",
1748+ "matrix-sdk",
1749+ "tokio",
1750+ "tracing-subscriber",
1751+ "url",
1752+]
1753+
1754+[[package]]
1755+name = "example-getting-started"
1756+version = "0.1.0"
1757+dependencies = [
1758+ "anyhow",
1759+ "matrix-sdk",
1760+ "tokio",
1761+ "tracing-subscriber",
1762+]
1763+
1764+[[package]]
1765+name = "example-image-bot"
1766+version = "0.1.0"
1767+dependencies = [
1768+ "anyhow",
1769+ "matrix-sdk",
1770+ "mime",
1771+ "tokio",
1772+ "tracing-subscriber",
1773+ "url",
1774+]
1775+
1776+[[package]]
1777+name = "example-login"
1778+version = "0.1.0"
1779+dependencies = [
1780+ "anyhow",
1781+ "matrix-sdk",
1782+ "tokio",
1783+ "tracing-subscriber",
1784+ "url",
1785+]
1786+
1787+[[package]]
1788+name = "example-oauth-cli"
1789+version = "0.1.0"
1790+dependencies = [
1791+ "anyhow",
1792+ "dirs",
1793+ "futures-util",
1794+ "matrix-sdk",
1795+ "matrix-sdk-ui",
1796+ "rand 0.10.1",
1797+ "serde",
1798+ "serde_json",
1799+ "tokio",
1800+ "tracing-subscriber",
1801+ "url",
1802+]
1803+
1804+[[package]]
1805+name = "example-persist-session"
1806+version = "0.1.0"
1807+dependencies = [
1808+ "anyhow",
1809+ "dirs",
1810+ "matrix-sdk",
1811+ "rand 0.10.1",
1812+ "serde",
1813+ "serde_json",
1814+ "tokio",
1815+ "tracing-subscriber",
1816+]
1817+
1818+[[package]]
1819+name = "example-qr-login"
1820+version = "0.1.0"
1821+dependencies = [
1822+ "anyhow",
1823+ "clap",
1824+ "futures-util",
1825+ "matrix-sdk",
1826+ "tokio",
1827+ "tracing-subscriber",
1828+ "url",
1829+]
1830+
1831+[[package]]
1832+name = "example-secret-storage"
1833+version = "0.1.0"
1834+dependencies = [
1835+ "anyhow",
1836+ "clap",
1837+ "matrix-sdk",
1838+ "tokio",
1839+ "tracing-subscriber",
1840+ "url",
1841+]
1842+
1843+[[package]]
1844+name = "example-timeline"
1845+version = "0.1.0"
1846+dependencies = [
1847+ "anyhow",
1848+ "clap",
1849+ "futures-util",
1850+ "matrix-sdk",
1851+ "matrix-sdk-ui",
1852+ "tokio",
1853+ "tracing-subscriber",
1854+ "url",
1855+]
1856+
1857+[[package]]
1858+name = "extension-trait"
1859+version = "1.0.2"
1860+source = "registry+https://github.com/rust-lang/crates.io-index"
1861+checksum = "dd65f1b59dd22d680c7a626cc4a000c1e03d241c51c3e034d2bc9f1e90734f9b"
1862+dependencies = [
1863+ "proc-macro2",
1864+ "quote",
1865+ "syn 2.0.101",
1866+]
1867+
1868+[[package]]
1869+name = "eyeball"
1870+version = "0.8.8"
1871+source = "registry+https://github.com/rust-lang/crates.io-index"
1872+checksum = "d93bd0ebf93d61d6332d3c09a96e97975968a44e19a64c947bde06e6baff383f"
1873+dependencies = [
1874+ "futures-core",
1875+ "readlock",
1876+ "readlock-tokio",
1877+ "tokio",
1878+ "tokio-util",
1879+ "tracing",
1880+]
1881+
1882+[[package]]
1883+name = "eyeball-im"
1884+version = "0.8.0"
1885+source = "registry+https://github.com/rust-lang/crates.io-index"
1886+checksum = "4790c03df183c2b46665c1a58118c04fd3e3976ec2fe16a0aa00e00c9eea7754"
1887+dependencies = [
1888+ "futures-core",
1889+ "imbl",
1890+ "tokio",
1891+ "tracing",
1892+]
1893+
1894+[[package]]
1895+name = "eyeball-im-util"
1896+version = "0.10.0"
1897+source = "registry+https://github.com/rust-lang/crates.io-index"
1898+checksum = "809fa2e8e59c25a41f5b2440aa937f1e84df6ae48b707e65f69ce259b1c44bda"
1899+dependencies = [
1900+ "arrayvec",
1901+ "eyeball-im",
1902+ "futures-core",
1903+ "imbl",
1904+ "pin-project-lite",
1905+ "smallvec",
1906+]
1907+
1908+[[package]]
1909+name = "eyre"
1910+version = "0.6.12"
1911+source = "registry+https://github.com/rust-lang/crates.io-index"
1912+checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec"
1913+dependencies = [
1914+ "indenter",
1915+ "once_cell",
1916+]
1917+
1918+[[package]]
1919+name = "fallible-iterator"
1920+version = "0.3.0"
1921+source = "registry+https://github.com/rust-lang/crates.io-index"
1922+checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
1923+
1924+[[package]]
1925+name = "fallible-streaming-iterator"
1926+version = "0.1.9"
1927+source = "registry+https://github.com/rust-lang/crates.io-index"
1928+checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
1929+
1930+[[package]]
1931+name = "fancy-regex"
1932+version = "0.11.0"
1933+source = "registry+https://github.com/rust-lang/crates.io-index"
1934+checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
1935+dependencies = [
1936+ "bit-set",
1937+ "regex",
1938+]
1939+
1940+[[package]]
1941+name = "fancy_constructor"
1942+version = "2.1.0"
1943+source = "registry+https://github.com/rust-lang/crates.io-index"
1944+checksum = "28a27643a5d05f3a22f5afd6e0d0e6e354f92d37907006f97b84b9cb79082198"
1945+dependencies = [
1946+ "macroific",
1947+ "proc-macro2",
1948+ "quote",
1949+ "syn 2.0.101",
1950+]
1951+
1952+[[package]]
1953+name = "fastdivide"
1954+version = "0.4.2"
1955+source = "registry+https://github.com/rust-lang/crates.io-index"
1956+checksum = "9afc2bd4d5a73106dd53d10d73d3401c2f32730ba2c0b93ddb888a8983680471"
1957+
1958+[[package]]
1959+name = "fastrand"
1960+version = "2.2.0"
1961+source = "registry+https://github.com/rust-lang/crates.io-index"
1962+checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4"
1963+
1964+[[package]]
1965+name = "fiat-crypto"
1966+version = "0.2.9"
1967+source = "registry+https://github.com/rust-lang/crates.io-index"
1968+checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
1969+
1970+[[package]]
1971+name = "filedescriptor"
1972+version = "0.8.3"
1973+source = "registry+https://github.com/rust-lang/crates.io-index"
1974+checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d"
1975+dependencies = [
1976+ "libc",
1977+ "thiserror 1.0.63",
1978+ "winapi",
1979+]
1980+
1981+[[package]]
1982+name = "find-msvc-tools"
1983+version = "0.1.7"
1984+source = "registry+https://github.com/rust-lang/crates.io-index"
1985+checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41"
1986+
1987+[[package]]
1988+name = "findshlibs"
1989+version = "0.10.2"
1990+source = "registry+https://github.com/rust-lang/crates.io-index"
1991+checksum = "40b9e59cd0f7e0806cca4be089683ecb6434e602038df21fe6bf6711b2f07f64"
1992+dependencies = [
1993+ "cc",
1994+ "lazy_static",
1995+ "libc",
1996+ "winapi",
1997+]
1998+
1999+[[package]]
2000+name = "finl_unicode"
2001+version = "1.4.0"
2002+source = "registry+https://github.com/rust-lang/crates.io-index"
2003+checksum = "9844ddc3a6e533d62bba727eb6c28b5d360921d5175e9ff0f1e621a5c590a4d5"
2004+
2005+[[package]]
2006+name = "fixedbitset"
2007+version = "0.4.2"
2008+source = "registry+https://github.com/rust-lang/crates.io-index"
2009+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
2010+
2011+[[package]]
2012+name = "flate2"
2013+version = "1.1.5"
2014+source = "registry+https://github.com/rust-lang/crates.io-index"
2015+checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
2016+dependencies = [
2017+ "crc32fast",
2018+ "miniz_oxide",
2019+]
2020+
2021+[[package]]
2022+name = "fnv"
2023+version = "1.0.7"
2024+source = "registry+https://github.com/rust-lang/crates.io-index"
2025+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
2026+
2027+[[package]]
2028+name = "foldhash"
2029+version = "0.1.5"
2030+source = "registry+https://github.com/rust-lang/crates.io-index"
2031+checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
2032+
2033+[[package]]
2034+name = "foldhash"
2035+version = "0.2.0"
2036+source = "registry+https://github.com/rust-lang/crates.io-index"
2037+checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
2038+
2039+[[package]]
2040+name = "form_urlencoded"
2041+version = "1.2.2"
2042+source = "registry+https://github.com/rust-lang/crates.io-index"
2043+checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
2044+dependencies = [
2045+ "percent-encoding",
2046+]
2047+
2048+[[package]]
2049+name = "fs-err"
2050+version = "2.11.0"
2051+source = "registry+https://github.com/rust-lang/crates.io-index"
2052+checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
2053+dependencies = [
2054+ "autocfg",
2055+]
2056+
2057+[[package]]
2058+name = "fs4"
2059+version = "0.13.1"
2060+source = "registry+https://github.com/rust-lang/crates.io-index"
2061+checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4"
2062+dependencies = [
2063+ "rustix",
2064+ "windows-sys 0.59.0",
2065+]
2066+
2067+[[package]]
2068+name = "fs_extra"
2069+version = "1.3.0"
2070+source = "registry+https://github.com/rust-lang/crates.io-index"
2071+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
2072+
2073+[[package]]
2074+name = "futures"
2075+version = "0.3.31"
2076+source = "registry+https://github.com/rust-lang/crates.io-index"
2077+checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
2078+dependencies = [
2079+ "futures-channel",
2080+ "futures-core",
2081+ "futures-executor",
2082+ "futures-io",
2083+ "futures-sink",
2084+ "futures-task",
2085+ "futures-util",
2086+]
2087+
2088+[[package]]
2089+name = "futures-channel"
2090+version = "0.3.31"
2091+source = "registry+https://github.com/rust-lang/crates.io-index"
2092+checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
2093+dependencies = [
2094+ "futures-core",
2095+ "futures-sink",
2096+]
2097+
2098+[[package]]
2099+name = "futures-core"
2100+version = "0.3.31"
2101+source = "registry+https://github.com/rust-lang/crates.io-index"
2102+checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
2103+
2104+[[package]]
2105+name = "futures-executor"
2106+version = "0.3.31"
2107+source = "registry+https://github.com/rust-lang/crates.io-index"
2108+checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
2109+dependencies = [
2110+ "futures-core",
2111+ "futures-task",
2112+ "futures-util",
2113+]
2114+
2115+[[package]]
2116+name = "futures-io"
2117+version = "0.3.31"
2118+source = "registry+https://github.com/rust-lang/crates.io-index"
2119+checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
2120+
2121+[[package]]
2122+name = "futures-macro"
2123+version = "0.3.31"
2124+source = "registry+https://github.com/rust-lang/crates.io-index"
2125+checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
2126+dependencies = [
2127+ "proc-macro2",
2128+ "quote",
2129+ "syn 2.0.101",
2130+]
2131+
2132+[[package]]
2133+name = "futures-sink"
2134+version = "0.3.31"
2135+source = "registry+https://github.com/rust-lang/crates.io-index"
2136+checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
2137+
2138+[[package]]
2139+name = "futures-task"
2140+version = "0.3.31"
2141+source = "registry+https://github.com/rust-lang/crates.io-index"
2142+checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
2143+
2144+[[package]]
2145+name = "futures-util"
2146+version = "0.3.31"
2147+source = "registry+https://github.com/rust-lang/crates.io-index"
2148+checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
2149+dependencies = [
2150+ "futures-channel",
2151+ "futures-core",
2152+ "futures-io",
2153+ "futures-macro",
2154+ "futures-sink",
2155+ "futures-task",
2156+ "memchr",
2157+ "pin-project-lite",
2158+ "pin-utils",
2159+ "slab",
2160+]
2161+
2162+[[package]]
2163+name = "fuzzy-matcher"
2164+version = "0.3.7"
2165+source = "registry+https://github.com/rust-lang/crates.io-index"
2166+checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"
2167+dependencies = [
2168+ "thread_local",
2169+]
2170+
2171+[[package]]
2172+name = "generator"
2173+version = "0.8.7"
2174+source = "registry+https://github.com/rust-lang/crates.io-index"
2175+checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2"
2176+dependencies = [
2177+ "cc",
2178+ "cfg-if",
2179+ "libc",
2180+ "log",
2181+ "rustversion",
2182+ "windows",
2183+]
2184+
2185+[[package]]
2186+name = "generic-array"
2187+version = "0.14.7"
2188+source = "registry+https://github.com/rust-lang/crates.io-index"
2189+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
2190+dependencies = [
2191+ "typenum",
2192+ "version_check",
2193+]
2194+
2195+[[package]]
2196+name = "getrandom"
2197+version = "0.2.15"
2198+source = "registry+https://github.com/rust-lang/crates.io-index"
2199+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
2200+dependencies = [
2201+ "cfg-if",
2202+ "js-sys",
2203+ "libc",
2204+ "wasi",
2205+ "wasm-bindgen",
2206+]
2207+
2208+[[package]]
2209+name = "getrandom"
2210+version = "0.3.4"
2211+source = "registry+https://github.com/rust-lang/crates.io-index"
2212+checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
2213+dependencies = [
2214+ "cfg-if",
2215+ "js-sys",
2216+ "libc",
2217+ "r-efi 5.3.0",
2218+ "wasip2",
2219+ "wasm-bindgen",
2220+]
2221+
2222+[[package]]
2223+name = "getrandom"
2224+version = "0.4.2"
2225+source = "registry+https://github.com/rust-lang/crates.io-index"
2226+checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
2227+dependencies = [
2228+ "cfg-if",
2229+ "js-sys",
2230+ "libc",
2231+ "r-efi 6.0.0",
2232+ "rand_core 0.10.0",
2233+ "wasip2",
2234+ "wasip3",
2235+ "wasm-bindgen",
2236+]
2237+
2238+[[package]]
2239+name = "gimli"
2240+version = "0.32.3"
2241+source = "registry+https://github.com/rust-lang/crates.io-index"
2242+checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
2243+
2244+[[package]]
2245+name = "glob"
2246+version = "0.3.3"
2247+source = "registry+https://github.com/rust-lang/crates.io-index"
2248+checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
2249+
2250+[[package]]
2251+name = "gloo-timers"
2252+version = "0.3.0"
2253+source = "registry+https://github.com/rust-lang/crates.io-index"
2254+checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994"
2255+dependencies = [
2256+ "futures-channel",
2257+ "futures-core",
2258+ "js-sys",
2259+ "wasm-bindgen",
2260+]
2261+
2262+[[package]]
2263+name = "gloo-utils"
2264+version = "0.2.0"
2265+source = "registry+https://github.com/rust-lang/crates.io-index"
2266+checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa"
2267+dependencies = [
2268+ "js-sys",
2269+ "serde",
2270+ "serde_json",
2271+ "wasm-bindgen",
2272+ "web-sys",
2273+]
2274+
2275+[[package]]
2276+name = "goblin"
2277+version = "0.8.2"
2278+source = "registry+https://github.com/rust-lang/crates.io-index"
2279+checksum = "1b363a30c165f666402fe6a3024d3bec7ebc898f96a4a23bd1c99f8dbf3f4f47"
2280+dependencies = [
2281+ "log",
2282+ "plain",
2283+ "scroll",
2284+]
2285+
2286+[[package]]
2287+name = "goblin"
2288+version = "0.9.3"
2289+source = "registry+https://github.com/rust-lang/crates.io-index"
2290+checksum = "daa0a64d21a7eb230583b4c5f4e23b7e4e57974f96620f42a7e75e08ae66d745"
2291+dependencies = [
2292+ "log",
2293+ "plain",
2294+ "scroll",
2295+]
2296+
2297+[[package]]
2298+name = "growable-bloom-filter"
2299+version = "2.1.1"
2300+source = "registry+https://github.com/rust-lang/crates.io-index"
2301+checksum = "d174ccb4ba660d431329e7f0797870d0a4281e36353ec4b4a3c5eab6c2cfb6f1"
2302+dependencies = [
2303+ "serde",
2304+ "serde_bytes",
2305+ "serde_derive",
2306+ "xxhash-rust",
2307+]
2308+
2309+[[package]]
2310+name = "h2"
2311+version = "0.4.5"
2312+source = "registry+https://github.com/rust-lang/crates.io-index"
2313+checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"
2314+dependencies = [
2315+ "atomic-waker",
2316+ "bytes",
2317+ "fnv",
2318+ "futures-core",
2319+ "futures-sink",
2320+ "http",
2321+ "indexmap",
2322+ "slab",
2323+ "tokio",
2324+ "tokio-util",
2325+ "tracing",
2326+]
2327+
2328+[[package]]
2329+name = "half"
2330+version = "2.4.1"
2331+source = "registry+https://github.com/rust-lang/crates.io-index"
2332+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
2333+dependencies = [
2334+ "cfg-if",
2335+ "crunchy",
2336+]
2337+
2338+[[package]]
2339+name = "hashbrown"
2340+version = "0.15.2"
2341+source = "registry+https://github.com/rust-lang/crates.io-index"
2342+checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
2343+dependencies = [
2344+ "foldhash 0.1.5",
2345+]
2346+
2347+[[package]]
2348+name = "hashbrown"
2349+version = "0.16.1"
2350+source = "registry+https://github.com/rust-lang/crates.io-index"
2351+checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
2352+dependencies = [
2353+ "allocator-api2",
2354+ "equivalent",
2355+ "foldhash 0.2.0",
2356+]
2357+
2358+[[package]]
2359+name = "hashlink"
2360+version = "0.10.0"
2361+source = "registry+https://github.com/rust-lang/crates.io-index"
2362+checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"
2363+dependencies = [
2364+ "hashbrown 0.15.2",
2365+]
2366+
2367+[[package]]
2368+name = "headers"
2369+version = "0.4.1"
2370+source = "registry+https://github.com/rust-lang/crates.io-index"
2371+checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb"
2372+dependencies = [
2373+ "base64",
2374+ "bytes",
2375+ "headers-core",
2376+ "http",
2377+ "httpdate",
2378+ "mime",
2379+ "sha1",
2380+]
2381+
2382+[[package]]
2383+name = "headers-core"
2384+version = "0.3.0"
2385+source = "registry+https://github.com/rust-lang/crates.io-index"
2386+checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4"
2387+dependencies = [
2388+ "http",
2389+]
2390+
2391+[[package]]
2392+name = "heck"
2393+version = "0.5.0"
2394+source = "registry+https://github.com/rust-lang/crates.io-index"
2395+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
2396+
2397+[[package]]
2398+name = "hermit-abi"
2399+version = "0.3.9"
2400+source = "registry+https://github.com/rust-lang/crates.io-index"
2401+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
2402+
2403+[[package]]
2404+name = "hermit-abi"
2405+version = "0.5.2"
2406+source = "registry+https://github.com/rust-lang/crates.io-index"
2407+checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
2408+
2409+[[package]]
2410+name = "hex"
2411+version = "0.4.3"
2412+source = "registry+https://github.com/rust-lang/crates.io-index"
2413+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
2414+
2415+[[package]]
2416+name = "hkdf"
2417+version = "0.12.4"
2418+source = "registry+https://github.com/rust-lang/crates.io-index"
2419+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
2420+dependencies = [
2421+ "hmac",
2422+]
2423+
2424+[[package]]
2425+name = "hmac"
2426+version = "0.12.1"
2427+source = "registry+https://github.com/rust-lang/crates.io-index"
2428+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
2429+dependencies = [
2430+ "digest",
2431+]
2432+
2433+[[package]]
2434+name = "hostname"
2435+version = "0.4.1"
2436+source = "registry+https://github.com/rust-lang/crates.io-index"
2437+checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65"
2438+dependencies = [
2439+ "cfg-if",
2440+ "libc",
2441+ "windows-link 0.1.1",
2442+]
2443+
2444+[[package]]
2445+name = "html5ever"
2446+version = "0.39.0"
2447+source = "registry+https://github.com/rust-lang/crates.io-index"
2448+checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8"
2449+dependencies = [
2450+ "log",
2451+ "markup5ever",
2452+]
2453+
2454+[[package]]
2455+name = "htmlescape"
2456+version = "0.3.1"
2457+source = "registry+https://github.com/rust-lang/crates.io-index"
2458+checksum = "e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163"
2459+
2460+[[package]]
2461+name = "http"
2462+version = "1.3.1"
2463+source = "registry+https://github.com/rust-lang/crates.io-index"
2464+checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565"
2465+dependencies = [
2466+ "bytes",
2467+ "fnv",
2468+ "itoa",
2469+]
2470+
2471+[[package]]
2472+name = "http-auth"
2473+version = "0.1.10"
2474+source = "registry+https://github.com/rust-lang/crates.io-index"
2475+checksum = "150fa4a9462ef926824cf4519c84ed652ca8f4fbae34cb8af045b5cbcaf98822"
2476+dependencies = [
2477+ "memchr",
2478+]
2479+
2480+[[package]]
2481+name = "http-body"
2482+version = "1.0.1"
2483+source = "registry+https://github.com/rust-lang/crates.io-index"
2484+checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
2485+dependencies = [
2486+ "bytes",
2487+ "http",
2488+]
2489+
2490+[[package]]
2491+name = "http-body-util"
2492+version = "0.1.2"
2493+source = "registry+https://github.com/rust-lang/crates.io-index"
2494+checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
2495+dependencies = [
2496+ "bytes",
2497+ "futures-util",
2498+ "http",
2499+ "http-body",
2500+ "pin-project-lite",
2501+]
2502+
2503+[[package]]
2504+name = "httparse"
2505+version = "1.9.4"
2506+source = "registry+https://github.com/rust-lang/crates.io-index"
2507+checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
2508+
2509+[[package]]
2510+name = "httpdate"
2511+version = "1.0.3"
2512+source = "registry+https://github.com/rust-lang/crates.io-index"
2513+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
2514+
2515+[[package]]
2516+name = "hyper"
2517+version = "1.7.0"
2518+source = "registry+https://github.com/rust-lang/crates.io-index"
2519+checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e"
2520+dependencies = [
2521+ "atomic-waker",
2522+ "bytes",
2523+ "futures-channel",
2524+ "futures-core",
2525+ "h2",
2526+ "http",
2527+ "http-body",
2528+ "httparse",
2529+ "httpdate",
2530+ "itoa",
2531+ "pin-project-lite",
2532+ "pin-utils",
2533+ "smallvec",
2534+ "tokio",
2535+ "want",
2536+]
2537+
2538+[[package]]
2539+name = "hyper-rustls"
2540+version = "0.27.2"
2541+source = "registry+https://github.com/rust-lang/crates.io-index"
2542+checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
2543+dependencies = [
2544+ "futures-util",
2545+ "http",
2546+ "hyper",
2547+ "hyper-util",
2548+ "rustls",
2549+ "rustls-pki-types",
2550+ "tokio",
2551+ "tokio-rustls",
2552+ "tower-service",
2553+]
2554+
2555+[[package]]
2556+name = "hyper-util"
2557+version = "0.1.16"
2558+source = "registry+https://github.com/rust-lang/crates.io-index"
2559+checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e"
2560+dependencies = [
2561+ "base64",
2562+ "bytes",
2563+ "futures-channel",
2564+ "futures-core",
2565+ "futures-util",
2566+ "http",
2567+ "http-body",
2568+ "hyper",
2569+ "ipnet",
2570+ "libc",
2571+ "percent-encoding",
2572+ "pin-project-lite",
2573+ "socket2 0.6.0",
2574+ "tokio",
2575+ "tower-service",
2576+ "tracing",
2577+]
2578+
2579+[[package]]
2580+name = "iana-time-zone"
2581+version = "0.1.60"
2582+source = "registry+https://github.com/rust-lang/crates.io-index"
2583+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
2584+dependencies = [
2585+ "android_system_properties",
2586+ "core-foundation-sys",
2587+ "iana-time-zone-haiku",
2588+ "js-sys",
2589+ "wasm-bindgen",
2590+ "windows-core 0.52.0",
2591+]
2592+
2593+[[package]]
2594+name = "iana-time-zone-haiku"
2595+version = "0.1.2"
2596+source = "registry+https://github.com/rust-lang/crates.io-index"
2597+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
2598+dependencies = [
2599+ "cc",
2600+]
2601+
2602+[[package]]
2603+name = "icu_collections"
2604+version = "1.5.0"
2605+source = "registry+https://github.com/rust-lang/crates.io-index"
2606+checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
2607+dependencies = [
2608+ "displaydoc",
2609+ "yoke",
2610+ "zerofrom",
2611+ "zerovec",
2612+]
2613+
2614+[[package]]
2615+name = "icu_locid"
2616+version = "1.5.0"
2617+source = "registry+https://github.com/rust-lang/crates.io-index"
2618+checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
2619+dependencies = [
2620+ "displaydoc",
2621+ "litemap",
2622+ "tinystr",
2623+ "writeable",
2624+ "zerovec",
2625+]
2626+
2627+[[package]]
2628+name = "icu_locid_transform"
2629+version = "1.5.0"
2630+source = "registry+https://github.com/rust-lang/crates.io-index"
2631+checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
2632+dependencies = [
2633+ "displaydoc",
2634+ "icu_locid",
2635+ "icu_locid_transform_data",
2636+ "icu_provider",
2637+ "tinystr",
2638+ "zerovec",
2639+]
2640+
2641+[[package]]
2642+name = "icu_locid_transform_data"
2643+version = "1.5.0"
2644+source = "registry+https://github.com/rust-lang/crates.io-index"
2645+checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
2646+
2647+[[package]]
2648+name = "icu_normalizer"
2649+version = "1.5.0"
2650+source = "registry+https://github.com/rust-lang/crates.io-index"
2651+checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
2652+dependencies = [
2653+ "displaydoc",
2654+ "icu_collections",
2655+ "icu_normalizer_data",
2656+ "icu_properties",
2657+ "icu_provider",
2658+ "smallvec",
2659+ "utf16_iter",
2660+ "utf8_iter",
2661+ "write16",
2662+ "zerovec",
2663+]
2664+
2665+[[package]]
2666+name = "icu_normalizer_data"
2667+version = "1.5.0"
2668+source = "registry+https://github.com/rust-lang/crates.io-index"
2669+checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
2670+
2671+[[package]]
2672+name = "icu_properties"
2673+version = "1.5.1"
2674+source = "registry+https://github.com/rust-lang/crates.io-index"
2675+checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"
2676+dependencies = [
2677+ "displaydoc",
2678+ "icu_collections",
2679+ "icu_locid_transform",
2680+ "icu_properties_data",
2681+ "icu_provider",
2682+ "tinystr",
2683+ "zerovec",
2684+]
2685+
2686+[[package]]
2687+name = "icu_properties_data"
2688+version = "1.5.0"
2689+source = "registry+https://github.com/rust-lang/crates.io-index"
2690+checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
2691+
2692+[[package]]
2693+name = "icu_provider"
2694+version = "1.5.0"
2695+source = "registry+https://github.com/rust-lang/crates.io-index"
2696+checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
2697+dependencies = [
2698+ "displaydoc",
2699+ "icu_locid",
2700+ "icu_provider_macros",
2701+ "stable_deref_trait",
2702+ "tinystr",
2703+ "writeable",
2704+ "yoke",
2705+ "zerofrom",
2706+ "zerovec",
2707+]
2708+
2709+[[package]]
2710+name = "icu_provider_macros"
2711+version = "1.5.0"
2712+source = "registry+https://github.com/rust-lang/crates.io-index"
2713+checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
2714+dependencies = [
2715+ "proc-macro2",
2716+ "quote",
2717+ "syn 2.0.101",
2718+]
2719+
2720+[[package]]
2721+name = "id-arena"
2722+version = "2.3.0"
2723+source = "registry+https://github.com/rust-lang/crates.io-index"
2724+checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
2725+
2726+[[package]]
2727+name = "ident_case"
2728+version = "1.0.1"
2729+source = "registry+https://github.com/rust-lang/crates.io-index"
2730+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
2731+
2732+[[package]]
2733+name = "idna"
2734+version = "1.1.0"
2735+source = "registry+https://github.com/rust-lang/crates.io-index"
2736+checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
2737+dependencies = [
2738+ "idna_adapter",
2739+ "smallvec",
2740+ "utf8_iter",
2741+]
2742+
2743+[[package]]
2744+name = "idna_adapter"
2745+version = "1.2.0"
2746+source = "registry+https://github.com/rust-lang/crates.io-index"
2747+checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71"
2748+dependencies = [
2749+ "icu_normalizer",
2750+ "icu_properties",
2751+]
2752+
2753+[[package]]
2754+name = "image"
2755+version = "0.25.9"
2756+source = "registry+https://github.com/rust-lang/crates.io-index"
2757+checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a"
2758+dependencies = [
2759+ "bytemuck",
2760+ "byteorder-lite",
2761+ "moxcms",
2762+ "num-traits",
2763+]
2764+
2765+[[package]]
2766+name = "imbl"
2767+version = "6.1.0"
2768+source = "registry+https://github.com/rust-lang/crates.io-index"
2769+checksum = "0fade8ae6828627ad1fa094a891eccfb25150b383047190a3648d66d06186501"
2770+dependencies = [
2771+ "archery",
2772+ "bitmaps",
2773+ "imbl-sized-chunks",
2774+ "rand_core 0.9.3",
2775+ "rand_xoshiro",
2776+ "serde",
2777+ "version_check",
2778+]
2779+
2780+[[package]]
2781+name = "imbl-sized-chunks"
2782+version = "0.1.3"
2783+source = "registry+https://github.com/rust-lang/crates.io-index"
2784+checksum = "8f4241005618a62f8d57b2febd02510fb96e0137304728543dfc5fd6f052c22d"
2785+dependencies = [
2786+ "bitmaps",
2787+]
2788+
2789+[[package]]
2790+name = "impartial-ord"
2791+version = "1.0.6"
2792+source = "registry+https://github.com/rust-lang/crates.io-index"
2793+checksum = "0ab604ee7085efba6efc65e4ebca0e9533e3aff6cb501d7d77b211e3a781c6d5"
2794+dependencies = [
2795+ "proc-macro2",
2796+ "quote",
2797+ "syn 2.0.101",
2798+]
2799+
2800+[[package]]
2801+name = "include_dir"
2802+version = "0.7.4"
2803+source = "registry+https://github.com/rust-lang/crates.io-index"
2804+checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd"
2805+dependencies = [
2806+ "include_dir_macros",
2807+]
2808+
2809+[[package]]
2810+name = "include_dir_macros"
2811+version = "0.7.4"
2812+source = "registry+https://github.com/rust-lang/crates.io-index"
2813+checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75"
2814+dependencies = [
2815+ "proc-macro2",
2816+ "quote",
2817+]
2818+
2819+[[package]]
2820+name = "indenter"
2821+version = "0.3.3"
2822+source = "registry+https://github.com/rust-lang/crates.io-index"
2823+checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
2824+
2825+[[package]]
2826+name = "indexmap"
2827+version = "2.12.1"
2828+source = "registry+https://github.com/rust-lang/crates.io-index"
2829+checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2"
2830+dependencies = [
2831+ "equivalent",
2832+ "hashbrown 0.16.1",
2833+ "serde",
2834+ "serde_core",
2835+]
2836+
2837+[[package]]
2838+name = "indoc"
2839+version = "2.0.7"
2840+source = "registry+https://github.com/rust-lang/crates.io-index"
2841+checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
2842+dependencies = [
2843+ "rustversion",
2844+]
2845+
2846+[[package]]
2847+name = "inout"
2848+version = "0.1.3"
2849+source = "registry+https://github.com/rust-lang/crates.io-index"
2850+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
2851+dependencies = [
2852+ "block-padding",
2853+ "generic-array",
2854+]
2855+
2856+[[package]]
2857+name = "insta"
2858+version = "1.44.1"
2859+source = "registry+https://github.com/rust-lang/crates.io-index"
2860+checksum = "e8732d3774162a0851e3f2b150eb98f31a9885dd75985099421d393385a01dfd"
2861+dependencies = [
2862+ "console",
2863+ "once_cell",
2864+ "pest",
2865+ "pest_derive",
2866+ "serde",
2867+ "similar",
2868+]
2869+
2870+[[package]]
2871+name = "instability"
2872+version = "0.3.7"
2873+source = "registry+https://github.com/rust-lang/crates.io-index"
2874+checksum = "0bf9fed6d91cfb734e7476a06bde8300a1b94e217e1b523b6f0cd1a01998c71d"
2875+dependencies = [
2876+ "darling 0.20.10",
2877+ "indoc",
2878+ "proc-macro2",
2879+ "quote",
2880+ "syn 2.0.101",
2881+]
2882+
2883+[[package]]
2884+name = "inventory"
2885+version = "0.3.24"
2886+source = "registry+https://github.com/rust-lang/crates.io-index"
2887+checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b"
2888+dependencies = [
2889+ "rustversion",
2890+]
2891+
2892+[[package]]
2893+name = "ipnet"
2894+version = "2.9.0"
2895+source = "registry+https://github.com/rust-lang/crates.io-index"
2896+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
2897+
2898+[[package]]
2899+name = "iri-string"
2900+version = "0.7.8"
2901+source = "registry+https://github.com/rust-lang/crates.io-index"
2902+checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2"
2903+dependencies = [
2904+ "memchr",
2905+ "serde",
2906+]
2907+
2908+[[package]]
2909+name = "is-terminal"
2910+version = "0.4.16"
2911+source = "registry+https://github.com/rust-lang/crates.io-index"
2912+checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9"
2913+dependencies = [
2914+ "hermit-abi 0.5.2",
2915+ "libc",
2916+ "windows-sys 0.59.0",
2917+]
2918+
2919+[[package]]
2920+name = "itertools"
2921+version = "0.10.5"
2922+source = "registry+https://github.com/rust-lang/crates.io-index"
2923+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
2924+dependencies = [
2925+ "either",
2926+]
2927+
2928+[[package]]
2929+name = "itertools"
2930+version = "0.14.0"
2931+source = "registry+https://github.com/rust-lang/crates.io-index"
2932+checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
2933+dependencies = [
2934+ "either",
2935+]
2936+
2937+[[package]]
2938+name = "itoa"
2939+version = "1.0.11"
2940+source = "registry+https://github.com/rust-lang/crates.io-index"
2941+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
2942+
2943+[[package]]
2944+name = "jni"
2945+version = "0.21.1"
2946+source = "registry+https://github.com/rust-lang/crates.io-index"
2947+checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
2948+dependencies = [
2949+ "cesu8",
2950+ "cfg-if",
2951+ "combine",
2952+ "jni-sys",
2953+ "log",
2954+ "thiserror 1.0.63",
2955+ "walkdir",
2956+ "windows-sys 0.45.0",
2957+]
2958+
2959+[[package]]
2960+name = "jni-sys"
2961+version = "0.3.0"
2962+source = "registry+https://github.com/rust-lang/crates.io-index"
2963+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
2964+
2965+[[package]]
2966+name = "jobserver"
2967+version = "0.1.32"
2968+source = "registry+https://github.com/rust-lang/crates.io-index"
2969+checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
2970+dependencies = [
2971+ "libc",
2972+]
2973+
2974+[[package]]
2975+name = "js-sys"
2976+version = "0.3.91"
2977+source = "registry+https://github.com/rust-lang/crates.io-index"
2978+checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c"
2979+dependencies = [
2980+ "once_cell",
2981+ "wasm-bindgen",
2982+]
2983+
2984+[[package]]
2985+name = "js_int"
2986+version = "0.2.2"
2987+source = "registry+https://github.com/rust-lang/crates.io-index"
2988+checksum = "d937f95470b270ce8b8950207715d71aa8e153c0d44c6684d59397ed4949160a"
2989+dependencies = [
2990+ "serde",
2991+]
2992+
2993+[[package]]
2994+name = "js_option"
2995+version = "0.2.0"
2996+source = "registry+https://github.com/rust-lang/crates.io-index"
2997+checksum = "c7dd3e281add16813cf673bf74a32249b0aa0d1c8117519a17b3ada5e8552b3c"
2998+dependencies = [
2999+ "serde_core",
3000+]
3001+
3002+[[package]]
3003+name = "json-structural-diff"
3004+version = "0.2.0"
3005+source = "registry+https://github.com/rust-lang/crates.io-index"
3006+checksum = "e878e36a8a44c158505c2c818abdc1350413ad83dcb774a0459f6a7ef2b65cbf"
3007+dependencies = [
3008+ "difflib",
3009+ "regex",
3010+ "serde_json",
3011+]
3012+
3013+[[package]]
3014+name = "jvm-getter"
3015+version = "0.1.0"
3016+source = "registry+https://github.com/rust-lang/crates.io-index"
3017+checksum = "6a9353d43a802ba22de0de749f4aa51f3414a6a9b5037559eaac65584db65218"
3018+dependencies = [
3019+ "goblin 0.9.3",
3020+ "jni-sys",
3021+ "libc",
3022+ "windows-sys 0.60.2",
3023+]
3024+
3025+[[package]]
3026+name = "kasuari"
3027+version = "0.4.12"
3028+source = "registry+https://github.com/rust-lang/crates.io-index"
3029+checksum = "bde5057d6143cc94e861d90f591b9303d6716c6b9602309150bd068853c10899"
3030+dependencies = [
3031+ "hashbrown 0.16.1",
3032+ "portable-atomic",
3033+ "thiserror 2.0.18",
3034+]
3035+
3036+[[package]]
3037+name = "konst"
3038+version = "0.4.3"
3039+source = "registry+https://github.com/rust-lang/crates.io-index"
3040+checksum = "f660d5f887e3562f9ab6f4a14988795b694099d66b4f5dedc02d197ba9becb1d"
3041+dependencies = [
3042+ "const_panic",
3043+ "typewit",
3044+]
3045+
3046+[[package]]
3047+name = "lab"
3048+version = "0.11.0"
3049+source = "registry+https://github.com/rust-lang/crates.io-index"
3050+checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f"
3051+
3052+[[package]]
3053+name = "language-tags"
3054+version = "0.3.2"
3055+source = "registry+https://github.com/rust-lang/crates.io-index"
3056+checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
3057+dependencies = [
3058+ "serde",
3059+]
3060+
3061+[[package]]
3062+name = "lazy_static"
3063+version = "1.5.0"
3064+source = "registry+https://github.com/rust-lang/crates.io-index"
3065+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
3066+
3067+[[package]]
3068+name = "leb128fmt"
3069+version = "0.1.0"
3070+source = "registry+https://github.com/rust-lang/crates.io-index"
3071+checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
3072+
3073+[[package]]
3074+name = "levenshtein_automata"
3075+version = "0.2.1"
3076+source = "registry+https://github.com/rust-lang/crates.io-index"
3077+checksum = "0c2cdeb66e45e9f36bfad5bbdb4d2384e70936afbee843c6f6543f0c551ebb25"
3078+
3079+[[package]]
3080+name = "libc"
3081+version = "0.2.175"
3082+source = "registry+https://github.com/rust-lang/crates.io-index"
3083+checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"
3084+
3085+[[package]]
3086+name = "libm"
3087+version = "0.2.15"
3088+source = "registry+https://github.com/rust-lang/crates.io-index"
3089+checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
3090+
3091+[[package]]
3092+name = "libredox"
3093+version = "0.1.3"
3094+source = "registry+https://github.com/rust-lang/crates.io-index"
3095+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
3096+dependencies = [
3097+ "bitflags 2.10.0",
3098+ "libc",
3099+]
3100+
3101+[[package]]
3102+name = "libsqlite3-sys"
3103+version = "0.35.0"
3104+source = "registry+https://github.com/rust-lang/crates.io-index"
3105+checksum = "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f"
3106+dependencies = [
3107+ "cc",
3108+ "pkg-config",
3109+ "vcpkg",
3110+]
3111+
3112+[[package]]
3113+name = "line-clipping"
3114+version = "0.3.5"
3115+source = "registry+https://github.com/rust-lang/crates.io-index"
3116+checksum = "5f4de44e98ddbf09375cbf4d17714d18f39195f4f4894e8524501726fd9a8a4a"
3117+dependencies = [
3118+ "bitflags 2.10.0",
3119+]
3120+
3121+[[package]]
3122+name = "linux-raw-sys"
3123+version = "0.9.4"
3124+source = "registry+https://github.com/rust-lang/crates.io-index"
3125+checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
3126+
3127+[[package]]
3128+name = "litemap"
3129+version = "0.7.4"
3130+source = "registry+https://github.com/rust-lang/crates.io-index"
3131+checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104"
3132+
3133+[[package]]
3134+name = "litrs"
3135+version = "1.0.0"
3136+source = "registry+https://github.com/rust-lang/crates.io-index"
3137+checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
3138+
3139+[[package]]
3140+name = "lock_api"
3141+version = "0.4.12"
3142+source = "registry+https://github.com/rust-lang/crates.io-index"
3143+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
3144+dependencies = [
3145+ "autocfg",
3146+ "scopeguard",
3147+]
3148+
3149+[[package]]
3150+name = "log"
3151+version = "0.4.27"
3152+source = "registry+https://github.com/rust-lang/crates.io-index"
3153+checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
3154+
3155+[[package]]
3156+name = "log-panics"
3157+version = "2.1.0"
3158+source = "registry+https://github.com/rust-lang/crates.io-index"
3159+checksum = "68f9dd8546191c1850ecf67d22f5ff00a935b890d0e84713159a55495cc2ac5f"
3160+dependencies = [
3161+ "backtrace",
3162+ "log",
3163+]
3164+
3165+[[package]]
3166+name = "loom"
3167+version = "0.7.2"
3168+source = "registry+https://github.com/rust-lang/crates.io-index"
3169+checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca"
3170+dependencies = [
3171+ "cfg-if",
3172+ "generator",
3173+ "scoped-tls",
3174+ "tracing",
3175+ "tracing-subscriber",
3176+]
3177+
3178+[[package]]
3179+name = "lru"
3180+version = "0.16.4"
3181+source = "registry+https://github.com/rust-lang/crates.io-index"
3182+checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39"
3183+dependencies = [
3184+ "hashbrown 0.16.1",
3185+]
3186+
3187+[[package]]
3188+name = "lru-slab"
3189+version = "0.1.2"
3190+source = "registry+https://github.com/rust-lang/crates.io-index"
3191+checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
3192+
3193+[[package]]
3194+name = "lz4_flex"
3195+version = "0.13.1"
3196+source = "registry+https://github.com/rust-lang/crates.io-index"
3197+checksum = "7ef0d4ed8669f8f8826eb00dc878084aa8f253506c4fd5e8f58f5bce72ddb97e"
3198+
3199+[[package]]
3200+name = "mac_address"
3201+version = "1.1.8"
3202+source = "registry+https://github.com/rust-lang/crates.io-index"
3203+checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303"
3204+dependencies = [
3205+ "nix 0.29.0",
3206+ "winapi",
3207+]
3208+
3209+[[package]]
3210+name = "macroific"
3211+version = "2.0.0"
3212+source = "registry+https://github.com/rust-lang/crates.io-index"
3213+checksum = "89f276537b4b8f981bf1c13d79470980f71134b7bdcc5e6e911e910e556b0285"
3214+dependencies = [
3215+ "macroific_attr_parse",
3216+ "macroific_core",
3217+ "macroific_macro",
3218+]
3219+
3220+[[package]]
3221+name = "macroific_attr_parse"
3222+version = "2.0.0"
3223+source = "registry+https://github.com/rust-lang/crates.io-index"
3224+checksum = "ad4023761b45fcd36abed8fb7ae6a80456b0a38102d55e89a57d9a594a236be9"
3225+dependencies = [
3226+ "proc-macro2",
3227+ "quote",
3228+ "sealed",
3229+ "syn 2.0.101",
3230+]
3231+
3232+[[package]]
3233+name = "macroific_core"
3234+version = "2.0.0"
3235+source = "registry+https://github.com/rust-lang/crates.io-index"
3236+checksum = "d0a7594d3c14916fa55bef7e9d18c5daa9ed410dd37504251e4b75bbdeec33e3"
3237+dependencies = [
3238+ "proc-macro2",
3239+ "quote",
3240+ "sealed",
3241+ "syn 2.0.101",
3242+]
3243+
3244+[[package]]
3245+name = "macroific_macro"
3246+version = "2.0.0"
3247+source = "registry+https://github.com/rust-lang/crates.io-index"
3248+checksum = "4da6f2ed796261b0a74e2b52b42c693bb6dee1effba3a482c49592659f824b3b"
3249+dependencies = [
3250+ "macroific_attr_parse",
3251+ "macroific_core",
3252+ "proc-macro2",
3253+ "quote",
3254+ "syn 2.0.101",
3255+]
3256+
3257+[[package]]
3258+name = "maplit"
3259+version = "1.0.2"
3260+source = "registry+https://github.com/rust-lang/crates.io-index"
3261+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
3262+
3263+[[package]]
3264+name = "markup5ever"
3265+version = "0.39.0"
3266+source = "registry+https://github.com/rust-lang/crates.io-index"
3267+checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de"
3268+dependencies = [
3269+ "log",
3270+ "tendril",
3271+ "web_atoms",
3272+]
3273+
3274+[[package]]
3275+name = "matchers"
3276+version = "0.2.0"
3277+source = "registry+https://github.com/rust-lang/crates.io-index"
3278+checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
3279+dependencies = [
3280+ "regex-automata",
3281+]
3282+
3283+[[package]]
3284+name = "matchit"
3285+version = "0.8.4"
3286+source = "registry+https://github.com/rust-lang/crates.io-index"
3287+checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3"
3288+
3289+[[package]]
3290+name = "matrix-pickle"
3291+version = "0.2.1"
3292+source = "registry+https://github.com/rust-lang/crates.io-index"
3293+checksum = "4e2551de3bba2cc65b52dc6b268df6114011fe118ac24870fbcf1b35537bd721"
3294+dependencies = [
3295+ "matrix-pickle-derive",
3296+ "thiserror 1.0.63",
3297+]
3298+
3299+[[package]]
3300+name = "matrix-pickle-derive"
3301+version = "0.2.1"
3302+source = "registry+https://github.com/rust-lang/crates.io-index"
3303+checksum = "f75de44c3120d78e978adbcf6d453b20ba011f3c46363e52d1dbbc72f545e9fb"
3304+dependencies = [
3305+ "proc-macro-crate",
3306+ "proc-macro-error2",
3307+ "proc-macro2",
3308+ "quote",
3309+ "syn 2.0.101",
3310+]
3311+
3312+[[package]]
3313+name = "matrix-sdk"
3314+version = "0.18.0"
3315+dependencies = [
3316+ "anyhow",
3317+ "anymap2",
3318+ "aquamarine",
3319+ "as_variant",
3320+ "assert-json-diff",
3321+ "assert_matches",
3322+ "assert_matches2",
3323+ "async-channel",
3324+ "async-once-cell",
3325+ "async-stream",
3326+ "async-trait",
3327+ "axum",
3328+ "backon",
3329+ "bytes",
3330+ "bytesize",
3331+ "cfg-if",
3332+ "ctor",
3333+ "dirs",
3334+ "event-listener",
3335+ "eyeball",
3336+ "eyeball-im",
3337+ "eyre",
3338+ "futures-core",
3339+ "futures-executor",
3340+ "futures-util",
3341+ "gloo-timers",
3342+ "http",
3343+ "imbl",
3344+ "indexmap",
3345+ "insta",
3346+ "itertools 0.14.0",
3347+ "js_int",
3348+ "language-tags",
3349+ "matrix-sdk-base",
3350+ "matrix-sdk-common",
3351+ "matrix-sdk-ffi-macros",
3352+ "matrix-sdk-indexeddb",
3353+ "matrix-sdk-search",
3354+ "matrix-sdk-sqlite",
3355+ "matrix-sdk-test",
3356+ "matrix-sdk-test-utils",
3357+ "mime",
3358+ "mime2ext",
3359+ "oauth2",
3360+ "oauth2-reqwest",
3361+ "percent-encoding",
3362+ "pin-project-lite",
3363+ "proptest",
3364+ "rand 0.10.1",
3365+ "reqwest",
3366+ "ruma",
3367+ "rustls",
3368+ "rustls-native-certs",
3369+ "rustls-pki-types",
3370+ "serde",
3371+ "serde_html_form",
3372+ "serde_json",
3373+ "serde_urlencoded",
3374+ "sha2",
3375+ "similar-asserts",
3376+ "stream_assert",
3377+ "tempfile",
3378+ "thiserror 2.0.18",
3379+ "tokio",
3380+ "tokio-stream",
3381+ "tokio-test",
3382+ "tokio-util",
3383+ "tower",
3384+ "tracing",
3385+ "tracing-subscriber",
3386+ "uniffi",
3387+ "url",
3388+ "urlencoding",
3389+ "uuid",
3390+ "vodozemac",
3391+ "wasm-bindgen-test",
3392+ "webpki-roots",
3393+ "wiremock",
3394+ "zeroize",
3395+]
3396+
3397+[[package]]
3398+name = "matrix-sdk-base"
3399+version = "0.18.0"
3400+dependencies = [
3401+ "anyhow",
3402+ "as_variant",
3403+ "assert_matches",
3404+ "assert_matches2",
3405+ "assign",
3406+ "async-trait",
3407+ "bitflags 2.10.0",
3408+ "decancer",
3409+ "eyeball",
3410+ "eyeball-im",
3411+ "futures-executor",
3412+ "futures-util",
3413+ "getrandom 0.3.4",
3414+ "gloo-timers",
3415+ "growable-bloom-filter",
3416+ "http",
3417+ "matrix-sdk-common",
3418+ "matrix-sdk-crypto",
3419+ "matrix-sdk-store-encryption",
3420+ "matrix-sdk-test",
3421+ "matrix-sdk-test-utils",
3422+ "proptest",
3423+ "regex",
3424+ "ruma",
3425+ "serde",
3426+ "serde_json",
3427+ "similar-asserts",
3428+ "stream_assert",
3429+ "thiserror 2.0.18",
3430+ "tokio",
3431+ "tracing",
3432+ "unicode-normalization",
3433+ "uniffi",
3434+ "wasm-bindgen-test",
3435+]
3436+
3437+[[package]]
3438+name = "matrix-sdk-common"
3439+version = "0.18.0"
3440+dependencies = [
3441+ "assert_matches",
3442+ "assert_matches2",
3443+ "eyeball-im",
3444+ "futures-core",
3445+ "futures-executor",
3446+ "futures-util",
3447+ "getrandom 0.3.4",
3448+ "getrandom 0.4.2",
3449+ "gloo-timers",
3450+ "imbl",
3451+ "insta",
3452+ "js-sys",
3453+ "matrix-sdk-test-macros",
3454+ "matrix-sdk-test-utils",
3455+ "proptest",
3456+ "ruma",
3457+ "serde",
3458+ "serde_json",
3459+ "thiserror 2.0.18",
3460+ "tokio",
3461+ "tracing",
3462+ "tracing-subscriber",
3463+ "uniffi",
3464+ "wasm-bindgen",
3465+ "wasm-bindgen-futures",
3466+ "wasm-bindgen-test",
3467+ "web-sys",
3468+]
3469+
3470+[[package]]
3471+name = "matrix-sdk-crypto"
3472+version = "0.18.0"
3473+dependencies = [
3474+ "aes",
3475+ "anyhow",
3476+ "aquamarine",
3477+ "as_variant",
3478+ "assert_matches",
3479+ "assert_matches2",
3480+ "async-trait",
3481+ "bs58",
3482+ "byteorder",
3483+ "cfg-if",
3484+ "ctr",
3485+ "eyeball",
3486+ "futures-core",
3487+ "futures-executor",
3488+ "futures-util",
3489+ "hkdf",
3490+ "hmac",
3491+ "http",
3492+ "insta",
3493+ "itertools 0.14.0",
3494+ "js_option",
3495+ "matrix-sdk-common",
3496+ "matrix-sdk-qrcode",
3497+ "matrix-sdk-test",
3498+ "matrix-sdk-test-utils",
3499+ "pbkdf2",
3500+ "proptest",
3501+ "rand 0.10.1",
3502+ "rmp-serde",
3503+ "ruma",
3504+ "serde",
3505+ "serde_json",
3506+ "sha2",
3507+ "similar-asserts",
3508+ "stream_assert",
3509+ "subtle",
3510+ "thiserror 2.0.18",
3511+ "time",
3512+ "tokio",
3513+ "tokio-stream",
3514+ "tracing",
3515+ "ulid",
3516+ "uniffi",
3517+ "url",
3518+ "vodozemac",
3519+ "zeroize",
3520+]
3521+
3522+[[package]]
3523+name = "matrix-sdk-crypto-ffi"
3524+version = "0.1.0"
3525+dependencies = [
3526+ "anyhow",
3527+ "assert_matches2",
3528+ "futures-util",
3529+ "hmac",
3530+ "http",
3531+ "js_int",
3532+ "matrix-sdk-common",
3533+ "matrix-sdk-crypto",
3534+ "matrix-sdk-ffi-macros",
3535+ "matrix-sdk-sqlite",
3536+ "pbkdf2",
3537+ "rand 0.10.1",
3538+ "ruma",
3539+ "serde",
3540+ "serde_json",
3541+ "sha2",
3542+ "tempfile",
3543+ "thiserror 2.0.18",
3544+ "tokio",
3545+ "tracing-subscriber",
3546+ "uniffi",
3547+ "vergen-gitcl",
3548+ "vodozemac",
3549+ "zeroize",
3550+]
3551+
3552+[[package]]
3553+name = "matrix-sdk-ffi"
3554+version = "0.18.0"
3555+dependencies = [
3556+ "anyhow",
3557+ "async-compat",
3558+ "chrono",
3559+ "console_error_panic_hook",
3560+ "extension-trait",
3561+ "eyeball-im",
3562+ "futures-executor",
3563+ "futures-util",
3564+ "jni",
3565+ "jvm-getter",
3566+ "language-tags",
3567+ "log-panics",
3568+ "matrix-sdk",
3569+ "matrix-sdk-base",
3570+ "matrix-sdk-common",
3571+ "matrix-sdk-ffi-macros",
3572+ "matrix-sdk-ui",
3573+ "mime",
3574+ "oauth2",
3575+ "once_cell",
3576+ "paranoid-android",
3577+ "ruma",
3578+ "rustls-platform-verifier",
3579+ "sentry",
3580+ "sentry-tracing",
3581+ "serde",
3582+ "serde_json",
3583+ "similar-asserts",
3584+ "tempfile",
3585+ "thiserror 2.0.18",
3586+ "tokio",
3587+ "tracing",
3588+ "tracing-appender",
3589+ "tracing-core",
3590+ "tracing-subscriber",
3591+ "uniffi",
3592+ "url",
3593+ "uuid",
3594+ "vergen-gitcl",
3595+ "zeroize",
3596+]
3597+
3598+[[package]]
3599+name = "matrix-sdk-ffi-macros"
3600+version = "0.7.0"
3601+dependencies = [
3602+ "proc-macro2",
3603+ "quote",
3604+ "syn 2.0.101",
3605+]
3606+
3607+[[package]]
3608+name = "matrix-sdk-indexeddb"
3609+version = "0.18.0"
3610+dependencies = [
3611+ "assert_matches",
3612+ "assert_matches2",
3613+ "async-trait",
3614+ "base64",
3615+ "futures-util",
3616+ "getrandom 0.4.2",
3617+ "gloo-timers",
3618+ "gloo-utils",
3619+ "growable-bloom-filter",
3620+ "hkdf",
3621+ "js-sys",
3622+ "matrix-sdk-base",
3623+ "matrix-sdk-common",
3624+ "matrix-sdk-crypto",
3625+ "matrix-sdk-store-encryption",
3626+ "matrix-sdk-test",
3627+ "matrix_indexed_db_futures",
3628+ "rand 0.10.1",
3629+ "rmp-serde",
3630+ "ruma",
3631+ "serde",
3632+ "serde-wasm-bindgen",
3633+ "serde_json",
3634+ "sha2",
3635+ "thiserror 2.0.18",
3636+ "tokio",
3637+ "tracing",
3638+ "tracing-subscriber",
3639+ "uuid",
3640+ "wasm-bindgen",
3641+ "wasm-bindgen-test",
3642+ "web-sys",
3643+ "zeroize",
3644+]
3645+
3646+[[package]]
3647+name = "matrix-sdk-integration-testing"
3648+version = "0.1.0"
3649+dependencies = [
3650+ "anyhow",
3651+ "assert_matches",
3652+ "assert_matches2",
3653+ "assign",
3654+ "eyeball",
3655+ "eyeball-im",
3656+ "futures",
3657+ "futures-core",
3658+ "futures-util",
3659+ "http",
3660+ "json-structural-diff",
3661+ "matrix-sdk",
3662+ "matrix-sdk-base",
3663+ "matrix-sdk-common",
3664+ "matrix-sdk-test",
3665+ "matrix-sdk-test-utils",
3666+ "matrix-sdk-ui",
3667+ "rand 0.10.1",
3668+ "reqwest",
3669+ "serde_json",
3670+ "similar-asserts",
3671+ "stream_assert",
3672+ "tempfile",
3673+ "tokio",
3674+ "tracing",
3675+ "wiremock",
3676+]
3677+
3678+[[package]]
3679+name = "matrix-sdk-qrcode"
3680+version = "0.18.0"
3681+dependencies = [
3682+ "byteorder",
3683+ "image",
3684+ "qrcode",
3685+ "ruma",
3686+ "thiserror 2.0.18",
3687+ "vodozemac",
3688+]
3689+
3690+[[package]]
3691+name = "matrix-sdk-search"
3692+version = "0.18.0"
3693+dependencies = [
3694+ "aes",
3695+ "byteorder",
3696+ "ctr",
3697+ "hkdf",
3698+ "hmac",
3699+ "matrix-sdk-test",
3700+ "pbkdf2",
3701+ "rand 0.10.1",
3702+ "ruma",
3703+ "sha2",
3704+ "tantivy",
3705+ "tempfile",
3706+ "thiserror 2.0.18",
3707+ "tracing",
3708+ "zeroize",
3709+]
3710+
3711+[[package]]
3712+name = "matrix-sdk-sqlite"
3713+version = "0.18.0"
3714+dependencies = [
3715+ "as_variant",
3716+ "assert_matches",
3717+ "async-trait",
3718+ "deadpool 0.13.0",
3719+ "deadpool-sync",
3720+ "glob",
3721+ "itertools 0.14.0",
3722+ "matrix-sdk-base",
3723+ "matrix-sdk-common",
3724+ "matrix-sdk-crypto",
3725+ "matrix-sdk-store-encryption",
3726+ "matrix-sdk-test",
3727+ "matrix-sdk-test-utils",
3728+ "num_cpus",
3729+ "rmp-serde",
3730+ "ruma",
3731+ "rusqlite",
3732+ "serde",
3733+ "serde_json",
3734+ "serde_path_to_error",
3735+ "similar-asserts",
3736+ "tempfile",
3737+ "thiserror 2.0.18",
3738+ "tokio",
3739+ "tracing",
3740+ "vodozemac",
3741+ "zeroize",
3742+]
3743+
3744+[[package]]
3745+name = "matrix-sdk-store-encryption"
3746+version = "0.18.0"
3747+dependencies = [
3748+ "anyhow",
3749+ "base64",
3750+ "blake3",
3751+ "chacha20poly1305",
3752+ "getrandom 0.2.15",
3753+ "getrandom 0.4.2",
3754+ "hmac",
3755+ "pbkdf2",
3756+ "rand 0.10.1",
3757+ "rmp-serde",
3758+ "serde",
3759+ "serde_json",
3760+ "sha2",
3761+ "thiserror 2.0.18",
3762+ "zeroize",
3763+]
3764+
3765+[[package]]
3766+name = "matrix-sdk-test"
3767+version = "0.18.0"
3768+dependencies = [
3769+ "as_variant",
3770+ "ctor",
3771+ "getrandom 0.4.2",
3772+ "http",
3773+ "insta",
3774+ "matrix-sdk-common",
3775+ "matrix-sdk-test-macros",
3776+ "ruma",
3777+ "serde",
3778+ "serde_json",
3779+ "sha2",
3780+ "tokio",
3781+ "tracing-subscriber",
3782+ "vodozemac",
3783+ "wasm-bindgen-test",
3784+ "wiremock",
3785+]
3786+
3787+[[package]]
3788+name = "matrix-sdk-test-macros"
3789+version = "0.18.0"
3790+dependencies = [
3791+ "quote",
3792+ "syn 2.0.101",
3793+]
3794+
3795+[[package]]
3796+name = "matrix-sdk-test-utils"
3797+version = "0.18.0"
3798+dependencies = [
3799+ "ctor",
3800+ "tracing-subscriber",
3801+]
3802+
3803+[[package]]
3804+name = "matrix-sdk-ui"
3805+version = "0.18.0"
3806+dependencies = [
3807+ "anyhow",
3808+ "as_variant",
3809+ "assert-json-diff",
3810+ "assert_matches",
3811+ "assert_matches2",
3812+ "async-rx",
3813+ "async-stream",
3814+ "async_cell",
3815+ "bitflags 2.10.0",
3816+ "chrono",
3817+ "emojis",
3818+ "eyeball",
3819+ "eyeball-im",
3820+ "eyeball-im-util",
3821+ "futures-core",
3822+ "futures-util",
3823+ "fuzzy-matcher",
3824+ "growable-bloom-filter",
3825+ "imbl",
3826+ "indexmap",
3827+ "itertools 0.14.0",
3828+ "matrix-sdk",
3829+ "matrix-sdk-base",
3830+ "matrix-sdk-common",
3831+ "matrix-sdk-test",
3832+ "matrix-sdk-test-utils",
3833+ "mime",
3834+ "pin-project-lite",
3835+ "proptest",
3836+ "ruma",
3837+ "serde",
3838+ "serde_json",
3839+ "stream_assert",
3840+ "tempfile",
3841+ "thiserror 2.0.18",
3842+ "tokio",
3843+ "tokio-stream",
3844+ "tracing",
3845+ "unicode-normalization",
3846+ "unicode-segmentation",
3847+ "uniffi",
3848+ "url",
3849+ "wiremock",
3850+]
3851+
3852+[[package]]
3853+name = "matrix_indexed_db_futures"
3854+version = "0.7.0"
3855+source = "registry+https://github.com/rust-lang/crates.io-index"
3856+checksum = "245ff6a224b4df7b0c90dda2dd5a6eb46112708d49e8bdd8b007fccb09fea8e4"
3857+dependencies = [
3858+ "accessory",
3859+ "cfg-if",
3860+ "delegate-display",
3861+ "derive_more 2.0.1",
3862+ "fancy_constructor",
3863+ "futures-core",
3864+ "js-sys",
3865+ "matrix_indexed_db_futures_macros_internal",
3866+ "sealed",
3867+ "serde",
3868+ "serde-wasm-bindgen",
3869+ "smallvec",
3870+ "thiserror 2.0.18",
3871+ "tokio",
3872+ "wasm-bindgen",
3873+ "wasm-bindgen-futures",
3874+ "wasm_evt_listener",
3875+ "web-sys",
3876+ "web-time",
3877+]
3878+
3879+[[package]]
3880+name = "matrix_indexed_db_futures_macros_internal"
3881+version = "1.0.0"
3882+source = "registry+https://github.com/rust-lang/crates.io-index"
3883+checksum = "b428aee5c0fe9e5babd29e99d289b7f64718c444989aac0442d1fd6d3e3f66d1"
3884+dependencies = [
3885+ "macroific",
3886+ "proc-macro2",
3887+ "quote",
3888+ "syn 2.0.101",
3889+]
3890+
3891+[[package]]
3892+name = "measure_time"
3893+version = "0.9.0"
3894+source = "registry+https://github.com/rust-lang/crates.io-index"
3895+checksum = "51c55d61e72fc3ab704396c5fa16f4c184db37978ae4e94ca8959693a235fc0e"
3896+dependencies = [
3897+ "log",
3898+]
3899+
3900+[[package]]
3901+name = "memchr"
3902+version = "2.7.4"
3903+source = "registry+https://github.com/rust-lang/crates.io-index"
3904+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
3905+
3906+[[package]]
3907+name = "memmap2"
3908+version = "0.9.7"
3909+source = "registry+https://github.com/rust-lang/crates.io-index"
3910+checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28"
3911+dependencies = [
3912+ "libc",
3913+]
3914+
3915+[[package]]
3916+name = "memmem"
3917+version = "0.1.1"
3918+source = "registry+https://github.com/rust-lang/crates.io-index"
3919+checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15"
3920+
3921+[[package]]
3922+name = "memoffset"
3923+version = "0.9.1"
3924+source = "registry+https://github.com/rust-lang/crates.io-index"
3925+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
3926+dependencies = [
3927+ "autocfg",
3928+]
3929+
3930+[[package]]
3931+name = "mime"
3932+version = "0.3.17"
3933+source = "registry+https://github.com/rust-lang/crates.io-index"
3934+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
3935+
3936+[[package]]
3937+name = "mime2ext"
3938+version = "0.1.54"
3939+source = "registry+https://github.com/rust-lang/crates.io-index"
3940+checksum = "cbf6f36070878c42c5233846cd3de24cf9016828fd47bc22957a687298bb21fc"
3941+
3942+[[package]]
3943+name = "minicov"
3944+version = "0.3.8"
3945+source = "registry+https://github.com/rust-lang/crates.io-index"
3946+checksum = "4869b6a491569605d66d3952bcdf03df789e5b536e5f0cf7758a7f08a55ae24d"
3947+dependencies = [
3948+ "cc",
3949+ "walkdir",
3950+]
3951+
3952+[[package]]
3953+name = "minimal-lexical"
3954+version = "0.2.1"
3955+source = "registry+https://github.com/rust-lang/crates.io-index"
3956+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
3957+
3958+[[package]]
3959+name = "miniz_oxide"
3960+version = "0.8.9"
3961+source = "registry+https://github.com/rust-lang/crates.io-index"
3962+checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
3963+dependencies = [
3964+ "adler2",
3965+ "simd-adler32",
3966+]
3967+
3968+[[package]]
3969+name = "mio"
3970+version = "1.0.2"
3971+source = "registry+https://github.com/rust-lang/crates.io-index"
3972+checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
3973+dependencies = [
3974+ "hermit-abi 0.3.9",
3975+ "libc",
3976+ "log",
3977+ "wasi",
3978+ "windows-sys 0.52.0",
3979+]
3980+
3981+[[package]]
3982+name = "moxcms"
3983+version = "0.7.5"
3984+source = "registry+https://github.com/rust-lang/crates.io-index"
3985+checksum = "ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08"
3986+dependencies = [
3987+ "num-traits",
3988+ "pxfm",
3989+]
3990+
3991+[[package]]
3992+name = "multiverse"
3993+version = "0.1.0"
3994+dependencies = [
3995+ "clap",
3996+ "color-eyre",
3997+ "crossterm",
3998+ "futures-util",
3999+ "imbl",
4000+ "indexmap",
4001+ "itertools 0.14.0",
4002+ "matrix-sdk",
4003+ "matrix-sdk-base",
4004+ "matrix-sdk-common",
4005+ "matrix-sdk-ui",
4006+ "ratatui",
4007+ "ratatui-textarea",
4008+ "rpassword",
4009+ "serde_json",
4010+ "strum",
4011+ "textwrap",
4012+ "throbber-widgets-tui",
4013+ "tokio",
4014+ "tracing",
4015+ "tracing-appender",
4016+ "tracing-subscriber",
4017+ "tui-widget-list",
4018+]
4019+
4020+[[package]]
4021+name = "murmurhash32"
4022+version = "0.3.1"
4023+source = "registry+https://github.com/rust-lang/crates.io-index"
4024+checksum = "2195bf6aa996a481483b29d62a7663eed3fe39600c460e323f8ff41e90bdd89b"
4025+
4026+[[package]]
4027+name = "ndk-sys"
4028+version = "0.5.0+25.2.9519653"
4029+source = "registry+https://github.com/rust-lang/crates.io-index"
4030+checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"
4031+dependencies = [
4032+ "jni-sys",
4033+]
4034+
4035+[[package]]
4036+name = "new_debug_unreachable"
4037+version = "1.0.6"
4038+source = "registry+https://github.com/rust-lang/crates.io-index"
4039+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
4040+
4041+[[package]]
4042+name = "nix"
4043+version = "0.29.0"
4044+source = "registry+https://github.com/rust-lang/crates.io-index"
4045+checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
4046+dependencies = [
4047+ "bitflags 2.10.0",
4048+ "cfg-if",
4049+ "cfg_aliases",
4050+ "libc",
4051+ "memoffset",
4052+]
4053+
4054+[[package]]
4055+name = "nix"
4056+version = "0.30.1"
4057+source = "registry+https://github.com/rust-lang/crates.io-index"
4058+checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
4059+dependencies = [
4060+ "bitflags 2.10.0",
4061+ "cfg-if",
4062+ "cfg_aliases",
4063+ "libc",
4064+]
4065+
4066+[[package]]
4067+name = "nom"
4068+version = "7.1.3"
4069+source = "registry+https://github.com/rust-lang/crates.io-index"
4070+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
4071+dependencies = [
4072+ "memchr",
4073+ "minimal-lexical",
4074+]
4075+
4076+[[package]]
4077+name = "nu-ansi-term"
4078+version = "0.50.1"
4079+source = "registry+https://github.com/rust-lang/crates.io-index"
4080+checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399"
4081+dependencies = [
4082+ "windows-sys 0.52.0",
4083+]
4084+
4085+[[package]]
4086+name = "num-conv"
4087+version = "0.2.0"
4088+source = "registry+https://github.com/rust-lang/crates.io-index"
4089+checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"
4090+
4091+[[package]]
4092+name = "num-derive"
4093+version = "0.4.2"
4094+source = "registry+https://github.com/rust-lang/crates.io-index"
4095+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
4096+dependencies = [
4097+ "proc-macro2",
4098+ "quote",
4099+ "syn 2.0.101",
4100+]
4101+
4102+[[package]]
4103+name = "num-traits"
4104+version = "0.2.19"
4105+source = "registry+https://github.com/rust-lang/crates.io-index"
4106+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
4107+dependencies = [
4108+ "autocfg",
4109+ "libm",
4110+]
4111+
4112+[[package]]
4113+name = "num_cpus"
4114+version = "1.17.0"
4115+source = "registry+https://github.com/rust-lang/crates.io-index"
4116+checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
4117+dependencies = [
4118+ "hermit-abi 0.5.2",
4119+ "libc",
4120+]
4121+
4122+[[package]]
4123+name = "num_threads"
4124+version = "0.1.7"
4125+source = "registry+https://github.com/rust-lang/crates.io-index"
4126+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
4127+dependencies = [
4128+ "libc",
4129+]
4130+
4131+[[package]]
4132+name = "oauth2"
4133+version = "5.0.0"
4134+source = "registry+https://github.com/rust-lang/crates.io-index"
4135+checksum = "51e219e79014df21a225b1860a479e2dcd7cbd9130f4defd4bd0e191ea31d67d"
4136+dependencies = [
4137+ "base64",
4138+ "chrono",
4139+ "getrandom 0.2.15",
4140+ "http",
4141+ "rand 0.8.6",
4142+ "serde",
4143+ "serde_json",
4144+ "serde_path_to_error",
4145+ "sha2",
4146+ "thiserror 1.0.63",
4147+ "url",
4148+]
4149+
4150+[[package]]
4151+name = "oauth2-reqwest"
4152+version = "0.1.0-alpha.3"
4153+source = "registry+https://github.com/rust-lang/crates.io-index"
4154+checksum = "234fb5c965bbce983ee5de636a7a51d6a3223da8067ea02f9ab2d2d78ac08be2"
4155+dependencies = [
4156+ "oauth2",
4157+ "reqwest",
4158+]
4159+
4160+[[package]]
4161+name = "object"
4162+version = "0.37.3"
4163+source = "registry+https://github.com/rust-lang/crates.io-index"
4164+checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe"
4165+dependencies = [
4166+ "memchr",
4167+]
4168+
4169+[[package]]
4170+name = "once_cell"
4171+version = "1.21.4"
4172+source = "registry+https://github.com/rust-lang/crates.io-index"
4173+checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
4174+
4175+[[package]]
4176+name = "oneshot"
4177+version = "0.1.13"
4178+source = "registry+https://github.com/rust-lang/crates.io-index"
4179+checksum = "269bca4c2591a28585d6bf10d9ed0332b7d76900a1b02bec41bdc3a2cdcda107"
4180+
4181+[[package]]
4182+name = "oorandom"
4183+version = "11.1.5"
4184+source = "registry+https://github.com/rust-lang/crates.io-index"
4185+checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
4186+
4187+[[package]]
4188+name = "opaque-debug"
4189+version = "0.3.1"
4190+source = "registry+https://github.com/rust-lang/crates.io-index"
4191+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
4192+
4193+[[package]]
4194+name = "openssl-probe"
4195+version = "0.2.0"
4196+source = "registry+https://github.com/rust-lang/crates.io-index"
4197+checksum = "9f50d9b3dabb09ecd771ad0aa242ca6894994c130308ca3d7684634df8037391"
4198+
4199+[[package]]
4200+name = "option-ext"
4201+version = "0.2.0"
4202+source = "registry+https://github.com/rust-lang/crates.io-index"
4203+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
4204+
4205+[[package]]
4206+name = "ordered-float"
4207+version = "4.6.0"
4208+source = "registry+https://github.com/rust-lang/crates.io-index"
4209+checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951"
4210+dependencies = [
4211+ "num-traits",
4212+]
4213+
4214+[[package]]
4215+name = "ordered-float"
4216+version = "5.3.0"
4217+source = "registry+https://github.com/rust-lang/crates.io-index"
4218+checksum = "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e"
4219+dependencies = [
4220+ "num-traits",
4221+]
4222+
4223+[[package]]
4224+name = "os_info"
4225+version = "3.11.0"
4226+source = "registry+https://github.com/rust-lang/crates.io-index"
4227+checksum = "41fc863e2ca13dc2d5c34fb22ea4a588248ac14db929616ba65c45f21744b1e9"
4228+dependencies = [
4229+ "log",
4230+ "serde",
4231+ "windows-sys 0.52.0",
4232+]
4233+
4234+[[package]]
4235+name = "ownedbytes"
4236+version = "0.9.0"
4237+source = "registry+https://github.com/rust-lang/crates.io-index"
4238+checksum = "2fbd56f7631767e61784dc43f8580f403f4475bd4aaa4da003e6295e1bab4a7e"
4239+dependencies = [
4240+ "stable_deref_trait",
4241+]
4242+
4243+[[package]]
4244+name = "owo-colors"
4245+version = "4.2.2"
4246+source = "registry+https://github.com/rust-lang/crates.io-index"
4247+checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e"
4248+
4249+[[package]]
4250+name = "paranoid-android"
4251+version = "0.2.2"
4252+source = "registry+https://github.com/rust-lang/crates.io-index"
4253+checksum = "101795d63d371b43e38d6e7254677657be82f17022f7f7893c268f33ac0caadc"
4254+dependencies = [
4255+ "lazy_static",
4256+ "ndk-sys",
4257+ "sharded-slab",
4258+ "smallvec",
4259+ "tracing-core",
4260+ "tracing-subscriber",
4261+]
4262+
4263+[[package]]
4264+name = "parking"
4265+version = "2.2.0"
4266+source = "registry+https://github.com/rust-lang/crates.io-index"
4267+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
4268+
4269+[[package]]
4270+name = "parking_lot"
4271+version = "0.12.3"
4272+source = "registry+https://github.com/rust-lang/crates.io-index"
4273+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
4274+dependencies = [
4275+ "lock_api",
4276+ "parking_lot_core",
4277+]
4278+
4279+[[package]]
4280+name = "parking_lot_core"
4281+version = "0.9.10"
4282+source = "registry+https://github.com/rust-lang/crates.io-index"
4283+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
4284+dependencies = [
4285+ "cfg-if",
4286+ "libc",
4287+ "redox_syscall",
4288+ "smallvec",
4289+ "windows-targets 0.52.6",
4290+]
4291+
4292+[[package]]
4293+name = "pbkdf2"
4294+version = "0.12.2"
4295+source = "registry+https://github.com/rust-lang/crates.io-index"
4296+checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
4297+dependencies = [
4298+ "digest",
4299+]
4300+
4301+[[package]]
4302+name = "percent-encoding"
4303+version = "2.3.2"
4304+source = "registry+https://github.com/rust-lang/crates.io-index"
4305+checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
4306+
4307+[[package]]
4308+name = "pest"
4309+version = "2.8.0"
4310+source = "registry+https://github.com/rust-lang/crates.io-index"
4311+checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6"
4312+dependencies = [
4313+ "memchr",
4314+ "thiserror 2.0.18",
4315+ "ucd-trie",
4316+]
4317+
4318+[[package]]
4319+name = "pest_derive"
4320+version = "2.8.0"
4321+source = "registry+https://github.com/rust-lang/crates.io-index"
4322+checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5"
4323+dependencies = [
4324+ "pest",
4325+ "pest_generator",
4326+]
4327+
4328+[[package]]
4329+name = "pest_generator"
4330+version = "2.8.0"
4331+source = "registry+https://github.com/rust-lang/crates.io-index"
4332+checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841"
4333+dependencies = [
4334+ "pest",
4335+ "pest_meta",
4336+ "proc-macro2",
4337+ "quote",
4338+ "syn 2.0.101",
4339+]
4340+
4341+[[package]]
4342+name = "pest_meta"
4343+version = "2.8.0"
4344+source = "registry+https://github.com/rust-lang/crates.io-index"
4345+checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0"
4346+dependencies = [
4347+ "once_cell",
4348+ "pest",
4349+ "sha2",
4350+]
4351+
4352+[[package]]
4353+name = "phf"
4354+version = "0.11.3"
4355+source = "registry+https://github.com/rust-lang/crates.io-index"
4356+checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
4357+dependencies = [
4358+ "phf_macros",
4359+ "phf_shared 0.11.3",
4360+]
4361+
4362+[[package]]
4363+name = "phf"
4364+version = "0.13.1"
4365+source = "registry+https://github.com/rust-lang/crates.io-index"
4366+checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
4367+dependencies = [
4368+ "phf_shared 0.13.1",
4369+ "serde",
4370+]
4371+
4372+[[package]]
4373+name = "phf_codegen"
4374+version = "0.11.3"
4375+source = "registry+https://github.com/rust-lang/crates.io-index"
4376+checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"
4377+dependencies = [
4378+ "phf_generator 0.11.3",
4379+ "phf_shared 0.11.3",
4380+]
4381+
4382+[[package]]
4383+name = "phf_codegen"
4384+version = "0.13.1"
4385+source = "registry+https://github.com/rust-lang/crates.io-index"
4386+checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1"
4387+dependencies = [
4388+ "phf_generator 0.13.1",
4389+ "phf_shared 0.13.1",
4390+]
4391+
4392+[[package]]
4393+name = "phf_generator"
4394+version = "0.11.3"
4395+source = "registry+https://github.com/rust-lang/crates.io-index"
4396+checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
4397+dependencies = [
4398+ "phf_shared 0.11.3",
4399+ "rand 0.8.6",
4400+]
4401+
4402+[[package]]
4403+name = "phf_generator"
4404+version = "0.13.1"
4405+source = "registry+https://github.com/rust-lang/crates.io-index"
4406+checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
4407+dependencies = [
4408+ "fastrand",
4409+ "phf_shared 0.13.1",
4410+]
4411+
4412+[[package]]
4413+name = "phf_macros"
4414+version = "0.11.3"
4415+source = "registry+https://github.com/rust-lang/crates.io-index"
4416+checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
4417+dependencies = [
4418+ "phf_generator 0.11.3",
4419+ "phf_shared 0.11.3",
4420+ "proc-macro2",
4421+ "quote",
4422+ "syn 2.0.101",
4423+]
4424+
4425+[[package]]
4426+name = "phf_shared"
4427+version = "0.11.3"
4428+source = "registry+https://github.com/rust-lang/crates.io-index"
4429+checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
4430+dependencies = [
4431+ "siphasher",
4432+]
4433+
4434+[[package]]
4435+name = "phf_shared"
4436+version = "0.13.1"
4437+source = "registry+https://github.com/rust-lang/crates.io-index"
4438+checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
4439+dependencies = [
4440+ "siphasher",
4441+]
4442+
4443+[[package]]
4444+name = "pin-project-lite"
4445+version = "0.2.16"
4446+source = "registry+https://github.com/rust-lang/crates.io-index"
4447+checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
4448+
4449+[[package]]
4450+name = "pin-utils"
4451+version = "0.1.0"
4452+source = "registry+https://github.com/rust-lang/crates.io-index"
4453+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
4454+
4455+[[package]]
4456+name = "pkcs8"
4457+version = "0.10.2"
4458+source = "registry+https://github.com/rust-lang/crates.io-index"
4459+checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
4460+dependencies = [
4461+ "der",
4462+ "spki",
4463+]
4464+
4465+[[package]]
4466+name = "pkg-config"
4467+version = "0.3.30"
4468+source = "registry+https://github.com/rust-lang/crates.io-index"
4469+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
4470+
4471+[[package]]
4472+name = "plain"
4473+version = "0.2.3"
4474+source = "registry+https://github.com/rust-lang/crates.io-index"
4475+checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
4476+
4477+[[package]]
4478+name = "plotters"
4479+version = "0.3.6"
4480+source = "registry+https://github.com/rust-lang/crates.io-index"
4481+checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3"
4482+dependencies = [
4483+ "num-traits",
4484+ "plotters-backend",
4485+ "plotters-svg",
4486+ "wasm-bindgen",
4487+ "web-sys",
4488+]
4489+
4490+[[package]]
4491+name = "plotters-backend"
4492+version = "0.3.6"
4493+source = "registry+https://github.com/rust-lang/crates.io-index"
4494+checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7"
4495+
4496+[[package]]
4497+name = "plotters-svg"
4498+version = "0.3.6"
4499+source = "registry+https://github.com/rust-lang/crates.io-index"
4500+checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705"
4501+dependencies = [
4502+ "plotters-backend",
4503+]
4504+
4505+[[package]]
4506+name = "poly1305"
4507+version = "0.8.0"
4508+source = "registry+https://github.com/rust-lang/crates.io-index"
4509+checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
4510+dependencies = [
4511+ "cpufeatures 0.2.12",
4512+ "opaque-debug",
4513+ "universal-hash",
4514+]
4515+
4516+[[package]]
4517+name = "portable-atomic"
4518+version = "1.13.1"
4519+source = "registry+https://github.com/rust-lang/crates.io-index"
4520+checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
4521+
4522+[[package]]
4523+name = "powerfmt"
4524+version = "0.2.0"
4525+source = "registry+https://github.com/rust-lang/crates.io-index"
4526+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
4527+
4528+[[package]]
4529+name = "ppv-lite86"
4530+version = "0.2.17"
4531+source = "registry+https://github.com/rust-lang/crates.io-index"
4532+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
4533+
4534+[[package]]
4535+name = "precomputed-hash"
4536+version = "0.1.1"
4537+source = "registry+https://github.com/rust-lang/crates.io-index"
4538+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
4539+
4540+[[package]]
4541+name = "prettyplease"
4542+version = "0.2.34"
4543+source = "registry+https://github.com/rust-lang/crates.io-index"
4544+checksum = "6837b9e10d61f45f987d50808f83d1ee3d206c66acf650c3e4ae2e1f6ddedf55"
4545+dependencies = [
4546+ "proc-macro2",
4547+ "syn 2.0.101",
4548+]
4549+
4550+[[package]]
4551+name = "proc-macro-crate"
4552+version = "3.2.0"
4553+source = "registry+https://github.com/rust-lang/crates.io-index"
4554+checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b"
4555+dependencies = [
4556+ "toml_edit",
4557+]
4558+
4559+[[package]]
4560+name = "proc-macro-error-attr2"
4561+version = "2.0.0"
4562+source = "registry+https://github.com/rust-lang/crates.io-index"
4563+checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
4564+dependencies = [
4565+ "proc-macro2",
4566+ "quote",
4567+]
4568+
4569+[[package]]
4570+name = "proc-macro-error2"
4571+version = "2.0.1"
4572+source = "registry+https://github.com/rust-lang/crates.io-index"
4573+checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
4574+dependencies = [
4575+ "proc-macro-error-attr2",
4576+ "proc-macro2",
4577+ "quote",
4578+]
4579+
4580+[[package]]
4581+name = "proc-macro2"
4582+version = "1.0.106"
4583+source = "registry+https://github.com/rust-lang/crates.io-index"
4584+checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
4585+dependencies = [
4586+ "unicode-ident",
4587+]
4588+
4589+[[package]]
4590+name = "proptest"
4591+version = "1.9.0"
4592+source = "registry+https://github.com/rust-lang/crates.io-index"
4593+checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40"
4594+dependencies = [
4595+ "bitflags 2.10.0",
4596+ "num-traits",
4597+ "rand 0.9.4",
4598+ "rand_chacha 0.9.0",
4599+ "rand_xorshift",
4600+ "regex-syntax",
4601+ "unarray",
4602+]
4603+
4604+[[package]]
4605+name = "prost"
4606+version = "0.14.3"
4607+source = "registry+https://github.com/rust-lang/crates.io-index"
4608+checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568"
4609+dependencies = [
4610+ "bytes",
4611+ "prost-derive",
4612+]
4613+
4614+[[package]]
4615+name = "prost-derive"
4616+version = "0.14.3"
4617+source = "registry+https://github.com/rust-lang/crates.io-index"
4618+checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b"
4619+dependencies = [
4620+ "anyhow",
4621+ "itertools 0.14.0",
4622+ "proc-macro2",
4623+ "quote",
4624+ "syn 2.0.101",
4625+]
4626+
4627+[[package]]
4628+name = "pulldown-cmark"
4629+version = "0.13.0"
4630+source = "registry+https://github.com/rust-lang/crates.io-index"
4631+checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0"
4632+dependencies = [
4633+ "bitflags 2.10.0",
4634+ "memchr",
4635+ "pulldown-cmark-escape",
4636+ "unicase",
4637+]
4638+
4639+[[package]]
4640+name = "pulldown-cmark-escape"
4641+version = "0.11.0"
4642+source = "registry+https://github.com/rust-lang/crates.io-index"
4643+checksum = "007d8adb5ddab6f8e3f491ac63566a7d5002cc7ed73901f72057943fa71ae1ae"
4644+
4645+[[package]]
4646+name = "pxfm"
4647+version = "0.1.20"
4648+source = "registry+https://github.com/rust-lang/crates.io-index"
4649+checksum = "6e790881194f6f6e86945f0a42a6981977323669aeb6c40e9c7ec253133b96f8"
4650+dependencies = [
4651+ "num-traits",
4652+]
4653+
4654+[[package]]
4655+name = "qrcode"
4656+version = "0.14.1"
4657+source = "registry+https://github.com/rust-lang/crates.io-index"
4658+checksum = "d68782463e408eb1e668cf6152704bd856c78c5b6417adaee3203d8f4c1fc9ec"
4659+dependencies = [
4660+ "image",
4661+]
4662+
4663+[[package]]
4664+name = "quinn"
4665+version = "0.11.9"
4666+source = "registry+https://github.com/rust-lang/crates.io-index"
4667+checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20"
4668+dependencies = [
4669+ "bytes",
4670+ "cfg_aliases",
4671+ "pin-project-lite",
4672+ "quinn-proto",
4673+ "quinn-udp",
4674+ "rustc-hash",
4675+ "rustls",
4676+ "socket2 0.6.0",
4677+ "thiserror 2.0.18",
4678+ "tokio",
4679+ "tracing",
4680+ "web-time",
4681+]
4682+
4683+[[package]]
4684+name = "quinn-proto"
4685+version = "0.11.14"
4686+source = "registry+https://github.com/rust-lang/crates.io-index"
4687+checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098"
4688+dependencies = [
4689+ "aws-lc-rs",
4690+ "bytes",
4691+ "getrandom 0.3.4",
4692+ "lru-slab",
4693+ "rand 0.9.4",
4694+ "ring",
4695+ "rustc-hash",
4696+ "rustls",
4697+ "rustls-pki-types",
4698+ "slab",
4699+ "thiserror 2.0.18",
4700+ "tinyvec",
4701+ "tracing",
4702+ "web-time",
4703+]
4704+
4705+[[package]]
4706+name = "quinn-udp"
4707+version = "0.5.3"
4708+source = "registry+https://github.com/rust-lang/crates.io-index"
4709+checksum = "25a78e6f726d84fcf960409f509ae354a32648f090c8d32a2ea8b1a1bc3bab14"
4710+dependencies = [
4711+ "libc",
4712+ "once_cell",
4713+ "socket2 0.5.7",
4714+ "tracing",
4715+ "windows-sys 0.52.0",
4716+]
4717+
4718+[[package]]
4719+name = "quote"
4720+version = "1.0.37"
4721+source = "registry+https://github.com/rust-lang/crates.io-index"
4722+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
4723+dependencies = [
4724+ "proc-macro2",
4725+]
4726+
4727+[[package]]
4728+name = "r-efi"
4729+version = "5.3.0"
4730+source = "registry+https://github.com/rust-lang/crates.io-index"
4731+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
4732+
4733+[[package]]
4734+name = "r-efi"
4735+version = "6.0.0"
4736+source = "registry+https://github.com/rust-lang/crates.io-index"
4737+checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
4738+
4739+[[package]]
4740+name = "rand"
4741+version = "0.8.6"
4742+source = "registry+https://github.com/rust-lang/crates.io-index"
4743+checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a"
4744+dependencies = [
4745+ "libc",
4746+ "rand_chacha 0.3.1",
4747+ "rand_core 0.6.4",
4748+]
4749+
4750+[[package]]
4751+name = "rand"
4752+version = "0.9.4"
4753+source = "registry+https://github.com/rust-lang/crates.io-index"
4754+checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea"
4755+dependencies = [
4756+ "rand_chacha 0.9.0",
4757+ "rand_core 0.9.3",
4758+]
4759+
4760+[[package]]
4761+name = "rand"
4762+version = "0.10.1"
4763+source = "registry+https://github.com/rust-lang/crates.io-index"
4764+checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207"
4765+dependencies = [
4766+ "chacha20 0.10.0",
4767+ "getrandom 0.4.2",
4768+ "rand_core 0.10.0",
4769+]
4770+
4771+[[package]]
4772+name = "rand_chacha"
4773+version = "0.3.1"
4774+source = "registry+https://github.com/rust-lang/crates.io-index"
4775+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
4776+dependencies = [
4777+ "ppv-lite86",
4778+ "rand_core 0.6.4",
4779+]
4780+
4781+[[package]]
4782+name = "rand_chacha"
4783+version = "0.9.0"
4784+source = "registry+https://github.com/rust-lang/crates.io-index"
4785+checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
4786+dependencies = [
4787+ "ppv-lite86",
4788+ "rand_core 0.9.3",
4789+]
4790+
4791+[[package]]
4792+name = "rand_core"
4793+version = "0.6.4"
4794+source = "registry+https://github.com/rust-lang/crates.io-index"
4795+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
4796+dependencies = [
4797+ "getrandom 0.2.15",
4798+]
4799+
4800+[[package]]
4801+name = "rand_core"
4802+version = "0.9.3"
4803+source = "registry+https://github.com/rust-lang/crates.io-index"
4804+checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
4805+dependencies = [
4806+ "getrandom 0.3.4",
4807+]
4808+
4809+[[package]]
4810+name = "rand_core"
4811+version = "0.10.0"
4812+source = "registry+https://github.com/rust-lang/crates.io-index"
4813+checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba"
4814+
4815+[[package]]
4816+name = "rand_xorshift"
4817+version = "0.4.0"
4818+source = "registry+https://github.com/rust-lang/crates.io-index"
4819+checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a"
4820+dependencies = [
4821+ "rand_core 0.9.3",
4822+]
4823+
4824+[[package]]
4825+name = "rand_xoshiro"
4826+version = "0.7.0"
4827+source = "registry+https://github.com/rust-lang/crates.io-index"
4828+checksum = "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41"
4829+dependencies = [
4830+ "rand_core 0.9.3",
4831+]
4832+
4833+[[package]]
4834+name = "ratatui"
4835+version = "0.30.0"
4836+source = "registry+https://github.com/rust-lang/crates.io-index"
4837+checksum = "d1ce67fb8ba4446454d1c8dbaeda0557ff5e94d39d5e5ed7f10a65eb4c8266bc"
4838+dependencies = [
4839+ "instability",
4840+ "ratatui-core",
4841+ "ratatui-crossterm",
4842+ "ratatui-macros",
4843+ "ratatui-termwiz",
4844+ "ratatui-widgets",
4845+]
4846+
4847+[[package]]
4848+name = "ratatui-core"
4849+version = "0.1.0"
4850+source = "registry+https://github.com/rust-lang/crates.io-index"
4851+checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293"
4852+dependencies = [
4853+ "bitflags 2.10.0",
4854+ "compact_str",
4855+ "hashbrown 0.16.1",
4856+ "indoc",
4857+ "itertools 0.14.0",
4858+ "kasuari",
4859+ "lru",
4860+ "strum",
4861+ "thiserror 2.0.18",
4862+ "unicode-segmentation",
4863+ "unicode-truncate",
4864+ "unicode-width",
4865+]
4866+
4867+[[package]]
4868+name = "ratatui-crossterm"
4869+version = "0.1.0"
4870+source = "registry+https://github.com/rust-lang/crates.io-index"
4871+checksum = "577c9b9f652b4c121fb25c6a391dd06406d3b092ba68827e6d2f09550edc54b3"
4872+dependencies = [
4873+ "cfg-if",
4874+ "crossterm",
4875+ "instability",
4876+ "ratatui-core",
4877+]
4878+
4879+[[package]]
4880+name = "ratatui-macros"
4881+version = "0.7.0"
4882+source = "registry+https://github.com/rust-lang/crates.io-index"
4883+checksum = "a7f1342a13e83e4bb9d0b793d0ea762be633f9582048c892ae9041ef39c936f4"
4884+dependencies = [
4885+ "ratatui-core",
4886+ "ratatui-widgets",
4887+]
4888+
4889+[[package]]
4890+name = "ratatui-termwiz"
4891+version = "0.1.0"
4892+source = "registry+https://github.com/rust-lang/crates.io-index"
4893+checksum = "0f76fe0bd0ed4295f0321b1676732e2454024c15a35d01904ddb315afd3d545c"
4894+dependencies = [
4895+ "ratatui-core",
4896+ "termwiz",
4897+]
4898+
4899+[[package]]
4900+name = "ratatui-textarea"
4901+version = "0.9.1"
4902+source = "registry+https://github.com/rust-lang/crates.io-index"
4903+checksum = "2950274c0e155944158cf766848dd87bd6db6dad27da1c23ee4a7c8de71dbf1f"
4904+dependencies = [
4905+ "ratatui-core",
4906+ "ratatui-crossterm",
4907+ "ratatui-widgets",
4908+ "unicode-segmentation",
4909+ "unicode-width",
4910+]
4911+
4912+[[package]]
4913+name = "ratatui-widgets"
4914+version = "0.3.0"
4915+source = "registry+https://github.com/rust-lang/crates.io-index"
4916+checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db"
4917+dependencies = [
4918+ "bitflags 2.10.0",
4919+ "hashbrown 0.16.1",
4920+ "indoc",
4921+ "instability",
4922+ "itertools 0.14.0",
4923+ "line-clipping",
4924+ "ratatui-core",
4925+ "strum",
4926+ "time",
4927+ "unicode-segmentation",
4928+ "unicode-width",
4929+]
4930+
4931+[[package]]
4932+name = "rayon"
4933+version = "1.10.0"
4934+source = "registry+https://github.com/rust-lang/crates.io-index"
4935+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
4936+dependencies = [
4937+ "either",
4938+ "rayon-core",
4939+]
4940+
4941+[[package]]
4942+name = "rayon-core"
4943+version = "1.12.1"
4944+source = "registry+https://github.com/rust-lang/crates.io-index"
4945+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
4946+dependencies = [
4947+ "crossbeam-deque",
4948+ "crossbeam-utils",
4949+]
4950+
4951+[[package]]
4952+name = "readlock"
4953+version = "0.1.8"
4954+source = "registry+https://github.com/rust-lang/crates.io-index"
4955+checksum = "072cfe5b1d2dcd38d20e18f85e9c9978b6cc08f0b373e9f1fff1541335622974"
4956+
4957+[[package]]
4958+name = "readlock-tokio"
4959+version = "0.1.3"
4960+source = "registry+https://github.com/rust-lang/crates.io-index"
4961+checksum = "867fac64d07214a87e5cf4e88b4ce855844a1cea243534392377d1ac2c911653"
4962+dependencies = [
4963+ "tokio",
4964+]
4965+
4966+[[package]]
4967+name = "redox_syscall"
4968+version = "0.5.3"
4969+source = "registry+https://github.com/rust-lang/crates.io-index"
4970+checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
4971+dependencies = [
4972+ "bitflags 2.10.0",
4973+]
4974+
4975+[[package]]
4976+name = "redox_users"
4977+version = "0.5.0"
4978+source = "registry+https://github.com/rust-lang/crates.io-index"
4979+checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b"
4980+dependencies = [
4981+ "getrandom 0.2.15",
4982+ "libredox",
4983+ "thiserror 2.0.18",
4984+]
4985+
4986+[[package]]
4987+name = "regex"
4988+version = "1.12.2"
4989+source = "registry+https://github.com/rust-lang/crates.io-index"
4990+checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
4991+dependencies = [
4992+ "aho-corasick",
4993+ "memchr",
4994+ "regex-automata",
4995+ "regex-syntax",
4996+]
4997+
4998+[[package]]
4999+name = "regex-automata"
5000+version = "0.4.13"
5001+source = "registry+https://github.com/rust-lang/crates.io-index"
5002+checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
5003+dependencies = [
5004+ "aho-corasick",
5005+ "memchr",
5006+ "regex-syntax",
5007+]
5008+
5009+[[package]]
5010+name = "regex-syntax"
5011+version = "0.8.5"
5012+source = "registry+https://github.com/rust-lang/crates.io-index"
5013+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
5014+
5015+[[package]]
5016+name = "reqwest"
5017+version = "0.13.2"
5018+source = "registry+https://github.com/rust-lang/crates.io-index"
5019+checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801"
5020+dependencies = [
5021+ "base64",
5022+ "bytes",
5023+ "futures-channel",
5024+ "futures-core",
5025+ "futures-util",
5026+ "h2",
5027+ "http",
5028+ "http-body",
5029+ "http-body-util",
5030+ "hyper",
5031+ "hyper-rustls",
5032+ "hyper-util",
5033+ "js-sys",
5034+ "log",
5035+ "percent-encoding",
5036+ "pin-project-lite",
5037+ "quinn",
5038+ "rustls",
5039+ "rustls-pki-types",
5040+ "rustls-platform-verifier",
5041+ "serde",
5042+ "serde_json",
5043+ "sync_wrapper",
5044+ "tokio",
5045+ "tokio-rustls",
5046+ "tokio-util",
5047+ "tower",
5048+ "tower-http",
5049+ "tower-service",
5050+ "url",
5051+ "wasm-bindgen",
5052+ "wasm-bindgen-futures",
5053+ "wasm-streams",
5054+ "web-sys",
5055+]
5056+
5057+[[package]]
5058+name = "ring"
5059+version = "0.17.14"
5060+source = "registry+https://github.com/rust-lang/crates.io-index"
5061+checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
5062+dependencies = [
5063+ "cc",
5064+ "cfg-if",
5065+ "getrandom 0.2.15",
5066+ "libc",
5067+ "untrusted",
5068+ "windows-sys 0.52.0",
5069+]
5070+
5071+[[package]]
5072+name = "rmp"
5073+version = "0.8.15"
5074+source = "registry+https://github.com/rust-lang/crates.io-index"
5075+checksum = "4ba8be72d372b2c9b35542551678538b562e7cf86c3315773cae48dfbfe7790c"
5076+dependencies = [
5077+ "num-traits",
5078+]
5079+
5080+[[package]]
5081+name = "rmp-serde"
5082+version = "1.3.0"
5083+source = "registry+https://github.com/rust-lang/crates.io-index"
5084+checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db"
5085+dependencies = [
5086+ "byteorder",
5087+ "rmp",
5088+ "serde",
5089+]
5090+
5091+[[package]]
5092+name = "rpassword"
5093+version = "7.5.3"
5094+source = "registry+https://github.com/rust-lang/crates.io-index"
5095+checksum = "835a57a69104632d64deb0df2e09a69945cd7a6eab4070fc9b1d7e50cf6c3edc"
5096+dependencies = [
5097+ "libc",
5098+ "rtoolbox",
5099+ "windows-sys 0.61.2",
5100+]
5101+
5102+[[package]]
5103+name = "rtoolbox"
5104+version = "0.0.2"
5105+source = "registry+https://github.com/rust-lang/crates.io-index"
5106+checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e"
5107+dependencies = [
5108+ "libc",
5109+ "windows-sys 0.48.0",
5110+]
5111+
5112+[[package]]
5113+name = "ruma"
5114+version = "0.16.0"
5115+source = "registry+https://github.com/rust-lang/crates.io-index"
5116+checksum = "ee4fe5bfacdb0e95e733da3b6c37d98edf46447a4a8e8dea824e0da266d8ad59"
5117+dependencies = [
5118+ "assign",
5119+ "js_int",
5120+ "js_option",
5121+ "language-tags",
5122+ "ruma-client-api",
5123+ "ruma-common",
5124+ "ruma-events",
5125+ "ruma-federation-api",
5126+ "ruma-html",
5127+ "ruma-signatures",
5128+ "web-time",
5129+]
5130+
5131+[[package]]
5132+name = "ruma-client-api"
5133+version = "0.24.0"
5134+source = "registry+https://github.com/rust-lang/crates.io-index"
5135+checksum = "bf7ca43a888ca569168d7e3901f4dd14a777b860bb19f4c08e35414162eb261c"
5136+dependencies = [
5137+ "as_variant",
5138+ "assign",
5139+ "bytes",
5140+ "http",
5141+ "js_int",
5142+ "js_option",
5143+ "maplit",
5144+ "ruma-common",
5145+ "ruma-events",
5146+ "serde",
5147+ "serde_html_form",
5148+ "serde_json",
5149+ "thiserror 2.0.18",
5150+ "url",
5151+ "web-time",
5152+]
5153+
5154+[[package]]
5155+name = "ruma-common"
5156+version = "0.19.0"
5157+source = "registry+https://github.com/rust-lang/crates.io-index"
5158+checksum = "2c3b4f00112791b490acce57df1ce3eb3f88899b045bebcff8a29f75369640cc"
5159+dependencies = [
5160+ "as_variant",
5161+ "base64",
5162+ "bytes",
5163+ "date_header",
5164+ "form_urlencoded",
5165+ "getrandom 0.4.2",
5166+ "http",
5167+ "indexmap",
5168+ "js_int",
5169+ "konst",
5170+ "percent-encoding",
5171+ "rand 0.10.1",
5172+ "regex",
5173+ "ruma-identifiers-validation",
5174+ "ruma-macros",
5175+ "serde",
5176+ "serde_html_form",
5177+ "serde_json",
5178+ "thiserror 2.0.18",
5179+ "time",
5180+ "tracing",
5181+ "url",
5182+ "uuid",
5183+ "web-time",
5184+ "wildmatch",
5185+ "zeroize",
5186+]
5187+
5188+[[package]]
5189+name = "ruma-events"
5190+version = "0.34.0"
5191+source = "registry+https://github.com/rust-lang/crates.io-index"
5192+checksum = "85d2f90830fc131691349b96a69ff53444eb6c3e8dc7869c77961b43cfaf3344"
5193+dependencies = [
5194+ "as_variant",
5195+ "indexmap",
5196+ "js_int",
5197+ "js_option",
5198+ "language-tags",
5199+ "pulldown-cmark",
5200+ "ruma-common",
5201+ "ruma-html",
5202+ "ruma-macros",
5203+ "serde",
5204+ "serde_json",
5205+ "thiserror 2.0.18",
5206+ "tracing",
5207+ "web-time",
5208+ "wildmatch",
5209+ "zeroize",
5210+]
5211+
5212+[[package]]
5213+name = "ruma-federation-api"
5214+version = "0.15.0"
5215+source = "registry+https://github.com/rust-lang/crates.io-index"
5216+checksum = "d4c9638f18d8da3183ebdf034a552ba6d7e86d217e6e680eebaa97c4e8d13d1a"
5217+dependencies = [
5218+ "headers",
5219+ "http",
5220+ "http-auth",
5221+ "httparse",
5222+ "js_int",
5223+ "memchr",
5224+ "mime",
5225+ "ruma-common",
5226+ "ruma-events",
5227+ "ruma-signatures",
5228+ "serde",
5229+ "serde_json",
5230+ "thiserror 2.0.18",
5231+ "tracing",
5232+]
5233+
5234+[[package]]
5235+name = "ruma-html"
5236+version = "0.8.0"
5237+source = "registry+https://github.com/rust-lang/crates.io-index"
5238+checksum = "48d33a944650f4bbd2188dd204d39dd87a9a1498f14b3a13252910c90ed7cd43"
5239+dependencies = [
5240+ "as_variant",
5241+ "html5ever",
5242+ "tracing",
5243+ "wildmatch",
5244+]
5245+
5246+[[package]]
5247+name = "ruma-identifiers-validation"
5248+version = "0.12.1"
5249+source = "registry+https://github.com/rust-lang/crates.io-index"
5250+checksum = "9d6cff00317675f487c4e7ccfb18875a14c5a14867b51d13f2a826053f03c432"
5251+dependencies = [
5252+ "js_int",
5253+ "thiserror 2.0.18",
5254+]
5255+
5256+[[package]]
5257+name = "ruma-macros"
5258+version = "0.19.0"
5259+source = "registry+https://github.com/rust-lang/crates.io-index"
5260+checksum = "c8cfb39eaa9b9fd389126ff941e060b496add5cbbfef559d80c46e571dda459c"
5261+dependencies = [
5262+ "as_variant",
5263+ "cfg-if",
5264+ "proc-macro-crate",
5265+ "proc-macro2",
5266+ "quote",
5267+ "ruma-identifiers-validation",
5268+ "serde",
5269+ "syn 2.0.101",
5270+ "toml 1.1.2+spec-1.1.0",
5271+]
5272+
5273+[[package]]
5274+name = "ruma-signatures"
5275+version = "0.21.0"
5276+source = "registry+https://github.com/rust-lang/crates.io-index"
5277+checksum = "3d374cdc542bcb881da80fcb3e58403e5fd17cfe5e0ab03939fdf12f99ef9ba2"
5278+dependencies = [
5279+ "base64",
5280+ "ed25519-dalek",
5281+ "pkcs8",
5282+ "rand 0.10.1",
5283+ "ruma-common",
5284+ "serde_json",
5285+ "sha2",
5286+ "thiserror 2.0.18",
5287+]
5288+
5289+[[package]]
5290+name = "rusqlite"
5291+version = "0.37.0"
5292+source = "registry+https://github.com/rust-lang/crates.io-index"
5293+checksum = "165ca6e57b20e1351573e3729b958bc62f0e48025386970b6e4d29e7a7e71f3f"
5294+dependencies = [
5295+ "bitflags 2.10.0",
5296+ "fallible-iterator",
5297+ "fallible-streaming-iterator",
5298+ "hashlink",
5299+ "libsqlite3-sys",
5300+ "smallvec",
5301+]
5302+
5303+[[package]]
5304+name = "rust-stemmers"
5305+version = "1.2.0"
5306+source = "registry+https://github.com/rust-lang/crates.io-index"
5307+checksum = "e46a2036019fdb888131db7a4c847a1063a7493f971ed94ea82c67eada63ca54"
5308+dependencies = [
5309+ "serde",
5310+ "serde_derive",
5311+]
5312+
5313+[[package]]
5314+name = "rustc-demangle"
5315+version = "0.1.24"
5316+source = "registry+https://github.com/rust-lang/crates.io-index"
5317+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
5318+
5319+[[package]]
5320+name = "rustc-hash"
5321+version = "2.0.0"
5322+source = "registry+https://github.com/rust-lang/crates.io-index"
5323+checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
5324+
5325+[[package]]
5326+name = "rustc_version"
5327+version = "0.4.0"
5328+source = "registry+https://github.com/rust-lang/crates.io-index"
5329+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
5330+dependencies = [
5331+ "semver",
5332+]
5333+
5334+[[package]]
5335+name = "rustix"
5336+version = "1.0.8"
5337+source = "registry+https://github.com/rust-lang/crates.io-index"
5338+checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
5339+dependencies = [
5340+ "bitflags 2.10.0",
5341+ "errno",
5342+ "libc",
5343+ "linux-raw-sys",
5344+ "windows-sys 0.60.2",
5345+]
5346+
5347+[[package]]
5348+name = "rustls"
5349+version = "0.23.38"
5350+source = "registry+https://github.com/rust-lang/crates.io-index"
5351+checksum = "69f9466fb2c14ea04357e91413efb882e2a6d4a406e625449bc0a5d360d53a21"
5352+dependencies = [
5353+ "aws-lc-rs",
5354+ "log",
5355+ "once_cell",
5356+ "rustls-pki-types",
5357+ "rustls-webpki",
5358+ "subtle",
5359+ "zeroize",
5360+]
5361+
5362+[[package]]
5363+name = "rustls-native-certs"
5364+version = "0.8.3"
5365+source = "registry+https://github.com/rust-lang/crates.io-index"
5366+checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63"
5367+dependencies = [
5368+ "openssl-probe",
5369+ "rustls-pki-types",
5370+ "schannel",
5371+ "security-framework",
5372+]
5373+
5374+[[package]]
5375+name = "rustls-pki-types"
5376+version = "1.14.0"
5377+source = "registry+https://github.com/rust-lang/crates.io-index"
5378+checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd"
5379+dependencies = [
5380+ "web-time",
5381+ "zeroize",
5382+]
5383+
5384+[[package]]
5385+name = "rustls-platform-verifier"
5386+version = "0.6.2"
5387+source = "registry+https://github.com/rust-lang/crates.io-index"
5388+checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784"
5389+dependencies = [
5390+ "core-foundation",
5391+ "core-foundation-sys",
5392+ "jni",
5393+ "log",
5394+ "once_cell",
5395+ "rustls",
5396+ "rustls-native-certs",
5397+ "rustls-platform-verifier-android",
5398+ "rustls-webpki",
5399+ "security-framework",
5400+ "security-framework-sys",
5401+ "webpki-root-certs",
5402+ "windows-sys 0.61.2",
5403+]
5404+
5405+[[package]]
5406+name = "rustls-platform-verifier-android"
5407+version = "0.1.1"
5408+source = "registry+https://github.com/rust-lang/crates.io-index"
5409+checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
5410+
5411+[[package]]
5412+name = "rustls-webpki"
5413+version = "0.103.13"
5414+source = "registry+https://github.com/rust-lang/crates.io-index"
5415+checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e"
5416+dependencies = [
5417+ "aws-lc-rs",
5418+ "ring",
5419+ "rustls-pki-types",
5420+ "untrusted",
5421+]
5422+
5423+[[package]]
5424+name = "rustversion"
5425+version = "1.0.22"
5426+source = "registry+https://github.com/rust-lang/crates.io-index"
5427+checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
5428+
5429+[[package]]
5430+name = "ryu"
5431+version = "1.0.18"
5432+source = "registry+https://github.com/rust-lang/crates.io-index"
5433+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
5434+
5435+[[package]]
5436+name = "same-file"
5437+version = "1.0.6"
5438+source = "registry+https://github.com/rust-lang/crates.io-index"
5439+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
5440+dependencies = [
5441+ "winapi-util",
5442+]
5443+
5444+[[package]]
5445+name = "schannel"
5446+version = "0.1.29"
5447+source = "registry+https://github.com/rust-lang/crates.io-index"
5448+checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939"
5449+dependencies = [
5450+ "windows-sys 0.61.2",
5451+]
5452+
5453+[[package]]
5454+name = "scoped-tls"
5455+version = "1.0.1"
5456+source = "registry+https://github.com/rust-lang/crates.io-index"
5457+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
5458+
5459+[[package]]
5460+name = "scopeguard"
5461+version = "1.2.0"
5462+source = "registry+https://github.com/rust-lang/crates.io-index"
5463+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
5464+
5465+[[package]]
5466+name = "scroll"
5467+version = "0.12.0"
5468+source = "registry+https://github.com/rust-lang/crates.io-index"
5469+checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6"
5470+dependencies = [
5471+ "scroll_derive",
5472+]
5473+
5474+[[package]]
5475+name = "scroll_derive"
5476+version = "0.12.0"
5477+source = "registry+https://github.com/rust-lang/crates.io-index"
5478+checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932"
5479+dependencies = [
5480+ "proc-macro2",
5481+ "quote",
5482+ "syn 2.0.101",
5483+]
5484+
5485+[[package]]
5486+name = "sealed"
5487+version = "0.6.0"
5488+source = "registry+https://github.com/rust-lang/crates.io-index"
5489+checksum = "22f968c5ea23d555e670b449c1c5e7b2fc399fdaec1d304a17cd48e288abc107"
5490+dependencies = [
5491+ "proc-macro2",
5492+ "quote",
5493+ "syn 2.0.101",
5494+]
5495+
5496+[[package]]
5497+name = "security-framework"
5498+version = "3.5.1"
5499+source = "registry+https://github.com/rust-lang/crates.io-index"
5500+checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef"
5501+dependencies = [
5502+ "bitflags 2.10.0",
5503+ "core-foundation",
5504+ "core-foundation-sys",
5505+ "libc",
5506+ "security-framework-sys",
5507+]
5508+
5509+[[package]]
5510+name = "security-framework-sys"
5511+version = "2.15.0"
5512+source = "registry+https://github.com/rust-lang/crates.io-index"
5513+checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0"
5514+dependencies = [
5515+ "core-foundation-sys",
5516+ "libc",
5517+]
5518+
5519+[[package]]
5520+name = "semver"
5521+version = "1.0.27"
5522+source = "registry+https://github.com/rust-lang/crates.io-index"
5523+checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
5524+dependencies = [
5525+ "serde",
5526+ "serde_core",
5527+]
5528+
5529+[[package]]
5530+name = "sentry"
5531+version = "0.47.0"
5532+source = "registry+https://github.com/rust-lang/crates.io-index"
5533+checksum = "eb25f439f97d26fea01d717fa626167ceffcd981addaa670001e70505b72acbb"
5534+dependencies = [
5535+ "cfg_aliases",
5536+ "httpdate",
5537+ "reqwest",
5538+ "sentry-backtrace",
5539+ "sentry-contexts",
5540+ "sentry-core",
5541+ "sentry-debug-images",
5542+ "sentry-panic",
5543+ "sentry-tracing",
5544+ "tokio",
5545+]
5546+
5547+[[package]]
5548+name = "sentry-backtrace"
5549+version = "0.47.0"
5550+source = "registry+https://github.com/rust-lang/crates.io-index"
5551+checksum = "46a8c2c1bd5c1f735e84f28b48e7d72efcaafc362b7541bc8253e60e8fcdffc6"
5552+dependencies = [
5553+ "backtrace",
5554+ "regex",
5555+ "sentry-core",
5556+]
5557+
5558+[[package]]
5559+name = "sentry-contexts"
5560+version = "0.47.0"
5561+source = "registry+https://github.com/rust-lang/crates.io-index"
5562+checksum = "9b88a90baa654d7f0e1f4b667f6b434293d9f72c71bef16b197c76af5b7d5803"
5563+dependencies = [
5564+ "hostname",
5565+ "libc",
5566+ "os_info",
5567+ "rustc_version",
5568+ "sentry-core",
5569+ "uname",
5570+]
5571+
5572+[[package]]
5573+name = "sentry-core"
5574+version = "0.47.0"
5575+source = "registry+https://github.com/rust-lang/crates.io-index"
5576+checksum = "0ac170a5bba8bec6e3339c90432569d89641fa7a3d3e4f44987d24f0762e6adf"
5577+dependencies = [
5578+ "rand 0.9.4",
5579+ "sentry-types",
5580+ "serde",
5581+ "serde_json",
5582+ "url",
5583+]
5584+
5585+[[package]]
5586+name = "sentry-debug-images"
5587+version = "0.47.0"
5588+source = "registry+https://github.com/rust-lang/crates.io-index"
5589+checksum = "dd9646a972b57896d4a92ed200cf76139f8e30b3cfd03b6662ae59926d26633c"
5590+dependencies = [
5591+ "findshlibs",
5592+ "sentry-core",
5593+]
5594+
5595+[[package]]
5596+name = "sentry-panic"
5597+version = "0.47.0"
5598+source = "registry+https://github.com/rust-lang/crates.io-index"
5599+checksum = "6127d3d304ba5ce0409401e85aae538e303a569f8dbb031bf64f9ba0f7174346"
5600+dependencies = [
5601+ "sentry-backtrace",
5602+ "sentry-core",
5603+]
5604+
5605+[[package]]
5606+name = "sentry-tracing"
5607+version = "0.47.0"
5608+source = "registry+https://github.com/rust-lang/crates.io-index"
5609+checksum = "27701acc51e68db5281802b709010395bfcbcb128b1d0a4e5873680d3b47ff0c"
5610+dependencies = [
5611+ "bitflags 2.10.0",
5612+ "sentry-backtrace",
5613+ "sentry-core",
5614+ "tracing-core",
5615+ "tracing-subscriber",
5616+]
5617+
5618+[[package]]
5619+name = "sentry-types"
5620+version = "0.47.0"
5621+source = "registry+https://github.com/rust-lang/crates.io-index"
5622+checksum = "56780cb5597d676bf22e6c11d1f062eb4def46390ea3bfb047bcbcf7dfd19bdb"
5623+dependencies = [
5624+ "debugid",
5625+ "hex",
5626+ "rand 0.9.4",
5627+ "serde",
5628+ "serde_json",
5629+ "thiserror 2.0.18",
5630+ "time",
5631+ "url",
5632+ "uuid",
5633+]
5634+
5635+[[package]]
5636+name = "serde"
5637+version = "1.0.228"
5638+source = "registry+https://github.com/rust-lang/crates.io-index"
5639+checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
5640+dependencies = [
5641+ "serde_core",
5642+ "serde_derive",
5643+]
5644+
5645+[[package]]
5646+name = "serde-wasm-bindgen"
5647+version = "0.6.5"
5648+source = "registry+https://github.com/rust-lang/crates.io-index"
5649+checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b"
5650+dependencies = [
5651+ "js-sys",
5652+ "serde",
5653+ "wasm-bindgen",
5654+]
5655+
5656+[[package]]
5657+name = "serde_bytes"
5658+version = "0.11.19"
5659+source = "registry+https://github.com/rust-lang/crates.io-index"
5660+checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8"
5661+dependencies = [
5662+ "serde",
5663+ "serde_core",
5664+]
5665+
5666+[[package]]
5667+name = "serde_core"
5668+version = "1.0.228"
5669+source = "registry+https://github.com/rust-lang/crates.io-index"
5670+checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
5671+dependencies = [
5672+ "serde_derive",
5673+]
5674+
5675+[[package]]
5676+name = "serde_derive"
5677+version = "1.0.228"
5678+source = "registry+https://github.com/rust-lang/crates.io-index"
5679+checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
5680+dependencies = [
5681+ "proc-macro2",
5682+ "quote",
5683+ "syn 2.0.101",
5684+]
5685+
5686+[[package]]
5687+name = "serde_html_form"
5688+version = "0.4.0"
5689+source = "registry+https://github.com/rust-lang/crates.io-index"
5690+checksum = "0946d52b4b7e28823148aebbeceb901012c595ad737920d504fa8634bb099e6f"
5691+dependencies = [
5692+ "form_urlencoded",
5693+ "indexmap",
5694+ "itoa",
5695+ "ryu",
5696+ "serde_core",
5697+]
5698+
5699+[[package]]
5700+name = "serde_json"
5701+version = "1.0.145"
5702+source = "registry+https://github.com/rust-lang/crates.io-index"
5703+checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
5704+dependencies = [
5705+ "itoa",
5706+ "memchr",
5707+ "ryu",
5708+ "serde",
5709+ "serde_core",
5710+]
5711+
5712+[[package]]
5713+name = "serde_path_to_error"
5714+version = "0.1.20"
5715+source = "registry+https://github.com/rust-lang/crates.io-index"
5716+checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457"
5717+dependencies = [
5718+ "itoa",
5719+ "serde",
5720+ "serde_core",
5721+]
5722+
5723+[[package]]
5724+name = "serde_spanned"
5725+version = "1.1.1"
5726+source = "registry+https://github.com/rust-lang/crates.io-index"
5727+checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
5728+dependencies = [
5729+ "serde_core",
5730+]
5731+
5732+[[package]]
5733+name = "serde_urlencoded"
5734+version = "0.7.1"
5735+source = "registry+https://github.com/rust-lang/crates.io-index"
5736+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
5737+dependencies = [
5738+ "form_urlencoded",
5739+ "itoa",
5740+ "ryu",
5741+ "serde",
5742+]
5743+
5744+[[package]]
5745+name = "sha1"
5746+version = "0.10.6"
5747+source = "registry+https://github.com/rust-lang/crates.io-index"
5748+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
5749+dependencies = [
5750+ "cfg-if",
5751+ "cpufeatures 0.2.12",
5752+ "digest",
5753+]
5754+
5755+[[package]]
5756+name = "sha2"
5757+version = "0.10.9"
5758+source = "registry+https://github.com/rust-lang/crates.io-index"
5759+checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
5760+dependencies = [
5761+ "cfg-if",
5762+ "cpufeatures 0.2.12",
5763+ "digest",
5764+]
5765+
5766+[[package]]
5767+name = "sharded-slab"
5768+version = "0.1.7"
5769+source = "registry+https://github.com/rust-lang/crates.io-index"
5770+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
5771+dependencies = [
5772+ "lazy_static",
5773+]
5774+
5775+[[package]]
5776+name = "shlex"
5777+version = "1.3.0"
5778+source = "registry+https://github.com/rust-lang/crates.io-index"
5779+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
5780+
5781+[[package]]
5782+name = "signal-hook"
5783+version = "0.3.17"
5784+source = "registry+https://github.com/rust-lang/crates.io-index"
5785+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
5786+dependencies = [
5787+ "libc",
5788+ "signal-hook-registry",
5789+]
5790+
5791+[[package]]
5792+name = "signal-hook-mio"
5793+version = "0.2.4"
5794+source = "registry+https://github.com/rust-lang/crates.io-index"
5795+checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd"
5796+dependencies = [
5797+ "libc",
5798+ "mio",
5799+ "signal-hook",
5800+]
5801+
5802+[[package]]
5803+name = "signal-hook-registry"
5804+version = "1.4.2"
5805+source = "registry+https://github.com/rust-lang/crates.io-index"
5806+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
5807+dependencies = [
5808+ "libc",
5809+]
5810+
5811+[[package]]
5812+name = "signature"
5813+version = "2.2.0"
5814+source = "registry+https://github.com/rust-lang/crates.io-index"
5815+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
5816+dependencies = [
5817+ "rand_core 0.6.4",
5818+]
5819+
5820+[[package]]
5821+name = "simd-adler32"
5822+version = "0.3.7"
5823+source = "registry+https://github.com/rust-lang/crates.io-index"
5824+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
5825+
5826+[[package]]
5827+name = "similar"
5828+version = "2.6.0"
5829+source = "registry+https://github.com/rust-lang/crates.io-index"
5830+checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e"
5831+
5832+[[package]]
5833+name = "similar-asserts"
5834+version = "1.7.0"
5835+source = "registry+https://github.com/rust-lang/crates.io-index"
5836+checksum = "b5b441962c817e33508847a22bd82f03a30cff43642dc2fae8b050566121eb9a"
5837+dependencies = [
5838+ "console",
5839+ "similar",
5840+]
5841+
5842+[[package]]
5843+name = "siphasher"
5844+version = "1.0.1"
5845+source = "registry+https://github.com/rust-lang/crates.io-index"
5846+checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
5847+
5848+[[package]]
5849+name = "sketches-ddsketch"
5850+version = "0.4.0"
5851+source = "registry+https://github.com/rust-lang/crates.io-index"
5852+checksum = "05e40b6cf54d988dc1a2223531b969c9a9e30906ad90ef64890c27b4bfbb46ea"
5853+dependencies = [
5854+ "serde",
5855+]
5856+
5857+[[package]]
5858+name = "slab"
5859+version = "0.4.9"
5860+source = "registry+https://github.com/rust-lang/crates.io-index"
5861+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
5862+dependencies = [
5863+ "autocfg",
5864+]
5865+
5866+[[package]]
5867+name = "smallvec"
5868+version = "1.13.2"
5869+source = "registry+https://github.com/rust-lang/crates.io-index"
5870+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
5871+dependencies = [
5872+ "serde",
5873+]
5874+
5875+[[package]]
5876+name = "smawk"
5877+version = "0.3.2"
5878+source = "registry+https://github.com/rust-lang/crates.io-index"
5879+checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
5880+
5881+[[package]]
5882+name = "socket2"
5883+version = "0.5.7"
5884+source = "registry+https://github.com/rust-lang/crates.io-index"
5885+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
5886+dependencies = [
5887+ "libc",
5888+ "windows-sys 0.52.0",
5889+]
5890+
5891+[[package]]
5892+name = "socket2"
5893+version = "0.6.0"
5894+source = "registry+https://github.com/rust-lang/crates.io-index"
5895+checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807"
5896+dependencies = [
5897+ "libc",
5898+ "windows-sys 0.59.0",
5899+]
5900+
5901+[[package]]
5902+name = "spki"
5903+version = "0.7.3"
5904+source = "registry+https://github.com/rust-lang/crates.io-index"
5905+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
5906+dependencies = [
5907+ "base64ct",
5908+ "der",
5909+]
5910+
5911+[[package]]
5912+name = "stable_deref_trait"
5913+version = "1.2.0"
5914+source = "registry+https://github.com/rust-lang/crates.io-index"
5915+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
5916+
5917+[[package]]
5918+name = "static_assertions"
5919+version = "1.1.0"
5920+source = "registry+https://github.com/rust-lang/crates.io-index"
5921+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
5922+
5923+[[package]]
5924+name = "statrs"
5925+version = "0.18.0"
5926+source = "registry+https://github.com/rust-lang/crates.io-index"
5927+checksum = "2a3fe7c28c6512e766b0874335db33c94ad7b8f9054228ae1c2abd47ce7d335e"
5928+dependencies = [
5929+ "approx",
5930+ "num-traits",
5931+]
5932+
5933+[[package]]
5934+name = "stream_assert"
5935+version = "0.1.1"
5936+source = "registry+https://github.com/rust-lang/crates.io-index"
5937+checksum = "7fab678a73c9013f0427c63cfb42d98bd459a465194e7e583df486f679684b96"
5938+dependencies = [
5939+ "futures-util",
5940+]
5941+
5942+[[package]]
5943+name = "string_cache"
5944+version = "0.9.0"
5945+source = "registry+https://github.com/rust-lang/crates.io-index"
5946+checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901"
5947+dependencies = [
5948+ "new_debug_unreachable",
5949+ "parking_lot",
5950+ "phf_shared 0.13.1",
5951+ "precomputed-hash",
5952+]
5953+
5954+[[package]]
5955+name = "string_cache_codegen"
5956+version = "0.6.1"
5957+source = "registry+https://github.com/rust-lang/crates.io-index"
5958+checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69"
5959+dependencies = [
5960+ "phf_generator 0.13.1",
5961+ "phf_shared 0.13.1",
5962+ "proc-macro2",
5963+ "quote",
5964+]
5965+
5966+[[package]]
5967+name = "strsim"
5968+version = "0.11.1"
5969+source = "registry+https://github.com/rust-lang/crates.io-index"
5970+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
5971+
5972+[[package]]
5973+name = "strum"
5974+version = "0.27.2"
5975+source = "registry+https://github.com/rust-lang/crates.io-index"
5976+checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf"
5977+dependencies = [
5978+ "strum_macros",
5979+]
5980+
5981+[[package]]
5982+name = "strum_macros"
5983+version = "0.27.1"
5984+source = "registry+https://github.com/rust-lang/crates.io-index"
5985+checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8"
5986+dependencies = [
5987+ "heck",
5988+ "proc-macro2",
5989+ "quote",
5990+ "rustversion",
5991+ "syn 2.0.101",
5992+]
5993+
5994+[[package]]
5995+name = "subtle"
5996+version = "2.6.1"
5997+source = "registry+https://github.com/rust-lang/crates.io-index"
5998+checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
5999+
6000+[[package]]
6001+name = "syn"
6002+version = "1.0.109"
6003+source = "registry+https://github.com/rust-lang/crates.io-index"
6004+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
6005+dependencies = [
6006+ "proc-macro2",
6007+ "quote",
6008+ "unicode-ident",
6009+]
6010+
6011+[[package]]
6012+name = "syn"
6013+version = "2.0.101"
6014+source = "registry+https://github.com/rust-lang/crates.io-index"
6015+checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
6016+dependencies = [
6017+ "proc-macro2",
6018+ "quote",
6019+ "unicode-ident",
6020+]
6021+
6022+[[package]]
6023+name = "sync_wrapper"
6024+version = "1.0.1"
6025+source = "registry+https://github.com/rust-lang/crates.io-index"
6026+checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
6027+dependencies = [
6028+ "futures-core",
6029+]
6030+
6031+[[package]]
6032+name = "synstructure"
6033+version = "0.13.1"
6034+source = "registry+https://github.com/rust-lang/crates.io-index"
6035+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
6036+dependencies = [
6037+ "proc-macro2",
6038+ "quote",
6039+ "syn 2.0.101",
6040+]
6041+
6042+[[package]]
6043+name = "tantivy"
6044+version = "0.26.1"
6045+source = "registry+https://github.com/rust-lang/crates.io-index"
6046+checksum = "edde6a10743fff00a4e1a8c9ef020bf5f3cbad301b7d2d39f2b07f123c4eac07"
6047+dependencies = [
6048+ "aho-corasick",
6049+ "arc-swap",
6050+ "base64",
6051+ "bitpacking",
6052+ "bon",
6053+ "byteorder",
6054+ "census",
6055+ "crc32fast",
6056+ "crossbeam-channel",
6057+ "datasketches",
6058+ "downcast-rs",
6059+ "fastdivide",
6060+ "fnv",
6061+ "fs4",
6062+ "htmlescape",
6063+ "itertools 0.14.0",
6064+ "levenshtein_automata",
6065+ "log",
6066+ "lru",
6067+ "lz4_flex",
6068+ "measure_time",
6069+ "memmap2",
6070+ "once_cell",
6071+ "oneshot",
6072+ "rayon",
6073+ "regex",
6074+ "rust-stemmers",
6075+ "rustc-hash",
6076+ "serde",
6077+ "serde_json",
6078+ "sketches-ddsketch",
6079+ "smallvec",
6080+ "tantivy-bitpacker",
6081+ "tantivy-columnar",
6082+ "tantivy-common",
6083+ "tantivy-fst",
6084+ "tantivy-query-grammar",
6085+ "tantivy-stacker",
6086+ "tantivy-tokenizer-api",
6087+ "tempfile",
6088+ "thiserror 2.0.18",
6089+ "time",
6090+ "typetag",
6091+ "uuid",
6092+ "winapi",
6093+]
6094+
6095+[[package]]
6096+name = "tantivy-bitpacker"
6097+version = "0.10.0"
6098+source = "registry+https://github.com/rust-lang/crates.io-index"
6099+checksum = "4fed3d674429bcd2de5d0a6d1aa5495fed8afd9c5ecce993019caf7615f53fa4"
6100+dependencies = [
6101+ "bitpacking",
6102+]
6103+
6104+[[package]]
6105+name = "tantivy-columnar"
6106+version = "0.7.0"
6107+source = "registry+https://github.com/rust-lang/crates.io-index"
6108+checksum = "c57166f5bcfd478f370ab8445afb4678dce44801fa5ce5c451aaf8595583c5dc"
6109+dependencies = [
6110+ "downcast-rs",
6111+ "fastdivide",
6112+ "itertools 0.14.0",
6113+ "serde",
6114+ "tantivy-bitpacker",
6115+ "tantivy-common",
6116+ "tantivy-sstable",
6117+ "tantivy-stacker",
6118+]
6119+
6120+[[package]]
6121+name = "tantivy-common"
6122+version = "0.11.0"
6123+source = "registry+https://github.com/rust-lang/crates.io-index"
6124+checksum = "bbf10915aa75da3c3b0d58b58853d2e889efbaf32d4982a4c3715dde6bba23e5"
6125+dependencies = [
6126+ "async-trait",
6127+ "byteorder",
6128+ "ownedbytes",
6129+ "serde",
6130+ "time",
6131+]
6132+
6133+[[package]]
6134+name = "tantivy-fst"
6135+version = "0.5.0"
6136+source = "registry+https://github.com/rust-lang/crates.io-index"
6137+checksum = "d60769b80ad7953d8a7b2c70cdfe722bbcdcac6bccc8ac934c40c034d866fc18"
6138+dependencies = [
6139+ "byteorder",
6140+ "regex-syntax",
6141+ "utf8-ranges",
6142+]
6143+
6144+[[package]]
6145+name = "tantivy-query-grammar"
6146+version = "0.26.0"
6147+source = "registry+https://github.com/rust-lang/crates.io-index"
6148+checksum = "dfadb8526b6da90704feb293b0701a6aae62ea14983143344be2dc5ce30f1d82"
6149+dependencies = [
6150+ "fnv",
6151+ "nom",
6152+ "ordered-float 5.3.0",
6153+ "serde",
6154+ "serde_json",
6155+]
6156+
6157+[[package]]
6158+name = "tantivy-sstable"
6159+version = "0.7.0"
6160+source = "registry+https://github.com/rust-lang/crates.io-index"
6161+checksum = "8a2cfc3ac5164cbadc28965ffb145a8f47582a60ae5897859ad8d4316596c606"
6162+dependencies = [
6163+ "futures-util",
6164+ "itertools 0.14.0",
6165+ "tantivy-bitpacker",
6166+ "tantivy-common",
6167+ "tantivy-fst",
6168+ "zstd",
6169+]
6170+
6171+[[package]]
6172+name = "tantivy-stacker"
6173+version = "0.7.0"
6174+source = "registry+https://github.com/rust-lang/crates.io-index"
6175+checksum = "6cbb051742da9d53ca9e8fff43a9b10e319338b24e2c0e15d0372df19ffeb951"
6176+dependencies = [
6177+ "murmurhash32",
6178+ "tantivy-common",
6179+]
6180+
6181+[[package]]
6182+name = "tantivy-tokenizer-api"
6183+version = "0.7.0"
6184+source = "registry+https://github.com/rust-lang/crates.io-index"
6185+checksum = "eac258c2c6390673f2685813afeeafcb8c4e0ee7de8dd3fc46838dcc37263f98"
6186+dependencies = [
6187+ "serde",
6188+]
6189+
6190+[[package]]
6191+name = "tempfile"
6192+version = "3.23.0"
6193+source = "registry+https://github.com/rust-lang/crates.io-index"
6194+checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
6195+dependencies = [
6196+ "fastrand",
6197+ "getrandom 0.3.4",
6198+ "once_cell",
6199+ "rustix",
6200+ "windows-sys 0.61.2",
6201+]
6202+
6203+[[package]]
6204+name = "tendril"
6205+version = "0.5.0"
6206+source = "registry+https://github.com/rust-lang/crates.io-index"
6207+checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24"
6208+dependencies = [
6209+ "new_debug_unreachable",
6210+ "utf-8",
6211+]
6212+
6213+[[package]]
6214+name = "terminfo"
6215+version = "0.9.0"
6216+source = "registry+https://github.com/rust-lang/crates.io-index"
6217+checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662"
6218+dependencies = [
6219+ "fnv",
6220+ "nom",
6221+ "phf 0.11.3",
6222+ "phf_codegen 0.11.3",
6223+]
6224+
6225+[[package]]
6226+name = "termios"
6227+version = "0.3.3"
6228+source = "registry+https://github.com/rust-lang/crates.io-index"
6229+checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b"
6230+dependencies = [
6231+ "libc",
6232+]
6233+
6234+[[package]]
6235+name = "termwiz"
6236+version = "0.23.3"
6237+source = "registry+https://github.com/rust-lang/crates.io-index"
6238+checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7"
6239+dependencies = [
6240+ "anyhow",
6241+ "base64",
6242+ "bitflags 2.10.0",
6243+ "fancy-regex",
6244+ "filedescriptor",
6245+ "finl_unicode",
6246+ "fixedbitset",
6247+ "hex",
6248+ "lazy_static",
6249+ "libc",
6250+ "log",
6251+ "memmem",
6252+ "nix 0.29.0",
6253+ "num-derive",
6254+ "num-traits",
6255+ "ordered-float 4.6.0",
6256+ "pest",
6257+ "pest_derive",
6258+ "phf 0.11.3",
6259+ "sha2",
6260+ "signal-hook",
6261+ "siphasher",
6262+ "terminfo",
6263+ "termios",
6264+ "thiserror 1.0.63",
6265+ "ucd-trie",
6266+ "unicode-segmentation",
6267+ "vtparse",
6268+ "wezterm-bidi",
6269+ "wezterm-blob-leases",
6270+ "wezterm-color-types",
6271+ "wezterm-dynamic",
6272+ "wezterm-input-types",
6273+ "winapi",
6274+]
6275+
6276+[[package]]
6277+name = "textwrap"
6278+version = "0.16.2"
6279+source = "registry+https://github.com/rust-lang/crates.io-index"
6280+checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057"
6281+dependencies = [
6282+ "smawk",
6283+ "unicode-linebreak",
6284+ "unicode-width",
6285+]
6286+
6287+[[package]]
6288+name = "thiserror"
6289+version = "1.0.63"
6290+source = "registry+https://github.com/rust-lang/crates.io-index"
6291+checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
6292+dependencies = [
6293+ "thiserror-impl 1.0.63",
6294+]
6295+
6296+[[package]]
6297+name = "thiserror"
6298+version = "2.0.18"
6299+source = "registry+https://github.com/rust-lang/crates.io-index"
6300+checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
6301+dependencies = [
6302+ "thiserror-impl 2.0.18",
6303+]
6304+
6305+[[package]]
6306+name = "thiserror-impl"
6307+version = "1.0.63"
6308+source = "registry+https://github.com/rust-lang/crates.io-index"
6309+checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
6310+dependencies = [
6311+ "proc-macro2",
6312+ "quote",
6313+ "syn 2.0.101",
6314+]
6315+
6316+[[package]]
6317+name = "thiserror-impl"
6318+version = "2.0.18"
6319+source = "registry+https://github.com/rust-lang/crates.io-index"
6320+checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
6321+dependencies = [
6322+ "proc-macro2",
6323+ "quote",
6324+ "syn 2.0.101",
6325+]
6326+
6327+[[package]]
6328+name = "thread_local"
6329+version = "1.1.8"
6330+source = "registry+https://github.com/rust-lang/crates.io-index"
6331+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
6332+dependencies = [
6333+ "cfg-if",
6334+ "once_cell",
6335+]
6336+
6337+[[package]]
6338+name = "throbber-widgets-tui"
6339+version = "0.11.0"
6340+source = "registry+https://github.com/rust-lang/crates.io-index"
6341+checksum = "f1e6941f74491a80911cb8821cb1f55f7e13bca867b28a2b14e5a1daaf691eb3"
6342+dependencies = [
6343+ "ratatui",
6344+]
6345+
6346+[[package]]
6347+name = "time"
6348+version = "0.3.47"
6349+source = "registry+https://github.com/rust-lang/crates.io-index"
6350+checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"
6351+dependencies = [
6352+ "deranged",
6353+ "itoa",
6354+ "libc",
6355+ "num-conv",
6356+ "num_threads",
6357+ "powerfmt",
6358+ "serde_core",
6359+ "time-core",
6360+ "time-macros",
6361+]
6362+
6363+[[package]]
6364+name = "time-core"
6365+version = "0.1.8"
6366+source = "registry+https://github.com/rust-lang/crates.io-index"
6367+checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
6368+
6369+[[package]]
6370+name = "time-macros"
6371+version = "0.2.27"
6372+source = "registry+https://github.com/rust-lang/crates.io-index"
6373+checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215"
6374+dependencies = [
6375+ "num-conv",
6376+ "time-core",
6377+]
6378+
6379+[[package]]
6380+name = "tinystr"
6381+version = "0.7.6"
6382+source = "registry+https://github.com/rust-lang/crates.io-index"
6383+checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
6384+dependencies = [
6385+ "displaydoc",
6386+ "zerovec",
6387+]
6388+
6389+[[package]]
6390+name = "tinytemplate"
6391+version = "1.2.1"
6392+source = "registry+https://github.com/rust-lang/crates.io-index"
6393+checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
6394+dependencies = [
6395+ "serde",
6396+ "serde_json",
6397+]
6398+
6399+[[package]]
6400+name = "tinyvec"
6401+version = "1.8.0"
6402+source = "registry+https://github.com/rust-lang/crates.io-index"
6403+checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
6404+dependencies = [
6405+ "tinyvec_macros",
6406+]
6407+
6408+[[package]]
6409+name = "tinyvec_macros"
6410+version = "0.1.1"
6411+source = "registry+https://github.com/rust-lang/crates.io-index"
6412+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
6413+
6414+[[package]]
6415+name = "tokio"
6416+version = "1.48.0"
6417+source = "registry+https://github.com/rust-lang/crates.io-index"
6418+checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
6419+dependencies = [
6420+ "bytes",
6421+ "libc",
6422+ "mio",
6423+ "pin-project-lite",
6424+ "socket2 0.6.0",
6425+ "tokio-macros",
6426+ "windows-sys 0.61.2",
6427+]
6428+
6429+[[package]]
6430+name = "tokio-macros"
6431+version = "2.6.0"
6432+source = "registry+https://github.com/rust-lang/crates.io-index"
6433+checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
6434+dependencies = [
6435+ "proc-macro2",
6436+ "quote",
6437+ "syn 2.0.101",
6438+]
6439+
6440+[[package]]
6441+name = "tokio-rustls"
6442+version = "0.26.0"
6443+source = "registry+https://github.com/rust-lang/crates.io-index"
6444+checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
6445+dependencies = [
6446+ "rustls",
6447+ "rustls-pki-types",
6448+ "tokio",
6449+]
6450+
6451+[[package]]
6452+name = "tokio-stream"
6453+version = "0.1.17"
6454+source = "registry+https://github.com/rust-lang/crates.io-index"
6455+checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047"
6456+dependencies = [
6457+ "futures-core",
6458+ "pin-project-lite",
6459+ "tokio",
6460+ "tokio-util",
6461+]
6462+
6463+[[package]]
6464+name = "tokio-test"
6465+version = "0.4.4"
6466+source = "registry+https://github.com/rust-lang/crates.io-index"
6467+checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7"
6468+dependencies = [
6469+ "async-stream",
6470+ "bytes",
6471+ "futures-core",
6472+ "tokio",
6473+ "tokio-stream",
6474+]
6475+
6476+[[package]]
6477+name = "tokio-util"
6478+version = "0.7.17"
6479+source = "registry+https://github.com/rust-lang/crates.io-index"
6480+checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594"
6481+dependencies = [
6482+ "bytes",
6483+ "futures-core",
6484+ "futures-sink",
6485+ "pin-project-lite",
6486+ "tokio",
6487+]
6488+
6489+[[package]]
6490+name = "toml"
6491+version = "0.9.7"
6492+source = "registry+https://github.com/rust-lang/crates.io-index"
6493+checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0"
6494+dependencies = [
6495+ "indexmap",
6496+ "serde_core",
6497+ "serde_spanned",
6498+ "toml_datetime 0.7.2",
6499+ "toml_parser",
6500+ "toml_writer",
6501+ "winnow 0.7.13",
6502+]
6503+
6504+[[package]]
6505+name = "toml"
6506+version = "1.1.2+spec-1.1.0"
6507+source = "registry+https://github.com/rust-lang/crates.io-index"
6508+checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee"
6509+dependencies = [
6510+ "serde_core",
6511+ "serde_spanned",
6512+ "toml_datetime 1.1.1+spec-1.1.0",
6513+ "toml_parser",
6514+ "winnow 1.0.1",
6515+]
6516+
6517+[[package]]
6518+name = "toml_datetime"
6519+version = "0.6.8"
6520+source = "registry+https://github.com/rust-lang/crates.io-index"
6521+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
6522+
6523+[[package]]
6524+name = "toml_datetime"
6525+version = "0.7.2"
6526+source = "registry+https://github.com/rust-lang/crates.io-index"
6527+checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1"
6528+dependencies = [
6529+ "serde_core",
6530+]
6531+
6532+[[package]]
6533+name = "toml_datetime"
6534+version = "1.1.1+spec-1.1.0"
6535+source = "registry+https://github.com/rust-lang/crates.io-index"
6536+checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
6537+dependencies = [
6538+ "serde_core",
6539+]
6540+
6541+[[package]]
6542+name = "toml_edit"
6543+version = "0.22.22"
6544+source = "registry+https://github.com/rust-lang/crates.io-index"
6545+checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5"
6546+dependencies = [
6547+ "indexmap",
6548+ "toml_datetime 0.6.8",
6549+ "winnow 0.6.20",
6550+]
6551+
6552+[[package]]
6553+name = "toml_parser"
6554+version = "1.1.2+spec-1.1.0"
6555+source = "registry+https://github.com/rust-lang/crates.io-index"
6556+checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
6557+dependencies = [
6558+ "winnow 1.0.1",
6559+]
6560+
6561+[[package]]
6562+name = "toml_writer"
6563+version = "1.0.4"
6564+source = "registry+https://github.com/rust-lang/crates.io-index"
6565+checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2"
6566+
6567+[[package]]
6568+name = "tower"
6569+version = "0.5.2"
6570+source = "registry+https://github.com/rust-lang/crates.io-index"
6571+checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
6572+dependencies = [
6573+ "futures-core",
6574+ "futures-util",
6575+ "pin-project-lite",
6576+ "sync_wrapper",
6577+ "tokio",
6578+ "tower-layer",
6579+ "tower-service",
6580+ "tracing",
6581+]
6582+
6583+[[package]]
6584+name = "tower-http"
6585+version = "0.6.8"
6586+source = "registry+https://github.com/rust-lang/crates.io-index"
6587+checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8"
6588+dependencies = [
6589+ "async-compression",
6590+ "bitflags 2.10.0",
6591+ "bytes",
6592+ "futures-core",
6593+ "futures-util",
6594+ "http",
6595+ "http-body",
6596+ "http-body-util",
6597+ "iri-string",
6598+ "pin-project-lite",
6599+ "tokio",
6600+ "tokio-util",
6601+ "tower",
6602+ "tower-layer",
6603+ "tower-service",
6604+]
6605+
6606+[[package]]
6607+name = "tower-layer"
6608+version = "0.3.3"
6609+source = "registry+https://github.com/rust-lang/crates.io-index"
6610+checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
6611+
6612+[[package]]
6613+name = "tower-service"
6614+version = "0.3.3"
6615+source = "registry+https://github.com/rust-lang/crates.io-index"
6616+checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
6617+
6618+[[package]]
6619+name = "tracing"
6620+version = "0.1.41"
6621+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"
6622+dependencies = [
6623+ "log",
6624+ "pin-project-lite",
6625+ "tracing-attributes",
6626+ "tracing-core",
6627+]
6628+
6629+[[package]]
6630+name = "tracing-appender"
6631+version = "0.2.3"
6632+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"
6633+dependencies = [
6634+ "crossbeam-channel",
6635+ "thiserror 2.0.18",
6636+ "time",
6637+ "tracing-subscriber",
6638+]
6639+
6640+[[package]]
6641+name = "tracing-attributes"
6642+version = "0.1.30"
6643+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"
6644+dependencies = [
6645+ "proc-macro2",
6646+ "quote",
6647+ "syn 2.0.101",
6648+]
6649+
6650+[[package]]
6651+name = "tracing-core"
6652+version = "0.1.34"
6653+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"
6654+dependencies = [
6655+ "once_cell",
6656+ "valuable",
6657+]
6658+
6659+[[package]]
6660+name = "tracing-error"
6661+version = "0.2.0"
6662+source = "registry+https://github.com/rust-lang/crates.io-index"
6663+checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e"
6664+dependencies = [
6665+ "tracing",
6666+ "tracing-subscriber",
6667+]
6668+
6669+[[package]]
6670+name = "tracing-log"
6671+version = "0.2.0"
6672+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"
6673+dependencies = [
6674+ "log",
6675+ "once_cell",
6676+ "tracing-core",
6677+]
6678+
6679+[[package]]
6680+name = "tracing-subscriber"
6681+version = "0.3.20"
6682+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"
6683+dependencies = [
6684+ "matchers",
6685+ "nu-ansi-term",
6686+ "once_cell",
6687+ "regex-automata",
6688+ "sharded-slab",
6689+ "smallvec",
6690+ "thread_local",
6691+ "tracing",
6692+ "tracing-core",
6693+ "tracing-log",
6694+]
6695+
6696+[[package]]
6697+name = "try-lock"
6698+version = "0.2.5"
6699+source = "registry+https://github.com/rust-lang/crates.io-index"
6700+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
6701+
6702+[[package]]
6703+name = "tui-widget-list"
6704+version = "0.15.2"
6705+source = "registry+https://github.com/rust-lang/crates.io-index"
6706+checksum = "8fbf7f6c7d04beb3602630d83db44e81d7a1de1fea11ca3435d82e094c5c0192"
6707+dependencies = [
6708+ "ratatui-core",
6709+ "ratatui-widgets",
6710+]
6711+
6712+[[package]]
6713+name = "typeid"
6714+version = "1.0.3"
6715+source = "registry+https://github.com/rust-lang/crates.io-index"
6716+checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c"
6717+
6718+[[package]]
6719+name = "typenum"
6720+version = "1.17.0"
6721+source = "registry+https://github.com/rust-lang/crates.io-index"
6722+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
6723+
6724+[[package]]
6725+name = "typetag"
6726+version = "0.2.22"
6727+source = "registry+https://github.com/rust-lang/crates.io-index"
6728+checksum = "c5a897b12c6c1151ad0b138b8db50252dc301f93bc3b027db05eec82aeed298c"
6729+dependencies = [
6730+ "erased-serde",
6731+ "inventory",
6732+ "once_cell",
6733+ "serde",
6734+ "typetag-impl",
6735+]
6736+
6737+[[package]]
6738+name = "typetag-impl"
6739+version = "0.2.22"
6740+source = "registry+https://github.com/rust-lang/crates.io-index"
6741+checksum = "cf808357c6ed7e13ba0f3277ec8d8f21b2d501274895104263985330c726c1c5"
6742+dependencies = [
6743+ "proc-macro2",
6744+ "quote",
6745+ "syn 2.0.101",
6746+]
6747+
6748+[[package]]
6749+name = "typewit"
6750+version = "1.14.2"
6751+source = "registry+https://github.com/rust-lang/crates.io-index"
6752+checksum = "f8c1ae7cc0fdb8b842d65d127cb981574b0d2b249b74d1c7a2986863dc134f71"
6753+
6754+[[package]]
6755+name = "ucd-trie"
6756+version = "0.1.7"
6757+source = "registry+https://github.com/rust-lang/crates.io-index"
6758+checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971"
6759+
6760+[[package]]
6761+name = "ulid"
6762+version = "1.1.4"
6763+source = "registry+https://github.com/rust-lang/crates.io-index"
6764+checksum = "f294bff79170ed1c5633812aff1e565c35d993a36e757f9bc0accf5eec4e6045"
6765+dependencies = [
6766+ "rand 0.8.6",
6767+ "web-time",
6768+]
6769+
6770+[[package]]
6771+name = "uname"
6772+version = "0.1.1"
6773+source = "registry+https://github.com/rust-lang/crates.io-index"
6774+checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8"
6775+dependencies = [
6776+ "libc",
6777+]
6778+
6779+[[package]]
6780+name = "unarray"
6781+version = "0.1.4"
6782+source = "registry+https://github.com/rust-lang/crates.io-index"
6783+checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
6784+
6785+[[package]]
6786+name = "unicase"
6787+version = "2.7.0"
6788+source = "registry+https://github.com/rust-lang/crates.io-index"
6789+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
6790+dependencies = [
6791+ "version_check",
6792+]
6793+
6794+[[package]]
6795+name = "unicode-ident"
6796+version = "1.0.22"
6797+source = "registry+https://github.com/rust-lang/crates.io-index"
6798+checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
6799+
6800+[[package]]
6801+name = "unicode-linebreak"
6802+version = "0.1.5"
6803+source = "registry+https://github.com/rust-lang/crates.io-index"
6804+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
6805+
6806+[[package]]
6807+name = "unicode-normalization"
6808+version = "0.1.25"
6809+source = "registry+https://github.com/rust-lang/crates.io-index"
6810+checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"
6811+dependencies = [
6812+ "tinyvec",
6813+]
6814+
6815+[[package]]
6816+name = "unicode-segmentation"
6817+version = "1.12.0"
6818+source = "registry+https://github.com/rust-lang/crates.io-index"
6819+checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
6820+
6821+[[package]]
6822+name = "unicode-truncate"
6823+version = "2.0.1"
6824+source = "registry+https://github.com/rust-lang/crates.io-index"
6825+checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5"
6826+dependencies = [
6827+ "itertools 0.14.0",
6828+ "unicode-segmentation",
6829+ "unicode-width",
6830+]
6831+
6832+[[package]]
6833+name = "unicode-width"
6834+version = "0.2.0"
6835+source = "registry+https://github.com/rust-lang/crates.io-index"
6836+checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"
6837+
6838+[[package]]
6839+name = "unicode-xid"
6840+version = "0.2.6"
6841+source = "registry+https://github.com/rust-lang/crates.io-index"
6842+checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
6843+
6844+[[package]]
6845+name = "uniffi"
6846+version = "0.31.0"
6847+source = "registry+https://github.com/rust-lang/crates.io-index"
6848+checksum = "b8c6dec3fc6645f71a16a3fa9ff57991028153bd194ca97f4b55e610c73ce66a"
6849+dependencies = [
6850+ "anyhow",
6851+ "camino",
6852+ "cargo_metadata",
6853+ "clap",
6854+ "uniffi_bindgen",
6855+ "uniffi_build",
6856+ "uniffi_core",
6857+ "uniffi_macros",
6858+ "uniffi_pipeline",
6859+]
6860+
6861+[[package]]
6862+name = "uniffi-bindgen"
6863+version = "0.1.0"
6864+dependencies = [
6865+ "uniffi",
6866+]
6867+
6868+[[package]]
6869+name = "uniffi_bindgen"
6870+version = "0.31.0"
6871+source = "registry+https://github.com/rust-lang/crates.io-index"
6872+checksum = "4ed0150801958d4825da56a41c71f000a457ac3a4613fa9647df78ac4b6b6881"
6873+dependencies = [
6874+ "anyhow",
6875+ "askama",
6876+ "camino",
6877+ "cargo_metadata",
6878+ "fs-err",
6879+ "glob",
6880+ "goblin 0.8.2",
6881+ "heck",
6882+ "indexmap",
6883+ "once_cell",
6884+ "serde",
6885+ "tempfile",
6886+ "textwrap",
6887+ "toml 0.9.7",
6888+ "uniffi_internal_macros",
6889+ "uniffi_meta",
6890+ "uniffi_pipeline",
6891+ "uniffi_udl",
6892+]
6893+
6894+[[package]]
6895+name = "uniffi_build"
6896+version = "0.31.0"
6897+source = "registry+https://github.com/rust-lang/crates.io-index"
6898+checksum = "b78fd9271a4c2e85bd2c266c5a9ede1fac676eb39fd77f636c27eaf67426fd5f"
6899+dependencies = [
6900+ "anyhow",
6901+ "camino",
6902+ "uniffi_bindgen",
6903+]
6904+
6905+[[package]]
6906+name = "uniffi_core"
6907+version = "0.31.0"
6908+source = "registry+https://github.com/rust-lang/crates.io-index"
6909+checksum = "b0ef62e69762fbb9386dcb6c87cd3dd05d525fa8a3a579a290892e60ddbda47e"
6910+dependencies = [
6911+ "anyhow",
6912+ "async-compat",
6913+ "bytes",
6914+ "once_cell",
6915+ "static_assertions",
6916+]
6917+
6918+[[package]]
6919+name = "uniffi_internal_macros"
6920+version = "0.31.0"
6921+source = "registry+https://github.com/rust-lang/crates.io-index"
6922+checksum = "98f51ebca0d9a4b2aa6c644d5ede45c56f73906b96403c08a1985e75ccb64a01"
6923+dependencies = [
6924+ "anyhow",
6925+ "indexmap",
6926+ "proc-macro2",
6927+ "quote",
6928+ "syn 2.0.101",
6929+]
6930+
6931+[[package]]
6932+name = "uniffi_macros"
6933+version = "0.31.0"
6934+source = "registry+https://github.com/rust-lang/crates.io-index"
6935+checksum = "db9d12529f1223d014fd501e5f29ca0884d15d6ed5ddddd9f506e55350327dc3"
6936+dependencies = [
6937+ "camino",
6938+ "fs-err",
6939+ "once_cell",
6940+ "proc-macro2",
6941+ "quote",
6942+ "serde",
6943+ "syn 2.0.101",
6944+ "toml 0.9.7",
6945+ "uniffi_meta",
6946+]
6947+
6948+[[package]]
6949+name = "uniffi_meta"
6950+version = "0.31.0"
6951+source = "registry+https://github.com/rust-lang/crates.io-index"
6952+checksum = "9df6d413db2827c68588f8149d30d49b71d540d46539e435b23a7f7dbd4d4f86"
6953+dependencies = [
6954+ "anyhow",
6955+ "siphasher",
6956+ "uniffi_internal_macros",
6957+ "uniffi_pipeline",
6958+]
6959+
6960+[[package]]
6961+name = "uniffi_pipeline"
6962+version = "0.31.0"
6963+source = "registry+https://github.com/rust-lang/crates.io-index"
6964+checksum = "a806dddc8208f22efd7e95a5cdf88ed43d0f3271e8f63b47e757a8bbdb43b63a"
6965+dependencies = [
6966+ "anyhow",
6967+ "heck",
6968+ "indexmap",
6969+ "tempfile",
6970+ "uniffi_internal_macros",
6971+]
6972+
6973+[[package]]
6974+name = "uniffi_udl"
6975+version = "0.31.0"
6976+source = "registry+https://github.com/rust-lang/crates.io-index"
6977+checksum = "0d1a7339539bf6f6fa3e9b534dece13f778bda2d54b1a6d4e40b4d6090ac26e7"
6978+dependencies = [
6979+ "anyhow",
6980+ "textwrap",
6981+ "uniffi_meta",
6982+ "weedle2",
6983+]
6984+
6985+[[package]]
6986+name = "universal-hash"
6987+version = "0.5.1"
6988+source = "registry+https://github.com/rust-lang/crates.io-index"
6989+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
6990+dependencies = [
6991+ "crypto-common",
6992+ "subtle",
6993+]
6994+
6995+[[package]]
6996+name = "untrusted"
6997+version = "0.9.0"
6998+source = "registry+https://github.com/rust-lang/crates.io-index"
6999+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
7000+
7001+[[package]]
7002+name = "url"
7003+version = "2.5.7"
7004+source = "registry+https://github.com/rust-lang/crates.io-index"
7005+checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
7006+dependencies = [
7007+ "form_urlencoded",
7008+ "idna",
7009+ "percent-encoding",
7010+ "serde",
7011+]
7012+
7013+[[package]]
7014+name = "urlencoding"
7015+version = "2.1.3"
7016+source = "registry+https://github.com/rust-lang/crates.io-index"
7017+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
7018+
7019+[[package]]
7020+name = "utf-8"
7021+version = "0.7.6"
7022+source = "registry+https://github.com/rust-lang/crates.io-index"
7023+checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
7024+
7025+[[package]]
7026+name = "utf16_iter"
7027+version = "1.0.5"
7028+source = "registry+https://github.com/rust-lang/crates.io-index"
7029+checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
7030+
7031+[[package]]
7032+name = "utf8-ranges"
7033+version = "1.0.5"
7034+source = "registry+https://github.com/rust-lang/crates.io-index"
7035+checksum = "7fcfc827f90e53a02eaef5e535ee14266c1d569214c6aa70133a624d8a3164ba"
7036+
7037+[[package]]
7038+name = "utf8_iter"
7039+version = "1.0.4"
7040+source = "registry+https://github.com/rust-lang/crates.io-index"
7041+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
7042+
7043+[[package]]
7044+name = "utf8parse"
7045+version = "0.2.2"
7046+source = "registry+https://github.com/rust-lang/crates.io-index"
7047+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
7048+
7049+[[package]]
7050+name = "uuid"
7051+version = "1.18.1"
7052+source = "registry+https://github.com/rust-lang/crates.io-index"
7053+checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2"
7054+dependencies = [
7055+ "atomic",
7056+ "getrandom 0.3.4",
7057+ "js-sys",
7058+ "serde",
7059+ "wasm-bindgen",
7060+]
7061+
7062+[[package]]
7063+name = "valuable"
7064+version = "0.1.0"
7065+source = "registry+https://github.com/rust-lang/crates.io-index"
7066+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
7067+
7068+[[package]]
7069+name = "vcpkg"
7070+version = "0.2.15"
7071+source = "registry+https://github.com/rust-lang/crates.io-index"
7072+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
7073+
7074+[[package]]
7075+name = "vergen"
7076+version = "9.0.6"
7077+source = "registry+https://github.com/rust-lang/crates.io-index"
7078+checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777"
7079+dependencies = [
7080+ "anyhow",
7081+ "derive_builder",
7082+ "rustversion",
7083+ "time",
7084+ "vergen-lib",
7085+]
7086+
7087+[[package]]
7088+name = "vergen-gitcl"
7089+version = "1.0.8"
7090+source = "registry+https://github.com/rust-lang/crates.io-index"
7091+checksum = "b9dfc1de6eb2e08a4ddf152f1b179529638bedc0ea95e6d667c014506377aefe"
7092+dependencies = [
7093+ "anyhow",
7094+ "derive_builder",
7095+ "rustversion",
7096+ "time",
7097+ "vergen",
7098+ "vergen-lib",
7099+]
7100+
7101+[[package]]
7102+name = "vergen-lib"
7103+version = "0.1.6"
7104+source = "registry+https://github.com/rust-lang/crates.io-index"
7105+checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166"
7106+dependencies = [
7107+ "anyhow",
7108+ "derive_builder",
7109+ "rustversion",
7110+]
7111+
7112+[[package]]
7113+name = "version_check"
7114+version = "0.9.4"
7115+source = "registry+https://github.com/rust-lang/crates.io-index"
7116+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
7117+
7118+[[package]]
7119+name = "vodozemac"
7120+version = "0.10.0"
7121+source = "registry+https://github.com/rust-lang/crates.io-index"
7122+checksum = "b98bf83c0992966775b8012f194b07b44928996163e5a05b741b43891571ae5b"
7123+dependencies = [
7124+ "aes",
7125+ "arrayvec",
7126+ "base64",
7127+ "base64ct",
7128+ "cbc",
7129+ "chacha20poly1305",
7130+ "curve25519-dalek",
7131+ "ed25519-dalek",
7132+ "getrandom 0.2.15",
7133+ "hkdf",
7134+ "hmac",
7135+ "matrix-pickle",
7136+ "prost",
7137+ "rand 0.8.6",
7138+ "serde",
7139+ "serde_bytes",
7140+ "serde_json",
7141+ "sha2",
7142+ "subtle",
7143+ "thiserror 2.0.18",
7144+ "x25519-dalek",
7145+ "zeroize",
7146+]
7147+
7148+[[package]]
7149+name = "vtparse"
7150+version = "0.6.2"
7151+source = "registry+https://github.com/rust-lang/crates.io-index"
7152+checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0"
7153+dependencies = [
7154+ "utf8parse",
7155+]
7156+
7157+[[package]]
7158+name = "walkdir"
7159+version = "2.5.0"
7160+source = "registry+https://github.com/rust-lang/crates.io-index"
7161+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
7162+dependencies = [
7163+ "same-file",
7164+ "winapi-util",
7165+]
7166+
7167+[[package]]
7168+name = "want"
7169+version = "0.3.1"
7170+source = "registry+https://github.com/rust-lang/crates.io-index"
7171+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
7172+dependencies = [
7173+ "try-lock",
7174+]
7175+
7176+[[package]]
7177+name = "wasi"
7178+version = "0.11.0+wasi-snapshot-preview1"
7179+source = "registry+https://github.com/rust-lang/crates.io-index"
7180+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
7181+
7182+[[package]]
7183+name = "wasip2"
7184+version = "1.0.2+wasi-0.2.9"
7185+source = "registry+https://github.com/rust-lang/crates.io-index"
7186+checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
7187+dependencies = [
7188+ "wit-bindgen",
7189+]
7190+
7191+[[package]]
7192+name = "wasip3"
7193+version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
7194+source = "registry+https://github.com/rust-lang/crates.io-index"
7195+checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
7196+dependencies = [
7197+ "wit-bindgen",
7198+]
7199+
7200+[[package]]
7201+name = "wasm-bindgen"
7202+version = "0.2.114"
7203+source = "registry+https://github.com/rust-lang/crates.io-index"
7204+checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e"
7205+dependencies = [
7206+ "cfg-if",
7207+ "once_cell",
7208+ "rustversion",
7209+ "wasm-bindgen-macro",
7210+ "wasm-bindgen-shared",
7211+]
7212+
7213+[[package]]
7214+name = "wasm-bindgen-futures"
7215+version = "0.4.64"
7216+source = "registry+https://github.com/rust-lang/crates.io-index"
7217+checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8"
7218+dependencies = [
7219+ "cfg-if",
7220+ "futures-util",
7221+ "js-sys",
7222+ "once_cell",
7223+ "wasm-bindgen",
7224+ "web-sys",
7225+]
7226+
7227+[[package]]
7228+name = "wasm-bindgen-macro"
7229+version = "0.2.114"
7230+source = "registry+https://github.com/rust-lang/crates.io-index"
7231+checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6"
7232+dependencies = [
7233+ "quote",
7234+ "wasm-bindgen-macro-support",
7235+]
7236+
7237+[[package]]
7238+name = "wasm-bindgen-macro-support"
7239+version = "0.2.114"
7240+source = "registry+https://github.com/rust-lang/crates.io-index"
7241+checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3"
7242+dependencies = [
7243+ "bumpalo",
7244+ "proc-macro2",
7245+ "quote",
7246+ "syn 2.0.101",
7247+ "wasm-bindgen-shared",
7248+]
7249+
7250+[[package]]
7251+name = "wasm-bindgen-shared"
7252+version = "0.2.114"
7253+source = "registry+https://github.com/rust-lang/crates.io-index"
7254+checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16"
7255+dependencies = [
7256+ "unicode-ident",
7257+]
7258+
7259+[[package]]
7260+name = "wasm-bindgen-test"
7261+version = "0.3.64"
7262+source = "registry+https://github.com/rust-lang/crates.io-index"
7263+checksum = "6311c867385cc7d5602463b31825d454d0837a3aba7cdb5e56d5201792a3f7fe"
7264+dependencies = [
7265+ "async-trait",
7266+ "cast",
7267+ "js-sys",
7268+ "libm",
7269+ "minicov",
7270+ "nu-ansi-term",
7271+ "num-traits",
7272+ "oorandom",
7273+ "serde",
7274+ "serde_json",
7275+ "wasm-bindgen",
7276+ "wasm-bindgen-futures",
7277+ "wasm-bindgen-test-macro",
7278+ "wasm-bindgen-test-shared",
7279+]
7280+
7281+[[package]]
7282+name = "wasm-bindgen-test-macro"
7283+version = "0.3.64"
7284+source = "registry+https://github.com/rust-lang/crates.io-index"
7285+checksum = "67008cdde4769831958536b0f11b3bdd0380bde882be17fff9c2f34bb4549abd"
7286+dependencies = [
7287+ "proc-macro2",
7288+ "quote",
7289+ "syn 2.0.101",
7290+]
7291+
7292+[[package]]
7293+name = "wasm-bindgen-test-shared"
7294+version = "0.2.114"
7295+source = "registry+https://github.com/rust-lang/crates.io-index"
7296+checksum = "cfe29135b180b72b04c74aa97b2b4a2ef275161eff9a6c7955ea9eaedc7e1d4e"
7297+
7298+[[package]]
7299+name = "wasm-encoder"
7300+version = "0.244.0"
7301+source = "registry+https://github.com/rust-lang/crates.io-index"
7302+checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
7303+dependencies = [
7304+ "leb128fmt",
7305+ "wasmparser",
7306+]
7307+
7308+[[package]]
7309+name = "wasm-metadata"
7310+version = "0.244.0"
7311+source = "registry+https://github.com/rust-lang/crates.io-index"
7312+checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
7313+dependencies = [
7314+ "anyhow",
7315+ "indexmap",
7316+ "wasm-encoder",
7317+ "wasmparser",
7318+]
7319+
7320+[[package]]
7321+name = "wasm-streams"
7322+version = "0.5.0"
7323+source = "registry+https://github.com/rust-lang/crates.io-index"
7324+checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb"
7325+dependencies = [
7326+ "futures-util",
7327+ "js-sys",
7328+ "wasm-bindgen",
7329+ "wasm-bindgen-futures",
7330+ "web-sys",
7331+]
7332+
7333+[[package]]
7334+name = "wasm_evt_listener"
7335+version = "0.1.0"
7336+source = "registry+https://github.com/rust-lang/crates.io-index"
7337+checksum = "dc92d6378b411ed94839112a36d9dbc77143451d85b05dfb0cce93a78dab1963"
7338+dependencies = [
7339+ "accessory",
7340+ "derivative",
7341+ "derive_more 1.0.0",
7342+ "fancy_constructor",
7343+ "futures-core",
7344+ "js-sys",
7345+ "smallvec",
7346+ "tokio",
7347+ "wasm-bindgen",
7348+ "web-sys",
7349+]
7350+
7351+[[package]]
7352+name = "wasmparser"
7353+version = "0.244.0"
7354+source = "registry+https://github.com/rust-lang/crates.io-index"
7355+checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
7356+dependencies = [
7357+ "bitflags 2.10.0",
7358+ "hashbrown 0.15.2",
7359+ "indexmap",
7360+ "semver",
7361+]
7362+
7363+[[package]]
7364+name = "web-sys"
7365+version = "0.3.91"
7366+source = "registry+https://github.com/rust-lang/crates.io-index"
7367+checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9"
7368+dependencies = [
7369+ "js-sys",
7370+ "wasm-bindgen",
7371+]
7372+
7373+[[package]]
7374+name = "web-time"
7375+version = "1.1.0"
7376+source = "registry+https://github.com/rust-lang/crates.io-index"
7377+checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
7378+dependencies = [
7379+ "js-sys",
7380+ "serde",
7381+ "wasm-bindgen",
7382+]
7383+
7384+[[package]]
7385+name = "web_atoms"
7386+version = "0.2.3"
7387+source = "registry+https://github.com/rust-lang/crates.io-index"
7388+checksum = "57a9779e9f04d2ac1ce317aee707aa2f6b773afba7b931222bff6983843b1576"
7389+dependencies = [
7390+ "phf 0.13.1",
7391+ "phf_codegen 0.13.1",
7392+ "string_cache",
7393+ "string_cache_codegen",
7394+]
7395+
7396+[[package]]
7397+name = "webpki-root-certs"
7398+version = "1.0.2"
7399+source = "registry+https://github.com/rust-lang/crates.io-index"
7400+checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a"
7401+dependencies = [
7402+ "rustls-pki-types",
7403+]
7404+
7405+[[package]]
7406+name = "webpki-roots"
7407+version = "1.0.6"
7408+source = "registry+https://github.com/rust-lang/crates.io-index"
7409+checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed"
7410+dependencies = [
7411+ "rustls-pki-types",
7412+]
7413+
7414+[[package]]
7415+name = "weedle2"
7416+version = "5.0.0"
7417+source = "registry+https://github.com/rust-lang/crates.io-index"
7418+checksum = "998d2c24ec099a87daf9467808859f9d82b61f1d9c9701251aea037f514eae0e"
7419+dependencies = [
7420+ "nom",
7421+]
7422+
7423+[[package]]
7424+name = "wezterm-bidi"
7425+version = "0.2.3"
7426+source = "registry+https://github.com/rust-lang/crates.io-index"
7427+checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec"
7428+dependencies = [
7429+ "log",
7430+ "wezterm-dynamic",
7431+]
7432+
7433+[[package]]
7434+name = "wezterm-blob-leases"
7435+version = "0.1.1"
7436+source = "registry+https://github.com/rust-lang/crates.io-index"
7437+checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7"
7438+dependencies = [
7439+ "getrandom 0.3.4",
7440+ "mac_address",
7441+ "sha2",
7442+ "thiserror 1.0.63",
7443+ "uuid",
7444+]
7445+
7446+[[package]]
7447+name = "wezterm-color-types"
7448+version = "0.3.0"
7449+source = "registry+https://github.com/rust-lang/crates.io-index"
7450+checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296"
7451+dependencies = [
7452+ "csscolorparser",
7453+ "deltae",
7454+ "lazy_static",
7455+ "wezterm-dynamic",
7456+]
7457+
7458+[[package]]
7459+name = "wezterm-dynamic"
7460+version = "0.2.1"
7461+source = "registry+https://github.com/rust-lang/crates.io-index"
7462+checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac"
7463+dependencies = [
7464+ "log",
7465+ "ordered-float 4.6.0",
7466+ "strsim",
7467+ "thiserror 1.0.63",
7468+ "wezterm-dynamic-derive",
7469+]
7470+
7471+[[package]]
7472+name = "wezterm-dynamic-derive"
7473+version = "0.1.1"
7474+source = "registry+https://github.com/rust-lang/crates.io-index"
7475+checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b"
7476+dependencies = [
7477+ "proc-macro2",
7478+ "quote",
7479+ "syn 1.0.109",
7480+]
7481+
7482+[[package]]
7483+name = "wezterm-input-types"
7484+version = "0.1.0"
7485+source = "registry+https://github.com/rust-lang/crates.io-index"
7486+checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e"
7487+dependencies = [
7488+ "bitflags 1.3.2",
7489+ "euclid",
7490+ "lazy_static",
7491+ "serde",
7492+ "wezterm-dynamic",
7493+]
7494+
7495+[[package]]
7496+name = "wildmatch"
7497+version = "2.6.1"
7498+source = "registry+https://github.com/rust-lang/crates.io-index"
7499+checksum = "29333c3ea1ba8b17211763463ff24ee84e41c78224c16b001cd907e663a38c68"
7500+
7501+[[package]]
7502+name = "winapi"
7503+version = "0.3.9"
7504+source = "registry+https://github.com/rust-lang/crates.io-index"
7505+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
7506+dependencies = [
7507+ "winapi-i686-pc-windows-gnu",
7508+ "winapi-x86_64-pc-windows-gnu",
7509+]
7510+
7511+[[package]]
7512+name = "winapi-i686-pc-windows-gnu"
7513+version = "0.4.0"
7514+source = "registry+https://github.com/rust-lang/crates.io-index"
7515+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
7516+
7517+[[package]]
7518+name = "winapi-util"
7519+version = "0.1.8"
7520+source = "registry+https://github.com/rust-lang/crates.io-index"
7521+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
7522+dependencies = [
7523+ "windows-sys 0.52.0",
7524+]
7525+
7526+[[package]]
7527+name = "winapi-x86_64-pc-windows-gnu"
7528+version = "0.4.0"
7529+source = "registry+https://github.com/rust-lang/crates.io-index"
7530+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
7531+
7532+[[package]]
7533+name = "windows"
7534+version = "0.61.1"
7535+source = "registry+https://github.com/rust-lang/crates.io-index"
7536+checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419"
7537+dependencies = [
7538+ "windows-collections",
7539+ "windows-core 0.61.2",
7540+ "windows-future",
7541+ "windows-link 0.1.1",
7542+ "windows-numerics",
7543+]
7544+
7545+[[package]]
7546+name = "windows-collections"
7547+version = "0.2.0"
7548+source = "registry+https://github.com/rust-lang/crates.io-index"
7549+checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"
7550+dependencies = [
7551+ "windows-core 0.61.2",
7552+]
7553+
7554+[[package]]
7555+name = "windows-core"
7556+version = "0.52.0"
7557+source = "registry+https://github.com/rust-lang/crates.io-index"
7558+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
7559+dependencies = [
7560+ "windows-targets 0.52.6",
7561+]
7562+
7563+[[package]]
7564+name = "windows-core"
7565+version = "0.61.2"
7566+source = "registry+https://github.com/rust-lang/crates.io-index"
7567+checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
7568+dependencies = [
7569+ "windows-implement",
7570+ "windows-interface",
7571+ "windows-link 0.1.1",
7572+ "windows-result",
7573+ "windows-strings",
7574+]
7575+
7576+[[package]]
7577+name = "windows-future"
7578+version = "0.2.1"
7579+source = "registry+https://github.com/rust-lang/crates.io-index"
7580+checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"
7581+dependencies = [
7582+ "windows-core 0.61.2",
7583+ "windows-link 0.1.1",
7584+ "windows-threading",
7585+]
7586+
7587+[[package]]
7588+name = "windows-implement"
7589+version = "0.60.0"
7590+source = "registry+https://github.com/rust-lang/crates.io-index"
7591+checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
7592+dependencies = [
7593+ "proc-macro2",
7594+ "quote",
7595+ "syn 2.0.101",
7596+]
7597+
7598+[[package]]
7599+name = "windows-interface"
7600+version = "0.59.1"
7601+source = "registry+https://github.com/rust-lang/crates.io-index"
7602+checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
7603+dependencies = [
7604+ "proc-macro2",
7605+ "quote",
7606+ "syn 2.0.101",
7607+]
7608+
7609+[[package]]
7610+name = "windows-link"
7611+version = "0.1.1"
7612+source = "registry+https://github.com/rust-lang/crates.io-index"
7613+checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
7614+
7615+[[package]]
7616+name = "windows-link"
7617+version = "0.2.1"
7618+source = "registry+https://github.com/rust-lang/crates.io-index"
7619+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
7620+
7621+[[package]]
7622+name = "windows-numerics"
7623+version = "0.2.0"
7624+source = "registry+https://github.com/rust-lang/crates.io-index"
7625+checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
7626+dependencies = [
7627+ "windows-core 0.61.2",
7628+ "windows-link 0.1.1",
7629+]
7630+
7631+[[package]]
7632+name = "windows-result"
7633+version = "0.3.4"
7634+source = "registry+https://github.com/rust-lang/crates.io-index"
7635+checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
7636+dependencies = [
7637+ "windows-link 0.1.1",
7638+]
7639+
7640+[[package]]
7641+name = "windows-strings"
7642+version = "0.4.2"
7643+source = "registry+https://github.com/rust-lang/crates.io-index"
7644+checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
7645+dependencies = [
7646+ "windows-link 0.1.1",
7647+]
7648+
7649+[[package]]
7650+name = "windows-sys"
7651+version = "0.45.0"
7652+source = "registry+https://github.com/rust-lang/crates.io-index"
7653+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
7654+dependencies = [
7655+ "windows-targets 0.42.2",
7656+]
7657+
7658+[[package]]
7659+name = "windows-sys"
7660+version = "0.48.0"
7661+source = "registry+https://github.com/rust-lang/crates.io-index"
7662+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
7663+dependencies = [
7664+ "windows-targets 0.48.5",
7665+]
7666+
7667+[[package]]
7668+name = "windows-sys"
7669+version = "0.52.0"
7670+source = "registry+https://github.com/rust-lang/crates.io-index"
7671+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
7672+dependencies = [
7673+ "windows-targets 0.52.6",
7674+]
7675+
7676+[[package]]
7677+name = "windows-sys"
7678+version = "0.59.0"
7679+source = "registry+https://github.com/rust-lang/crates.io-index"
7680+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
7681+dependencies = [
7682+ "windows-targets 0.52.6",
7683+]
7684+
7685+[[package]]
7686+name = "windows-sys"
7687+version = "0.60.2"
7688+source = "registry+https://github.com/rust-lang/crates.io-index"
7689+checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
7690+dependencies = [
7691+ "windows-targets 0.53.5",
7692+]
7693+
7694+[[package]]
7695+name = "windows-sys"
7696+version = "0.61.2"
7697+source = "registry+https://github.com/rust-lang/crates.io-index"
7698+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
7699+dependencies = [
7700+ "windows-link 0.2.1",
7701+]
7702+
7703+[[package]]
7704+name = "windows-targets"
7705+version = "0.42.2"
7706+source = "registry+https://github.com/rust-lang/crates.io-index"
7707+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
7708+dependencies = [
7709+ "windows_aarch64_gnullvm 0.42.2",
7710+ "windows_aarch64_msvc 0.42.2",
7711+ "windows_i686_gnu 0.42.2",
7712+ "windows_i686_msvc 0.42.2",
7713+ "windows_x86_64_gnu 0.42.2",
7714+ "windows_x86_64_gnullvm 0.42.2",
7715+ "windows_x86_64_msvc 0.42.2",
7716+]
7717+
7718+[[package]]
7719+name = "windows-targets"
7720+version = "0.48.5"
7721+source = "registry+https://github.com/rust-lang/crates.io-index"
7722+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
7723+dependencies = [
7724+ "windows_aarch64_gnullvm 0.48.5",
7725+ "windows_aarch64_msvc 0.48.5",
7726+ "windows_i686_gnu 0.48.5",
7727+ "windows_i686_msvc 0.48.5",
7728+ "windows_x86_64_gnu 0.48.5",
7729+ "windows_x86_64_gnullvm 0.48.5",
7730+ "windows_x86_64_msvc 0.48.5",
7731+]
7732+
7733+[[package]]
7734+name = "windows-targets"
7735+version = "0.52.6"
7736+source = "registry+https://github.com/rust-lang/crates.io-index"
7737+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
7738+dependencies = [
7739+ "windows_aarch64_gnullvm 0.52.6",
7740+ "windows_aarch64_msvc 0.52.6",
7741+ "windows_i686_gnu 0.52.6",
7742+ "windows_i686_gnullvm 0.52.6",
7743+ "windows_i686_msvc 0.52.6",
7744+ "windows_x86_64_gnu 0.52.6",
7745+ "windows_x86_64_gnullvm 0.52.6",
7746+ "windows_x86_64_msvc 0.52.6",
7747+]
7748+
7749+[[package]]
7750+name = "windows-targets"
7751+version = "0.53.5"
7752+source = "registry+https://github.com/rust-lang/crates.io-index"
7753+checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
7754+dependencies = [
7755+ "windows-link 0.2.1",
7756+ "windows_aarch64_gnullvm 0.53.1",
7757+ "windows_aarch64_msvc 0.53.1",
7758+ "windows_i686_gnu 0.53.1",
7759+ "windows_i686_gnullvm 0.53.1",
7760+ "windows_i686_msvc 0.53.1",
7761+ "windows_x86_64_gnu 0.53.1",
7762+ "windows_x86_64_gnullvm 0.53.1",
7763+ "windows_x86_64_msvc 0.53.1",
7764+]
7765+
7766+[[package]]
7767+name = "windows-threading"
7768+version = "0.1.0"
7769+source = "registry+https://github.com/rust-lang/crates.io-index"
7770+checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6"
7771+dependencies = [
7772+ "windows-link 0.1.1",
7773+]
7774+
7775+[[package]]
7776+name = "windows_aarch64_gnullvm"
7777+version = "0.42.2"
7778+source = "registry+https://github.com/rust-lang/crates.io-index"
7779+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
7780+
7781+[[package]]
7782+name = "windows_aarch64_gnullvm"
7783+version = "0.48.5"
7784+source = "registry+https://github.com/rust-lang/crates.io-index"
7785+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
7786+
7787+[[package]]
7788+name = "windows_aarch64_gnullvm"
7789+version = "0.52.6"
7790+source = "registry+https://github.com/

show full diff (262144 bytes truncated)