From 8facd237d5ba1687bdf31b21235a1a2835c6caa6 Mon Sep 17 00:00:00 2001 From: can1357 Date: Mon, 27 Jul 2026 12:22:19 +0200 Subject: [PATCH] feat(build): migrated native pipeline to bazel with remote caching - Replaced the napi-cli/cargo-zigbuild/cargo-xwin/sccache build path with Bazel: rules_rust + crate_universe over Cargo.lock, hermetic zig cc toolchains (linux-gnu pinned to glibc 2.17, linux-musl), host Xcode for darwin, and a repo-local hermetic clang-cl + llvm-ml + xwin toolchain for windows-msvc (bazel/toolchains/msvc). - All eight shipped addons build as //:natives- via the release transition in bazel/defs.bzl (opt, thin LTO, cgu=16, stripped, canonical .node naming); scripts/bazel-natives.ts is the single driver for local dev and CI. - Rust validation moved to bazel test + clippy aspects (strict workspace policy for opted-in crates, default lints elsewhere, mirroring cargo semantics) and the rustfmt aspect; cargo stays as the dev-iteration surface, with brush-core/brush-builtins promoted to workspace members and excluded from cargo dev tasks to keep their historical scope. - CI caches through an in-cluster bazel-remote action cache (TLS + basic auth, cluster-internal only); GitHub-hosted runners never touch the infrastructure and use an actions/cache-backed disk cache instead. - Deleted the hand-rolled caching machinery: ci-target-cache, ci-native-artifact-cache, ci-build-native, native-source-hash, find-native-artifacts, restore-linux-native, native-prewarm workflow, ensure-* toolchain actions, and all sccache/Swatinem wiring. - Warm native rebuilds drop from ~20 minutes to seconds; a cold client with a warm remote cache rebuilds the linux x64 pair in ~2.5 minutes. --- .bazelignore | 6 + .bazelrc | 67 + .bazelversion | 1 + .github/actions/bazel-cache/action.yml | 65 + .github/actions/bazel-natives/action.yml | 34 + .github/actions/build-native/action.yml | 427 - .github/actions/bun-install/action.yml | 11 +- .github/actions/ensure-cargo-tool/action.yml | 38 - .github/actions/ensure-cmake/action.yml | 80 - .../actions/ensure-rust-toolchain/action.yml | 59 - .github/actions/ensure-sccache/action.yml | 47 - .github/actions/ensure-zig/action.yml | 39 - .../actions/find-native-artifacts/action.yml | 99 - .github/actions/native-source-hash/action.yml | 30 - .../actions/restore-linux-native/action.yml | 54 - .github/workflows/ci.yml | 363 +- .github/workflows/native-prewarm.yml | 90 - .gitignore | 7 + BUILD.bazel | 58 + Cargo.Bazel.lock | 61561 ++++++++++++++++ Cargo.lock | 29 +- Cargo.toml | 5 +- MODULE.bazel | 187 + MODULE.bazel.lock | 460 + bazel/BUILD.bazel | 1 + bazel/clippy.bazelrc | 48 + bazel/defs.bzl | 78 + bazel/platforms/BUILD.bazel | 61 + bazel/toolchains/BUILD.bazel | 83 + bazel/toolchains/msvc/BUILD.bazel | 5 + bazel/toolchains/msvc/NOTES.md | 139 + bazel/toolchains/msvc/cc.bzl | 279 + bazel/toolchains/msvc/llvm.bzl | 126 + bazel/toolchains/msvc/sysroot.bzl | 156 + bazel/triples/BUILD.bazel | 99 + bazel/variants/BUILD.bazel | 26 + crates/pi-ast/BUILD.bazel | 26 + crates/pi-iso/BUILD.bazel | 25 + crates/pi-natives/BUILD.bazel | 66 + crates/pi-shell/BUILD.bazel | 104 + crates/pi-shell/tests/minimizer_fixtures.rs | 13 +- crates/pi-uu-diff/BUILD.bazel | 28 + crates/pi-uu-grep/BUILD.bazel | 29 + crates/pi-uutils-ctx/BUILD.bazel | 26 + crates/pi-walker/BUILD.bazel | 39 + crates/vendor/brush-builtins/BUILD.bazel | 85 + crates/vendor/brush-core/BUILD.bazel | 29 + crates/vendor/jaq/BUILD.bazel | 29 + crates/vendor/uu-b2sum/BUILD.bazel | 22 + crates/vendor/uu-base32/BUILD.bazel | 28 + crates/vendor/uu-base64/BUILD.bazel | 29 + crates/vendor/uu-basename/BUILD.bazel | 21 + crates/vendor/uu-cat/BUILD.bazel | 28 + crates/vendor/uu-checksum-common/BUILD.bazel | 21 + crates/vendor/uu-comm/BUILD.bazel | 21 + crates/vendor/uu-cut/BUILD.bazel | 28 + crates/vendor/uu-date/BUILD.bazel | 28 + crates/vendor/uu-dirname/BUILD.bazel | 28 + crates/vendor/uu-find/BUILD.bazel | 45 + crates/vendor/uu-head/BUILD.bazel | 28 + crates/vendor/uu-hostname/BUILD.bazel | 28 + crates/vendor/uu-ln/BUILD.bazel | 28 + crates/vendor/uu-ls/BUILD.bazel | 28 + crates/vendor/uu-md5sum/BUILD.bazel | 21 + crates/vendor/uu-mkdir/BUILD.bazel | 21 + crates/vendor/uu-mktemp/BUILD.bazel | 28 + crates/vendor/uu-mv/BUILD.bazel | 28 + crates/vendor/uu-nproc/BUILD.bazel | 28 + crates/vendor/uu-paste/BUILD.bazel | 21 + crates/vendor/uu-printenv/BUILD.bazel | 28 + crates/vendor/uu-readlink/BUILD.bazel | 28 + crates/vendor/uu-realpath/BUILD.bazel | 28 + crates/vendor/uu-rm/BUILD.bazel | 28 + crates/vendor/uu-sed/BUILD.bazel | 28 + crates/vendor/uu-seq/BUILD.bazel | 28 + crates/vendor/uu-sha1sum/BUILD.bazel | 22 + crates/vendor/uu-sha224sum/BUILD.bazel | 22 + crates/vendor/uu-sha256sum/BUILD.bazel | 22 + crates/vendor/uu-sha384sum/BUILD.bazel | 22 + crates/vendor/uu-sha512sum/BUILD.bazel | 22 + crates/vendor/uu-sort/BUILD.bazel | 28 + .../vendor/uu-sort/src/ext_sort/threaded.rs | 18 +- crates/vendor/uu-stat/BUILD.bazel | 28 + crates/vendor/uu-tac/BUILD.bazel | 28 + crates/vendor/uu-tail/BUILD.bazel | 31 + crates/vendor/uu-tee/BUILD.bazel | 21 + crates/vendor/uu-touch/BUILD.bazel | 28 + crates/vendor/uu-tr/BUILD.bazel | 21 + crates/vendor/uu-truncate/BUILD.bazel | 28 + crates/vendor/uu-uname/BUILD.bazel | 28 + crates/vendor/uu-uniq/BUILD.bazel | 21 + crates/vendor/uu-wc/BUILD.bazel | 21 + crates/vendor/uu-whoami/BUILD.bazel | 28 + crates/vendor/uu-xargs/BUILD.bazel | 28 + crates/vendor/uu-yes/BUILD.bazel | 28 + docs/natives-build-release-debugging.md | 326 +- infra/bazel-remote/bazel-remote.yaml | 109 + infra/bazel-remote/ca.crt | 30 + infra/bazel-remote/runner-egress-patch.yaml | 24 + infra/bazel-remote/setup.sh | 157 + infra/docs/03-runner-image.md | 10 +- infra/docs/04-arc-and-caching.md | 387 +- infra/docs/README.md | 23 +- infra/reload-runner.sh | 11 +- infra/runner.Dockerfile | 17 + package.json | 4 +- packages/natives/CHANGELOG.md | 4 + packages/natives/native/loader-state.js | 2 +- packages/natives/package.json | 3 +- packages/natives/scripts/build-bindings.ts | 197 + packages/natives/scripts/build-native.ts | 465 - scripts/bazel-natives.test.ts | 115 + scripts/bazel-natives.ts | 274 + scripts/ci-build-native.test.ts | 36 - scripts/ci-build-native.ts | 77 - scripts/ci-native-artifact-cache.test.ts | 83 - scripts/ci-native-artifact-cache.ts | 129 - scripts/ci-target-cache.test.ts | 40 - scripts/ci-target-cache.ts | 214 - scripts/ci-test-ts.ts | 12 +- scripts/run-rs-task.ts | 37 +- 121 files changed, 66794 insertions(+), 2630 deletions(-) create mode 100644 .bazelignore create mode 100644 .bazelrc create mode 100644 .bazelversion create mode 100644 .github/actions/bazel-cache/action.yml create mode 100644 .github/actions/bazel-natives/action.yml delete mode 100644 .github/actions/build-native/action.yml delete mode 100644 .github/actions/ensure-cargo-tool/action.yml delete mode 100644 .github/actions/ensure-cmake/action.yml delete mode 100644 .github/actions/ensure-rust-toolchain/action.yml delete mode 100644 .github/actions/ensure-sccache/action.yml delete mode 100644 .github/actions/ensure-zig/action.yml delete mode 100644 .github/actions/find-native-artifacts/action.yml delete mode 100644 .github/actions/native-source-hash/action.yml delete mode 100644 .github/actions/restore-linux-native/action.yml delete mode 100644 .github/workflows/native-prewarm.yml create mode 100644 BUILD.bazel create mode 100644 Cargo.Bazel.lock create mode 100644 MODULE.bazel create mode 100644 MODULE.bazel.lock create mode 100644 bazel/BUILD.bazel create mode 100644 bazel/clippy.bazelrc create mode 100644 bazel/defs.bzl create mode 100644 bazel/platforms/BUILD.bazel create mode 100644 bazel/toolchains/BUILD.bazel create mode 100644 bazel/toolchains/msvc/BUILD.bazel create mode 100644 bazel/toolchains/msvc/NOTES.md create mode 100644 bazel/toolchains/msvc/cc.bzl create mode 100644 bazel/toolchains/msvc/llvm.bzl create mode 100644 bazel/toolchains/msvc/sysroot.bzl create mode 100644 bazel/triples/BUILD.bazel create mode 100644 bazel/variants/BUILD.bazel create mode 100644 crates/pi-ast/BUILD.bazel create mode 100644 crates/pi-iso/BUILD.bazel create mode 100644 crates/pi-natives/BUILD.bazel create mode 100644 crates/pi-shell/BUILD.bazel create mode 100644 crates/pi-uu-diff/BUILD.bazel create mode 100644 crates/pi-uu-grep/BUILD.bazel create mode 100644 crates/pi-uutils-ctx/BUILD.bazel create mode 100644 crates/pi-walker/BUILD.bazel create mode 100644 crates/vendor/brush-builtins/BUILD.bazel create mode 100644 crates/vendor/brush-core/BUILD.bazel create mode 100644 crates/vendor/jaq/BUILD.bazel create mode 100644 crates/vendor/uu-b2sum/BUILD.bazel create mode 100644 crates/vendor/uu-base32/BUILD.bazel create mode 100644 crates/vendor/uu-base64/BUILD.bazel create mode 100644 crates/vendor/uu-basename/BUILD.bazel create mode 100644 crates/vendor/uu-cat/BUILD.bazel create mode 100644 crates/vendor/uu-checksum-common/BUILD.bazel create mode 100644 crates/vendor/uu-comm/BUILD.bazel create mode 100644 crates/vendor/uu-cut/BUILD.bazel create mode 100644 crates/vendor/uu-date/BUILD.bazel create mode 100644 crates/vendor/uu-dirname/BUILD.bazel create mode 100644 crates/vendor/uu-find/BUILD.bazel create mode 100644 crates/vendor/uu-head/BUILD.bazel create mode 100644 crates/vendor/uu-hostname/BUILD.bazel create mode 100644 crates/vendor/uu-ln/BUILD.bazel create mode 100644 crates/vendor/uu-ls/BUILD.bazel create mode 100644 crates/vendor/uu-md5sum/BUILD.bazel create mode 100644 crates/vendor/uu-mkdir/BUILD.bazel create mode 100644 crates/vendor/uu-mktemp/BUILD.bazel create mode 100644 crates/vendor/uu-mv/BUILD.bazel create mode 100644 crates/vendor/uu-nproc/BUILD.bazel create mode 100644 crates/vendor/uu-paste/BUILD.bazel create mode 100644 crates/vendor/uu-printenv/BUILD.bazel create mode 100644 crates/vendor/uu-readlink/BUILD.bazel create mode 100644 crates/vendor/uu-realpath/BUILD.bazel create mode 100644 crates/vendor/uu-rm/BUILD.bazel create mode 100644 crates/vendor/uu-sed/BUILD.bazel create mode 100644 crates/vendor/uu-seq/BUILD.bazel create mode 100644 crates/vendor/uu-sha1sum/BUILD.bazel create mode 100644 crates/vendor/uu-sha224sum/BUILD.bazel create mode 100644 crates/vendor/uu-sha256sum/BUILD.bazel create mode 100644 crates/vendor/uu-sha384sum/BUILD.bazel create mode 100644 crates/vendor/uu-sha512sum/BUILD.bazel create mode 100644 crates/vendor/uu-sort/BUILD.bazel create mode 100644 crates/vendor/uu-stat/BUILD.bazel create mode 100644 crates/vendor/uu-tac/BUILD.bazel create mode 100644 crates/vendor/uu-tail/BUILD.bazel create mode 100644 crates/vendor/uu-tee/BUILD.bazel create mode 100644 crates/vendor/uu-touch/BUILD.bazel create mode 100644 crates/vendor/uu-tr/BUILD.bazel create mode 100644 crates/vendor/uu-truncate/BUILD.bazel create mode 100644 crates/vendor/uu-uname/BUILD.bazel create mode 100644 crates/vendor/uu-uniq/BUILD.bazel create mode 100644 crates/vendor/uu-wc/BUILD.bazel create mode 100644 crates/vendor/uu-whoami/BUILD.bazel create mode 100644 crates/vendor/uu-xargs/BUILD.bazel create mode 100644 crates/vendor/uu-yes/BUILD.bazel create mode 100644 infra/bazel-remote/bazel-remote.yaml create mode 100644 infra/bazel-remote/ca.crt create mode 100644 infra/bazel-remote/runner-egress-patch.yaml create mode 100755 infra/bazel-remote/setup.sh create mode 100644 packages/natives/scripts/build-bindings.ts delete mode 100644 packages/natives/scripts/build-native.ts create mode 100644 scripts/bazel-natives.test.ts create mode 100755 scripts/bazel-natives.ts delete mode 100644 scripts/ci-build-native.test.ts delete mode 100644 scripts/ci-build-native.ts delete mode 100644 scripts/ci-native-artifact-cache.test.ts delete mode 100755 scripts/ci-native-artifact-cache.ts delete mode 100644 scripts/ci-target-cache.test.ts delete mode 100755 scripts/ci-target-cache.ts diff --git a/.bazelignore b/.bazelignore new file mode 100644 index 000000000..284b9e988 --- /dev/null +++ b/.bazelignore @@ -0,0 +1,6 @@ +node_modules +target +packages +python +infra +docs diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 000000000..2d969543e --- /dev/null +++ b/.bazelrc @@ -0,0 +1,67 @@ +# Bazel build configuration for the pi-natives NAPI addon pipeline. +# Cross targets, ISA variants, and release codegen are encoded in the +# //:natives-* addon targets (bazel/defs.bzl transition), so a bare +# `bazel build //:natives-` is always release-grade. + +common --enable_platform_specific_config + +# Hermetic-ish action env: no host env leaks into action keys. Build scripts +# that need host tools (cmake for audiopus_sys' bundled opus) get an explicit +# PATH through crate annotations in MODULE.bazel. +build --incompatible_strict_action_env + +# NOTE: rust pipelined_compilation stays OFF: handing dependents rmeta-only +# crates breaks `rust_test(crate = ...)` harness compiles whose deps export +# macro_rules! ("can't find crate" at macro expansion). + +# Keep rustc errors readable. +build --@rules_rust//rust/settings:error_format=human +# Generated toolchains carry target_settings requiring the nightly channel. +build --@rules_rust//rust/toolchain/channel=nightly + + +# --- Rust validation (replaces cargo clippy/nextest in CI) -------------------- +# Mirrors cargo semantics: crates with `[lints] workspace = true` (pi-ast, +# pi-iso, pi-natives, pi-shell, pi-walker) get the strict workspace policy +# (clippy-strict; bazel/clippy.bazelrc is generated from Cargo.toml); everything +# else gets default clippy + -Dwarnings (clippy). +build:clippy --aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect +build:clippy --output_groups=+clippy_checks +build:clippy --@rules_rust//rust/settings:clippy_flag=-Dwarnings +build:clippy-strict --config=clippy +import %workspace%/bazel/clippy.bazelrc +# rustfmt check via aspect, against the workspace rustfmt.toml. +build:rustfmt --aspects=@rules_rust//rust:defs.bzl%rustfmt_aspect +build:rustfmt --output_groups=+rustfmt_checks +build:rustfmt --@rules_rust//rust/settings:rustfmt.toml=//:rustfmt.toml +test --test_output=errors +test --test_summary=terse + +# --- CI base ----------------------------------------------------------------- +build:ci --curses=no --color=yes --show_timestamps +build:ci --announce_rc +build:ci --verbose_failures +# Fail-fast inside one invocation; job-level matrix provides isolation. +build:ci --keep_going=false + +# --- Remote cache ------------------------------------------------------------ +# The bazel-remote endpoint is cluster-internal only; .github/actions/bazel-cache +# composes endpoint + credentials into an rc fragment on omp-kata pods. +# GitHub-hosted runners never use a remote cache (actions/cache-backed +# --disk_cache instead). These configs carry only the policy bits. +# +# cache-rw: trusted in-cluster writers (omp-kata pods). +build:cache-rw --remote_upload_local_results=true +build:cache-rw --remote_local_fallback +# cache-ro: read-only consumers (e.g. local dev via .bazelrc.user + VPN/tailnet). +build:cache-ro --remote_upload_local_results=false +build:cache-ro --remote_local_fallback +# Don't let a cache outage fail the build. +build:cache-rw --remote_retries=2 +build:cache-ro --remote_retries=2 +build:cache-rw --remote_timeout=60s +build:cache-ro --remote_timeout=60s + +# --- Local development --------------------------------------------------------- +# Optional user overrides (remote cache endpoint, disk cache, etc.). +try-import %workspace%/.bazelrc.user diff --git a/.bazelversion b/.bazelversion new file mode 100644 index 000000000..deeb3d66e --- /dev/null +++ b/.bazelversion @@ -0,0 +1 @@ +9.2.0 diff --git a/.github/actions/bazel-cache/action.yml b/.github/actions/bazel-cache/action.yml new file mode 100644 index 000000000..60ef90bbb --- /dev/null +++ b/.github/actions/bazel-cache/action.yml @@ -0,0 +1,65 @@ +name: "Compose bazel cache config" +description: > + Single source of truth for how a CI job caches bazel work, emitted as a + bazelrc fragment (rc output) consumers pass via `bazelisk --bazelrc=...`. + omp-kata pods (detected via BAZEL_REMOTE_USER/BAZEL_REMOTE_PASSWORD from the + bazel-remote-ci secret) get read-write gRPC access to the in-cluster + bazel-remote service — an address that only resolves inside the cluster, so + nothing about the infrastructure leaks from this public repo. GitHub-hosted + runners never talk to that infrastructure: they use a local bazel disk cache + persisted with actions/cache, keyed on the crate lockfile and module + definition. + +inputs: + scope: + description: > + Disk-cache key discriminator for GitHub-hosted runners; jobs building + different target sets (linux pair, darwin-all, msvc, validation) use + separate scopes so they don't evict each other's entries. + required: true + +outputs: + rc: + description: Path to the generated bazelrc fragment + value: ${{ steps.compose.outputs.rc }} + +runs: + using: composite + steps: + - name: Restore bazel disk cache (GitHub-hosted) + if: env.BAZEL_REMOTE_USER == '' + uses: actions/cache@v4 + with: + path: | + ~/.cache/omp-bazel-disk + ~/.cache/omp-bazel-repo + key: bazel-disk-${{ inputs.scope }}-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('Cargo.Bazel.lock', 'MODULE.bazel', 'rust-toolchain.toml') }} + restore-keys: | + bazel-disk-${{ inputs.scope }}-${{ runner.os }}-${{ runner.arch }}- + + - name: Compose cache config + id: compose + shell: bash + run: | + set -euo pipefail + rc="$RUNNER_TEMP/bazel-cache.rc" + if [ -n "${BAZEL_REMOTE_USER:-}" ]; then + auth="$(printf %s "${BAZEL_REMOTE_USER}:${BAZEL_REMOTE_PASSWORD}" | base64 | tr -d '\n')" + { + echo "common --config=ci" + echo "common --config=cache-rw" + echo "common --remote_cache=grpcs://bazel-remote.bazel-cache.svc.cluster.local:9092" + echo "common --tls_certificate=infra/bazel-remote/ca.crt" + echo "common --remote_header='authorization=Basic ${auth}'" + # PVC-backed shared repository cache (pods are ephemeral; without + # it every job re-downloads toolchains + crate archives). + echo "common --repository_cache=$HOME/.cache/omp-bazel-repo" + } > "$rc" + else + { + echo "common --config=ci" + echo "common --disk_cache=$HOME/.cache/omp-bazel-disk" + echo "common --repository_cache=$HOME/.cache/omp-bazel-repo" + } > "$rc" + fi + echo "rc=$rc" >> "$GITHUB_OUTPUT" diff --git a/.github/actions/bazel-natives/action.yml b/.github/actions/bazel-natives/action.yml new file mode 100644 index 000000000..8250ed3f7 --- /dev/null +++ b/.github/actions/bazel-natives/action.yml @@ -0,0 +1,34 @@ +name: "Build native addons (bazel)" +description: > + Build the requested //:natives-* targets with bazelisk and copy the .node + files into the destination directory. Cache wiring comes from the + bazel-cache action: in-cluster read-write on omp-kata, actions/cache-backed + disk cache on GitHub-hosted runners. + +inputs: + targets: + description: Space-separated scripts/bazel-natives.ts target names + required: true + dest: + description: Destination directory for the .node files + required: false + default: packages/natives/native + cache-scope: + description: Disk-cache key discriminator (see bazel-cache action) + required: false + default: natives + +runs: + using: composite + steps: + - id: cache + uses: ./.github/actions/bazel-cache + with: + scope: ${{ inputs.cache-scope }} + + - name: Build native addons + shell: bash + run: | + set -euo pipefail + export OMP_BAZEL_RC="${{ steps.cache.outputs.rc }}" + bun scripts/bazel-natives.ts ${{ inputs.targets }} --dest "${{ inputs.dest }}" diff --git a/.github/actions/build-native/action.yml b/.github/actions/build-native/action.yml deleted file mode 100644 index cc548e2d1..000000000 --- a/.github/actions/build-native/action.yml +++ /dev/null @@ -1,427 +0,0 @@ -name: Build native addon -description: > - Build the pi_natives cdylib for one platform/arch/variant and upload it as a - hash-tagged artifact. Self-detects the runner via $SCCACHE_BUCKET (injected - only on the self-hosted omp-kata pods): on-infra it uses the image's baked - toolchains + the RustFS-backed sccache; on GitHub-hosted runners it installs - the toolchains and uses Swatinem target/ cache + the GitHub Actions sccache - backend. PRs run on GitHub-hosted runners, so the on-infra path only ever - serves trusted push/main + release builds. - -inputs: - hash: - description: Rust source hash used in the artifact name - required: true - platform: - description: Target platform (linux, darwin, win32) - required: true - arch: - description: Target arch (x64, arm64) - required: true - variant: - description: Optional build variant (baseline, modern); required for native x64 builds. - required: false - default: "" - target: - description: Optional rustc target triple for cross-compilation - required: false - default: "" - glibc: - description: > - Optional glibc floor override for linux-gnu builds (defaults to "2.17"). - Routes the build through cargo-zigbuild against that floor without - affecting the rustup target or host-arch native test steps. - required: false - default: "" - libc: - description: Optional Linux libc artifact qualifier (for example, musl) - required: false - default: "" - rust_checks: - description: Run clippy/rustfmt checks (only one matrix entry should set this) - required: false - default: "false" - skip_validation: - description: Skip clippy/rustfmt and the Rust test suite for build-only matrix entries. - required: false - default: "false" - skip_build: - description: Run validation and cache population without building or uploading a native addon. - required: false - default: "false" - cache_scope: - description: Separates target snapshots whose Cargo work differs (for example, build and validation). - required: false - default: "build" - save_cache: - description: Whether to persist the GitHub-hosted or RustFS target snapshot. - required: false - default: "false" - -runs: - using: composite - steps: - - name: Detect runner environment - id: detect - shell: bash - run: | - # $SCCACHE_BUCKET is injected only on the self-hosted omp-kata runner - # pods (envFrom sccache-s3); its presence is the repo's single - # "on can.internal infra?" signal. On-infra: baked toolchains, RustFS - # sccache, no GitHub target/ cache. Off-infra (GitHub-hosted): install - # toolchains, Swatinem target/ cache, GitHub Actions sccache backend. - if [ -n "${SCCACHE_BUCKET:-}" ]; then - echo "on_infra=true" >> "$GITHUB_OUTPUT" - echo "runner: self-hosted omp-kata (baked tools + RustFS sccache)" - else - echo "on_infra=false" >> "$GITHUB_OUTPUT" - echo "runner: GitHub-hosted (install tools + Swatinem cache + GHA sccache)" - fi - - - name: Resolve build targets - id: resolve - shell: bash - env: - TARGET: ${{ inputs.target }} - GLIBC: ${{ inputs.glibc }} - PLATFORM: ${{ inputs.platform }} - LIBC: ${{ inputs.libc }} - ARCH: ${{ inputs.arch }} - run: | - set -euo pipefail - # Keep the portability floor here: this action is included in the - # native source hash, and every workflow then consumes one value. - if [ "$PLATFORM" = linux ] && [ "$LIBC" != musl ]; then - GLIBC="${GLIBC:-2.17}" - elif [ -n "$GLIBC" ]; then - echo "::error::glibc floor '$GLIBC' is only valid for linux-gnu builds" - exit 1 - fi - - # `cross_target` is what the napi build feeds cargo: cargo-zigbuild reads - # the glibc floor as a `..` triple suffix. `bare_target` is - # what rustup needs — never glibc-suffixed (rustup rejects the suffix) - # and empty for host-arch builds whose target is already installed. - base="$TARGET" - if [ -z "$base" ]; then - case "$ARCH" in - x64) base="x86_64-unknown-linux-gnu" ;; - arm64) base="aarch64-unknown-linux-gnu" ;; - esac - fi - cross_target="" - if [ -n "$GLIBC" ]; then - case "$base" in - *-linux-gnu) cross_target="${base}.${GLIBC}" ;; - *) - echo "::error::glibc floor '$GLIBC' requires a linux-gnu target, got '$base'" - exit 1 - ;; - esac - elif [ -n "$TARGET" ]; then - cross_target="$TARGET" - fi - bare_target="${TARGET%%.*}" - { - echo "cross_target=$cross_target" - echo "bare_target=$bare_target" - } >> "$GITHUB_OUTPUT" - echo "Resolved cross_target='$cross_target' bare_target='$bare_target'" - - # --- Rust toolchain ----------------------------------------------------- - - name: Ensure baked Rust toolchain (omp-kata) - if: steps.detect.outputs.on_infra == 'true' - uses: ./.github/actions/ensure-rust-toolchain - with: - toolchain: nightly-2026-04-29 - components: ${{ inputs.rust_checks == 'true' && 'clippy,rustfmt' || '' }} - target: ${{ steps.resolve.outputs.bare_target }} - - name: Install Rust toolchain (GitHub-hosted) - if: steps.detect.outputs.on_infra == 'false' - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: nightly-2026-04-29 - components: ${{ inputs.rust_checks == 'true' && 'clippy, rustfmt' || '' }} - targets: ${{ steps.resolve.outputs.bare_target }} - - name: Install Linux build prerequisites (GitHub-hosted) - if: steps.detect.outputs.on_infra == 'false' && runner.os == 'Linux' - shell: bash - run: | - sudo apt-get update - sudo apt-get install -y build-essential - # audiopus_sys builds bundled libopus via CMake (Ninja generator for MSVC - # cross); baked into the omp-kata image and GitHub-hosted images, so this - # only self-heals runners that predate the bake. - - uses: ./.github/actions/ensure-cmake - - name: Prepend rustup toolchain bin to PATH (GitHub-hosted) - if: steps.detect.outputs.on_infra == 'false' - shell: bash - run: | - # Homebrew on macOS runners ships rustup-init with shadow proxies for - # `cargo`/`rustc`/etc. that error out as the installer ("unexpected - # argument 'metadata' found"). Force the real toolchain binaries to win - # on PATH. (ensure-rust-toolchain already does this on omp-kata.) - toolchain_bin="$(dirname "$(rustup which cargo)")" - echo "$toolchain_bin" >> "$GITHUB_PATH" - echo "Prepended $toolchain_bin to PATH" - - # --- Rust flags (shared) ------------------------------------------------ - - name: Configure native Rust flags - if: inputs.target == '' || inputs.arch == 'x64' - shell: bash - env: - TARGET_ARCH: ${{ inputs.arch }} - TARGET_VARIANT: ${{ inputs.variant }} - run: | - case "$TARGET_ARCH:$TARGET_VARIANT" in - x64:modern) - rustflags="-C target-cpu=x86-64-v3" - ;; - x64:baseline) - rustflags="-C target-cpu=x86-64-v2" - ;; - x64:*) - echo "::error::x64 native builds require variant=modern or variant=baseline" - exit 1 - ;; - *) - if [ -n "${RUSTFLAGS:-}" ]; then - echo "Using caller-provided RUSTFLAGS=$RUSTFLAGS" - exit 0 - fi - # Non-x64 native builds (darwin arm64) keep the target's default - # CPU features. `-C target-cpu=native` both baked the CI host's - # CPU features into shipped artifacts and trips ring 0.17's - # aarch64-apple const assertion (CAPS_STATIC == MIN_STATIC_FEATURES) - # once extra static features are enabled. - echo "Using default target CPU features (no RUSTFLAGS)" - exit 0 - ;; - esac - - echo "RUSTFLAGS=$rustflags" >> "$GITHUB_ENV" - echo "Configured RUSTFLAGS=$rustflags" - - # --- Cargo + rolling target cache (GitHub-hosted only) ------------------ - # Swatinem keeps the registry/tool cache. target/ uses an explicit rolling - # key: a new source hash restores the latest compatible snapshot through - # restore-keys, then saves the rebuilt state under a fresh immutable key. - # This is especially important for the three-core Intel macOS runner. - - name: Cache Cargo dependencies (GitHub-hosted) - if: steps.detect.outputs.on_infra == 'false' - uses: Swatinem/rust-cache@v2 - with: - shared-key: native-deps-${{ inputs.platform }}-${{ inputs.libc || 'default' }}-${{ inputs.arch }} - cache-on-failure: true - save-if: ${{ inputs.save_cache == 'true' }} - cache-targets: false - - name: Restore rolling Rust target/ (GitHub-hosted) - id: gha-target - if: steps.detect.outputs.on_infra == 'false' - uses: actions/cache/restore@v4 - with: - path: target - key: native-target-v1-${{ runner.os }}-${{ runner.arch }}-${{ inputs.platform }}-${{ inputs.libc || 'default' }}-${{ inputs.arch }}-${{ inputs.variant || 'default' }}-${{ inputs.cache_scope }}-${{ hashFiles('rust-toolchain.toml') }}-h${{ inputs.hash }} - restore-keys: | - native-target-v1-${{ runner.os }}-${{ runner.arch }}-${{ inputs.platform }}-${{ inputs.libc || 'default' }}-${{ inputs.arch }}-${{ inputs.variant || 'default' }}-${{ inputs.cache_scope }}-${{ hashFiles('rust-toolchain.toml') }}- - - # --- sccache ------------------------------------------------------------ - - name: Ensure baked sccache (omp-kata) - if: steps.detect.outputs.on_infra == 'true' - uses: ./.github/actions/ensure-sccache - with: - version: "0.15.0" - - name: Setup sccache (GitHub-hosted) - if: steps.detect.outputs.on_infra == 'false' - uses: mozilla-actions/sccache-action@v0.0.10 - - name: Enable sccache for cargo - # CARGO_INCREMENTAL=0 is required: sccache silently skips caching when - # incremental is enabled, turning the wrapper into a no-op. The backend is - # conditional: omp-kata reads the shared S3 (RustFS) config from the - # inherited pod env; GitHub-hosted runners use the GHA cache backend. - shell: bash - env: - CROSS_TARGET: ${{ steps.resolve.outputs.cross_target }} - run: | - jobs="${OMP_CI_CPU_COUNT:-$(getconf _NPROCESSORS_ONLN)}" - if [ -z "${OMP_CI_CPU_COUNT:-}" ] && [ -r /sys/fs/cgroup/cpu.max ]; then - read -r quota period < /sys/fs/cgroup/cpu.max - if [ "$quota" != "max" ]; then - quota_jobs=$((quota / period)) - [ "$quota_jobs" -ge 1 ] || quota_jobs=1 - [ "$quota_jobs" -ge "$jobs" ] || jobs="$quota_jobs" - fi - fi - { - echo "OMP_CI_CPU_COUNT=$jobs" - echo "RUSTC_WRAPPER=sccache" - echo "CARGO_INCREMENTAL=0" - echo "CARGO_BUILD_JOBS=$jobs" - echo "CMAKE_BUILD_PARALLEL_LEVEL=$jobs" - echo "NEXTEST_TEST_THREADS=$jobs" - } >> "$GITHUB_ENV" - echo "Native build parallelism: $jobs" - # Route CMake-built C (audiopus_sys' bundled opus) through sccache - # too — build scripts bypass RUSTC_WRAPPER. Non-cross builds only: - # cross builds compile C with zig cc / clang-cl wrapper scripts that - # sccache may fail to classify, which would hard-fail the compile. - if [ -z "$CROSS_TARGET" ]; then - { - echo "CMAKE_C_COMPILER_LAUNCHER=sccache" - echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" - } >> "$GITHUB_ENV" - fi - if [ -n "${SCCACHE_BUCKET:-}" ]; then - echo "sccache backend: shared S3 ($SCCACHE_BUCKET @ $SCCACHE_ENDPOINT)" - else - echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV" - echo "sccache backend: GitHub Actions cache" - fi - - # --- cargo-nextest (native test runner; non-cross builds only) ---------- - - name: Ensure baked cargo-nextest (omp-kata) - if: steps.detect.outputs.on_infra == 'true' && inputs.target == '' && inputs.skip_validation != 'true' - uses: ./.github/actions/ensure-cargo-tool - with: - binary: cargo-nextest - crate: cargo-nextest - - name: Install cargo-nextest (GitHub-hosted) - if: steps.detect.outputs.on_infra == 'false' && inputs.target == '' && inputs.skip_validation != 'true' - uses: taiki-e/install-action@v2 - with: - tool: nextest - - - uses: ./.github/actions/bun-install - - # --- Cross-compile toolchains ------------------------------------------- - # Non-MSVC targets (e.g. aarch64-unknown-linux-gnu) build with - # cargo-zigbuild (needs zig); MSVC targets (e.g. x86_64-pc-windows-msvc) - # build with cargo-xwin (needs clang/lld/llvm). The napi CLI's - # --cross-compile flag picks the backend; we just install what it needs. - # Cross builds only run on push/main + release (omp-kata), so the - # GitHub-hosted cross branches exist for portability and never fire here. - - name: Ensure baked zig (omp-kata, non-MSVC cross) - if: steps.detect.outputs.on_infra == 'true' && steps.resolve.outputs.cross_target != '' && !endsWith(steps.resolve.outputs.cross_target, '-msvc') - uses: ./.github/actions/ensure-zig - with: - version: "0.16.0" - - name: Setup zig (GitHub-hosted, non-MSVC cross) - if: steps.detect.outputs.on_infra == 'false' && steps.resolve.outputs.cross_target != '' && !endsWith(steps.resolve.outputs.cross_target, '-msvc') - uses: mlugg/setup-zig@v2 - with: - version: 0.16.0 - - name: Ensure baked cargo-zigbuild (omp-kata, non-MSVC cross) - if: steps.detect.outputs.on_infra == 'true' && steps.resolve.outputs.cross_target != '' && !endsWith(steps.resolve.outputs.cross_target, '-msvc') - uses: ./.github/actions/ensure-cargo-tool - with: - binary: cargo-zigbuild - crate: cargo-zigbuild - - name: Install cargo-zigbuild (GitHub-hosted, non-MSVC cross) - if: steps.detect.outputs.on_infra == 'false' && steps.resolve.outputs.cross_target != '' && !endsWith(steps.resolve.outputs.cross_target, '-msvc') - uses: taiki-e/install-action@v2 - with: - tool: cargo-zigbuild - - name: Install LLVM tooling (GitHub-hosted, MSVC cross) - if: steps.detect.outputs.on_infra == 'false' && endsWith(steps.resolve.outputs.cross_target, '-msvc') - shell: bash - run: | - sudo apt-get update - sudo apt-get install -y clang lld llvm - - name: Ensure baked cargo-xwin (omp-kata, MSVC cross) - if: steps.detect.outputs.on_infra == 'true' && endsWith(steps.resolve.outputs.cross_target, '-msvc') - uses: ./.github/actions/ensure-cargo-tool - with: - binary: cargo-xwin - crate: cargo-xwin - - name: Install cargo-xwin (GitHub-hosted, MSVC cross) - if: steps.detect.outputs.on_infra == 'false' && endsWith(steps.resolve.outputs.cross_target, '-msvc') - uses: taiki-e/install-action@v2 - with: - tool: cargo-xwin - - name: Cache cargo-xwin Windows SDK - if: endsWith(steps.resolve.outputs.cross_target, '-msvc') - uses: actions/cache@v4 - with: - path: ~/.cache/cargo-xwin - key: cargo-xwin-${{ runner.os }}-v1 - - name: Accept xwin license - if: endsWith(steps.resolve.outputs.cross_target, '-msvc') - shell: bash - run: echo "XWIN_ACCEPT_LICENSE=1" >> "$GITHUB_ENV" - - # --- target/ cache (omp-kata) -------------------------------------------- - # sccache only covers rustc invocations; build-script outputs (57 - # tree-sitter grammar C compiles, bundled opus via CMake, ring asm) and - # cargo's fingerprint/link work bypass it. Snapshot target/ to the same - # RustFS S3 bucket, keyed per platform/libc/arch/variant + toolchain and - # overwritten on each save so storage stays bounded at one snapshot per - # key. GitHub-hosted runners get the same effect from the rolling cache above. - - name: Verify target cache compressor (omp-kata) - if: steps.detect.outputs.on_infra == 'true' - shell: bash - run: zstd --version - - - name: Restore target/ cache (omp-kata) - if: steps.detect.outputs.on_infra == 'true' - shell: bash - env: - TARGET_CACHE_KEY: native-${{ inputs.platform }}-${{ inputs.libc || 'default' }}-${{ inputs.arch }}-${{ inputs.variant || 'default' }}-${{ inputs.cache_scope }} - run: bun scripts/ci-target-cache.ts restore "$TARGET_CACHE_KEY" - - # --- Checks, build, upload (shared) ------------------------------------- - - name: Rust checks - if: inputs.rust_checks == 'true' && inputs.skip_validation != 'true' - shell: bash - run: bun run check:rs - - name: Test workspace (Rust) - # macOS has no `#[cfg(target_os = "macos")]` tests in the workspace, and - # Windows-only tests are no longer exercised in CI (win32-x64 cross-builds - # on Linux). Skipping the duplicate Linux runs on macOS saves ~10 min of - # parallel runner time. - if: inputs.target == '' && inputs.platform != 'darwin' && inputs.skip_validation != 'true' - shell: bash - run: bun run test:rs - - name: Build native addon(s) - if: inputs.skip_build != 'true' - shell: bash - env: - CROSS_TARGET: ${{ steps.resolve.outputs.cross_target }} - TARGET_PLATFORM: ${{ inputs.platform }} - TARGET_ARCH: ${{ inputs.arch }} - TARGET_VARIANTS: ${{ inputs.variant }} - run: | - if [ "$CROSS_TARGET" = x86_64-apple-darwin ]; then - # Do not accept Homebrew's arm64 libopus through pkg-config; - # build audiopus_sys's bundled x64 archive. - export OPUS_NO_PKG_CONFIG=1 - fi - bun run ci:build:native - - name: sccache stats - shell: bash - run: sccache --show-stats || true - - name: Save native addon(s) to in-cluster cache - if: inputs.skip_build != 'true' && steps.detect.outputs.on_infra == 'true' - shell: bash - env: - ARTIFACT_NAME: pi-natives-${{ inputs.platform }}-${{ inputs.libc && format('{0}-', inputs.libc) || '' }}${{ inputs.arch }}${{ inputs.variant && format('-{0}', inputs.variant) || '' }}-h${{ inputs.hash }} - run: bun scripts/ci-native-artifact-cache.ts save "${{ inputs.hash }}" "$ARTIFACT_NAME" - - name: Upload native addon(s) - if: inputs.skip_build != 'true' - uses: actions/upload-artifact@v4 - with: - name: pi-natives-${{ inputs.platform }}-${{ inputs.libc && format('{0}-', inputs.libc) || '' }}${{ inputs.arch }}${{ inputs.variant && format('-{0}', inputs.variant) || '' }}-h${{ inputs.hash }} - path: packages/natives/native/pi_natives.${{ inputs.platform }}-${{ inputs.arch }}*.node - if-no-files-found: error - retention-days: 90 - - name: Save target/ cache (omp-kata) - if: steps.detect.outputs.on_infra == 'true' && inputs.save_cache == 'true' - shell: bash - env: - TARGET_CACHE_KEY: native-${{ inputs.platform }}-${{ inputs.libc || 'default' }}-${{ inputs.arch }}-${{ inputs.variant || 'default' }}-${{ inputs.cache_scope }} - run: bun scripts/ci-target-cache.ts save "$TARGET_CACHE_KEY" - - name: Save rolling Rust target/ (GitHub-hosted) - if: steps.detect.outputs.on_infra == 'false' && inputs.save_cache == 'true' && steps.gha-target.outputs.cache-hit != 'true' - uses: actions/cache/save@v4 - with: - path: target - key: native-target-v1-${{ runner.os }}-${{ runner.arch }}-${{ inputs.platform }}-${{ inputs.libc || 'default' }}-${{ inputs.arch }}-${{ inputs.variant || 'default' }}-${{ inputs.cache_scope }}-${{ hashFiles('rust-toolchain.toml') }}-h${{ inputs.hash }} diff --git a/.github/actions/bun-install/action.yml b/.github/actions/bun-install/action.yml index 20de098e0..54f2ddeab 100644 --- a/.github/actions/bun-install/action.yml +++ b/.github/actions/bun-install/action.yml @@ -22,11 +22,12 @@ runs: else echo "setup_bun=true" >> "$GITHUB_OUTPUT" fi - # The repo keys "are we on can.internal infra?" off $SCCACHE_BUCKET (see - # actions/build-native). RUNNER_ENVIRONMENT is empty on ARC pods, so it - # is not a usable signal here. On infra, the ARC pod mounts the shared - # Bun store at the default cache path; off infra, actions/cache restores it. - if [ -n "${SCCACHE_BUCKET:-}" ]; then + # The repo keys "are we on can.internal infra?" off $BAZEL_REMOTE_USER + # (the bazel-remote-ci secret is envFrom-injected into every omp-kata + # runner pod). RUNNER_ENVIRONMENT is empty on ARC pods, so it is not a + # usable signal here. On infra, the ARC pod mounts the shared Bun + # store at the default cache path; off infra, actions/cache restores it. + if [ -n "${BAZEL_REMOTE_USER:-}" ]; then echo "cache=mounted" >> "$GITHUB_OUTPUT" echo "bun cache backend: mounted PVC (${BUN_INSTALL_CACHE_DIR:-${HOME}/.bun/install/cache})" else diff --git a/.github/actions/ensure-cargo-tool/action.yml b/.github/actions/ensure-cargo-tool/action.yml deleted file mode 100644 index dcde8d72f..000000000 --- a/.github/actions/ensure-cargo-tool/action.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: "ensure cargo tool" -description: Ensure a cargo-installed CLI is present. - -inputs: - binary: - required: true - description: Binary name expected on PATH - crate: - required: false - default: "" - description: Crate name to cargo install; defaults to the binary name - version: - required: false - default: "" - description: Optional crate version - -runs: - using: composite - steps: - - shell: bash - env: - BINARY: ${{ inputs.binary }} - CRATE: ${{ inputs.crate }} - VERSION: ${{ inputs.version }} - run: | - set -euo pipefail - if command -v "$BINARY" >/dev/null 2>&1; then - echo "Using baked cargo tool: $BINARY" - exit 0 - fi - - crate="${CRATE:-$BINARY}" - install_args=(install --locked "$crate") - if [ -n "$VERSION" ]; then - install_args+=(--version "$VERSION") - fi - cargo "${install_args[@]}" - echo "Installed cargo tool: $BINARY" diff --git a/.github/actions/ensure-cmake/action.yml b/.github/actions/ensure-cmake/action.yml deleted file mode 100644 index 4ff374481..000000000 --- a/.github/actions/ensure-cmake/action.yml +++ /dev/null @@ -1,80 +0,0 @@ -name: "ensure cmake" -description: >- - Ensure cmake (and ninja on Linux) are on PATH for native builds that compile - bundled C libraries (audiopus_sys builds libopus via CMake; MSVC cross builds - generate with Ninja). No-op when the runner image already ships them - (GitHub-hosted images do); self-heals on the omp-kata pods by installing - pinned binaries into ~/.local. - -inputs: - cmake-version: - required: false - default: "4.1.2" - description: CMake release version installed when cmake is missing - ninja-version: - required: false - default: "1.13.1" - description: Ninja release version installed when ninja is missing (Linux only) - -runs: - using: composite - steps: - - shell: bash - env: - CMAKE_VERSION: ${{ inputs.cmake-version }} - NINJA_VERSION: ${{ inputs.ninja-version }} - run: | - set -euo pipefail - destdir="${HOME}/.local" - mkdir -p "$destdir" - - if command -v cmake >/dev/null 2>&1 && cmake --version >/dev/null 2>&1; then - echo "Using preinstalled $(cmake --version | head -n1)" - else - case "$(uname -s)-$(uname -m)" in - Linux-x86_64) archive="cmake-${CMAKE_VERSION}-linux-x86_64" ;; - Linux-aarch64) archive="cmake-${CMAKE_VERSION}-linux-aarch64" ;; - Darwin-*) archive="cmake-${CMAKE_VERSION}-macos-universal" ;; - *) - echo "Unsupported cmake host: $(uname -s)-$(uname -m)" >&2 - exit 1 - ;; - esac - rm -rf "${destdir:?}/${archive}" - curl -fsSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${archive}.tar.gz" -o "${destdir}/cmake.tar.gz" - tar -xzf "${destdir}/cmake.tar.gz" -C "$destdir" - rm -f "${destdir}/cmake.tar.gz" - case "$archive" in - *macos*) bindir="${destdir}/${archive}/CMake.app/Contents/bin" ;; - *) bindir="${destdir}/${archive}/bin" ;; - esac - echo "$bindir" >> "$GITHUB_PATH" - echo "Installed $("${bindir}/cmake" --version | head -n1)" - fi - - # Ninja is only needed on Linux hosts: cmake-rs generates MSVC cross - # builds (cargo-xwin) with the Ninja generator. macOS images ship it. - if [ "$(uname -s)" = "Linux" ] && ! command -v ninja >/dev/null 2>&1; then - case "$(uname -m)" in - x86_64) zip="ninja-linux.zip" ;; - aarch64) zip="ninja-linux-aarch64.zip" ;; - *) - echo "Unsupported ninja host: $(uname -m)" >&2 - exit 1 - ;; - esac - bindir="${destdir}/ninja-${NINJA_VERSION}" - mkdir -p "$bindir" - curl -fsSL "https://github.com/ninja-build/ninja/releases/download/v${NINJA_VERSION}/${zip}" -o "${bindir}/ninja.zip" - if command -v unzip >/dev/null 2>&1; then - unzip -oq "${bindir}/ninja.zip" -d "$bindir" - elif command -v bsdtar >/dev/null 2>&1; then - bsdtar -xf "${bindir}/ninja.zip" -C "$bindir" - else - python3 -m zipfile -e "${bindir}/ninja.zip" "$bindir" - fi - rm -f "${bindir}/ninja.zip" - chmod +x "${bindir}/ninja" - echo "$bindir" >> "$GITHUB_PATH" - echo "Installed ninja $("${bindir}/ninja" --version)" - fi diff --git a/.github/actions/ensure-rust-toolchain/action.yml b/.github/actions/ensure-rust-toolchain/action.yml deleted file mode 100644 index 36ad913bb..000000000 --- a/.github/actions/ensure-rust-toolchain/action.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: "ensure rust toolchain" -description: > - Ensure a pinned rustup toolchain, optional components, and an optional target - are present, then prepend the real toolchain bin dir to PATH. - -inputs: - toolchain: - required: true - description: Rust toolchain name (for example nightly-2026-04-29) - components: - required: false - default: "" - description: Optional comma-separated rustup components - target: - required: false - default: "" - description: Optional rustup target triple - -runs: - using: composite - steps: - - shell: bash - env: - TOOLCHAIN: ${{ inputs.toolchain }} - COMPONENTS: ${{ inputs.components }} - TARGET: ${{ inputs.target }} - run: | - set -euo pipefail - if ! command -v rustup >/dev/null 2>&1; then - curl --proto '=https' --tlsv1.2 -fsSL https://sh.rustup.rs \ - | sh -s -- -y --default-toolchain "$TOOLCHAIN" --profile minimal - fi - - if ! rustc +"$TOOLCHAIN" --version >/dev/null 2>&1; then - rustup toolchain install "$TOOLCHAIN" --profile minimal --no-self-update - fi - rustup default "$TOOLCHAIN" - - missing_components=() - if [ -n "$COMPONENTS" ]; then - IFS=',' read -r -a wanted_components <<< "$COMPONENTS" - for component in "${wanted_components[@]}"; do - [ -z "$component" ] && continue - if ! rustup component list --toolchain "$TOOLCHAIN" --installed | grep -qE "^${component}(-|$)"; then - missing_components+=("$component") - fi - done - fi - if [ ${#missing_components[@]} -gt 0 ]; then - rustup component add --toolchain "$TOOLCHAIN" "${missing_components[@]}" - fi - - if [ -n "$TARGET" ] && ! rustup target list --toolchain "$TOOLCHAIN" --installed | grep -qx "$TARGET"; then - rustup target add --toolchain "$TOOLCHAIN" "$TARGET" - fi - - toolchain_bin="$(dirname "$(rustup which cargo --toolchain "$TOOLCHAIN")")" - echo "$toolchain_bin" >> "$GITHUB_PATH" - echo "Using Rust toolchain: $(rustc +"$TOOLCHAIN" --version)" diff --git a/.github/actions/ensure-sccache/action.yml b/.github/actions/ensure-sccache/action.yml deleted file mode 100644 index cb10f9909..000000000 --- a/.github/actions/ensure-sccache/action.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: "ensure sccache" -description: Ensure a pinned sccache binary is on PATH. - -inputs: - version: - required: false - default: "0.15.0" - description: sccache release version without the leading v - -runs: - using: composite - steps: - - shell: bash - env: - SCCACHE_VERSION: ${{ inputs.version }} - run: | - set -euo pipefail - if command -v sccache >/dev/null 2>&1; then - current="$(sccache --version | awk '{print $2}')" - if [ "$current" = "$SCCACHE_VERSION" ]; then - echo "Using baked sccache $current" - exit 0 - fi - fi - - case "$(uname -s)-$(uname -m)" in - Linux-x86_64) triple=x86_64-unknown-linux-musl ;; - Darwin-arm64) triple=aarch64-apple-darwin ;; - Darwin-x86_64) triple=x86_64-apple-darwin ;; - *) triple="" ;; - esac - - if [ -n "$triple" ]; then - url="https://github.com/mozilla/sccache/releases/download/v${SCCACHE_VERSION}/sccache-v${SCCACHE_VERSION}-${triple}.tar.gz" - tmpdir="${RUNNER_TEMP:-/tmp}/sccache-${SCCACHE_VERSION}" - bindir="${HOME}/.local/bin" - rm -rf "$tmpdir" - mkdir -p "$tmpdir" "$bindir" - curl -fsSL "$url" | tar -xz -C "$tmpdir" - install -m755 "$tmpdir"/sccache-v${SCCACHE_VERSION}-${triple}/sccache "$bindir/sccache" - echo "$bindir" >> "$GITHUB_PATH" - echo "Installed sccache $("$bindir/sccache" --version)" - exit 0 - fi - - cargo install --locked sccache --version "$SCCACHE_VERSION" - echo "Installed sccache $(sccache --version)" diff --git a/.github/actions/ensure-zig/action.yml b/.github/actions/ensure-zig/action.yml deleted file mode 100644 index 3355fe10f..000000000 --- a/.github/actions/ensure-zig/action.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: "ensure zig" -description: Ensure a pinned Zig binary is on PATH. - -inputs: - version: - required: true - description: Zig release version - -runs: - using: composite - steps: - - shell: bash - env: - ZIG_VERSION: ${{ inputs.version }} - run: | - set -euo pipefail - if command -v zig >/dev/null 2>&1 && [ "$(zig version)" = "$ZIG_VERSION" ]; then - echo "Using baked zig $ZIG_VERSION" - exit 0 - fi - - case "$(uname -s)-$(uname -m)" in - Linux-x86_64) archive="zig-x86_64-linux-${ZIG_VERSION}" ;; - Darwin-arm64) archive="zig-aarch64-macos-${ZIG_VERSION}" ;; - Darwin-x86_64) archive="zig-x86_64-macos-${ZIG_VERSION}" ;; - *) - echo "Unsupported zig host: $(uname -s)-$(uname -m)" >&2 - exit 1 - ;; - esac - - destdir="${HOME}/.local" - mkdir -p "$destdir" - rm -rf "${destdir:?}/${archive}" - curl -fsSL "https://ziglang.org/download/${ZIG_VERSION}/${archive}.tar.xz" -o "${destdir}/zig.tar.xz" - tar -xJf "${destdir}/zig.tar.xz" -C "$destdir" - rm -f "${destdir}/zig.tar.xz" - echo "${destdir}/${archive}" >> "$GITHUB_PATH" - echo "Installed zig $("${destdir}/${archive}/zig" version)" diff --git a/.github/actions/find-native-artifacts/action.yml b/.github/actions/find-native-artifacts/action.yml deleted file mode 100644 index 0a5de5bec..000000000 --- a/.github/actions/find-native-artifacts/action.yml +++ /dev/null @@ -1,99 +0,0 @@ -name: Find reusable native artifacts -description: Find complete trusted native artifact sets for one source hash, including canceled main runs. - -inputs: - hash: - description: Native source hash embedded in artifact names - required: true - -outputs: - linux-x64-run-id: - description: Run containing both Linux x64 variants - value: ${{ steps.find.outputs.linux-x64-run-id }} - cross-platform-run-id: - description: Run containing every cross-platform artifact - value: ${{ steps.find.outputs.cross-platform-run-id }} - validation-run-id: - description: Run containing the successful Rust validation marker - value: ${{ steps.find.outputs.validation-run-id }} - -runs: - using: composite - steps: - - name: Find complete artifact sets - id: find - shell: bash - env: - GH_TOKEN: ${{ github.token }} - REPOSITORY: ${{ github.repository }} - REPOSITORY_ID: ${{ github.repository_id }} - SOURCE_HASH: ${{ inputs.hash }} - run: | - set -euo pipefail - - artifact_run_ids() { - local artifact_name="$1" - gh api --paginate "/repos/${REPOSITORY}/actions/artifacts?name=${artifact_name}&per_page=100" \ - --jq ".artifacts[] | select(.expired == false and .workflow_run.head_branch == \"main\" and .workflow_run.head_repository_id == ${REPOSITORY_ID}) | .workflow_run.id" \ - | sort -rn | uniq - } - - find_complete_run() { - local canary="$1" - shift - local candidate names required complete - while read -r candidate; do - [ -n "$candidate" ] || continue - names="$(gh api "/repos/${REPOSITORY}/actions/runs/${candidate}/artifacts?per_page=100" \ - --jq '.artifacts[] | select(.expired == false) | .name')" - complete=true - for required in "$@"; do - if ! grep -qFx "$required" <<<"$names"; then - complete=false - break - fi - done - if $complete; then - echo "$candidate" - return 0 - fi - done < <(artifact_run_ids "$canary") - } - - linux_baseline="pi-natives-linux-x64-baseline-h${SOURCE_HASH}" - linux_modern="pi-natives-linux-x64-modern-h${SOURCE_HASH}" - cross_required=( - "pi-natives-linux-arm64-h${SOURCE_HASH}" - "pi-natives-linux-musl-x64-baseline-h${SOURCE_HASH}" - "pi-natives-linux-musl-arm64-h${SOURCE_HASH}" - "pi-natives-darwin-x64-baseline-h${SOURCE_HASH}" - "pi-natives-darwin-arm64-h${SOURCE_HASH}" - "pi-natives-win32-x64-baseline-h${SOURCE_HASH}" - ) - validation_marker="pi-natives-rust-validation-h${SOURCE_HASH}" - - linux_x64_run_id="$(find_complete_run "$linux_modern" "$linux_baseline" "$linux_modern")" - cross_platform_run_id="$(find_complete_run "${cross_required[3]}" "${cross_required[@]}")" - validation_run_id="$(find_complete_run "$validation_marker" "$validation_marker")" - - if [ -n "$linux_x64_run_id" ]; then - echo "Reusing Linux x64 native artifacts from run $linux_x64_run_id" - else - echo "No complete Linux x64 artifact set for hash $SOURCE_HASH" - fi - if [ -n "$cross_platform_run_id" ]; then - echo "Reusing cross-platform native artifacts from run $cross_platform_run_id" - else - echo "No complete cross-platform artifact set for hash $SOURCE_HASH" - fi - if [ -n "$validation_run_id" ]; then - echo "Reusing Rust validation from run $validation_run_id" - else - echo "No Rust validation marker for hash $SOURCE_HASH" - fi - - { - echo "linux-x64-run-id=$linux_x64_run_id" - echo "cross-platform-run-id=$cross_platform_run_id" - echo "validation-run-id=$validation_run_id" - } >> "$GITHUB_OUTPUT" diff --git a/.github/actions/native-source-hash/action.yml b/.github/actions/native-source-hash/action.yml deleted file mode 100644 index 4b95925cf..000000000 --- a/.github/actions/native-source-hash/action.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Compute native source hash -description: Hash every source, toolchain, and build-or-validation input that governs reusable native artifacts. - -outputs: - source-hash: - description: Stable 16-hex native source fingerprint - value: ${{ steps.compute.outputs.source-hash }} - -runs: - using: composite - steps: - - name: Compute native source hash - id: compute - shell: bash - run: | - set -euo pipefail - source_hash=$(find \ - crates \ - packages/natives/scripts \ - Cargo.toml Cargo.lock rust-toolchain.toml rustfmt.toml \ - packages/natives/package.json \ - scripts/ci-build-native.ts scripts/ci-target-cache.ts scripts/host-detect.ts scripts/run-rs-task.ts \ - .github/actions/build-native/action.yml .github/actions/native-source-hash/action.yml \ - -type f -print0 \ - | sort -z \ - | xargs -0 sha256sum \ - | sha256sum \ - | cut -c1-16) - echo "source-hash=$source_hash" >> "$GITHUB_OUTPUT" - echo "Native source hash: $source_hash" diff --git a/.github/actions/restore-linux-native/action.yml b/.github/actions/restore-linux-native/action.yml deleted file mode 100644 index 240faebb0..000000000 --- a/.github/actions/restore-linux-native/action.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Restore Linux x64 native addons -description: Restore both Linux x64 variants from the in-cluster cache or a trusted GitHub artifact run. - -inputs: - hash: - description: Native source hash embedded in artifact names - required: true - native-job-result: - description: Result of the current run's Linux x64 native matrix - required: true - cached-run-id: - description: Prior run containing both Linux x64 variants - required: false - default: "" - -runs: - using: composite - steps: - - name: Restore native addons from in-cluster cache - id: local - shell: bash - run: | - bun scripts/ci-native-artifact-cache.ts restore \ - "${{ inputs.hash }}" \ - packages/natives/native \ - "pi-natives-linux-x64-baseline-h${{ inputs.hash }}" \ - "pi-natives-linux-x64-modern-h${{ inputs.hash }}" - - - name: Resolve GitHub artifact run - if: steps.local.outputs.hit != 'true' - id: source - shell: bash - run: | - set -euo pipefail - if [ "${{ inputs.native-job-result }}" = "success" ]; then - run_id="${{ github.run_id }}" - else - run_id="${{ inputs.cached-run-id }}" - fi - if [ -z "$run_id" ]; then - echo "No Linux x64 native artifact source is available" >&2 - exit 1 - fi - echo "run-id=$run_id" >> "$GITHUB_OUTPUT" - - - name: Download native addons from GitHub - if: steps.local.outputs.hit != 'true' - uses: actions/download-artifact@v4 - with: - pattern: pi-natives-linux-x64-*-h${{ inputs.hash }} - path: packages/natives/native - merge-multiple: true - run-id: ${{ steps.source.outputs.run-id }} - github-token: ${{ github.token }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b50509fa2..6fb022820 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,10 +5,32 @@ on: branches: [main] paths: - "packages/**" + - "crates/**" + - "scripts/**" + - "bazel/**" + - "MODULE.bazel" + - "BUILD.bazel" + - ".bazelrc" + - ".bazelversion" + - "Cargo.toml" + - "Cargo.lock" + - "Cargo.Bazel.lock" + - ".github/**" pull_request: branches: [main] paths: - "packages/**" + - "crates/**" + - "scripts/**" + - "bazel/**" + - "MODULE.bazel" + - "BUILD.bazel" + - ".bazelrc" + - ".bazelversion" + - "Cargo.toml" + - "Cargo.lock" + - "Cargo.Bazel.lock" + - ".github/**" workflow_dispatch: inputs: skip_npm: @@ -30,14 +52,9 @@ concurrency: env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - # audiopus_sys bundles an opus tree whose CMakeLists declares a - # cmake_minimum_required below 3.5; CMake 4.x refuses to configure it - # without this override (macOS runner images ship CMake 4). - CMAKE_POLICY_VERSION_MINIMUM: "3.5" permissions: contents: read - actions: read jobs: # scripts/release.ts pushes the version-bump commit and its `v*` tag @@ -90,33 +107,6 @@ jobs: echo "release-tag=$release_tag" } >> "$GITHUB_OUTPUT" - # Compute one native source hash, then validate complete artifact sets from - # any trusted main-branch run. Run conclusion is deliberately irrelevant: - # an upload proves that build step completed before a later job failed or a - # newer push canceled the workflow. - # - # Linux x64, the full cross-platform matrix, and Rust validation are tracked - # independently. Consumers either use a complete prior set or build the - # missing set in this run; no single canary can hide a partial matrix. - native_artifact_lookup: - name: Look up cached native artifacts - runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} - outputs: - source-hash: ${{ steps.compute.outputs.source-hash }} - linux-x64-run-id: ${{ steps.find.outputs.linux-x64-run-id }} - cross-platform-run-id: ${{ steps.find.outputs.cross-platform-run-id }} - validation-run-id: ${{ steps.find.outputs.validation-run-id }} - steps: - - uses: actions/checkout@v4 - - name: Compute native source hash - id: compute - uses: ./.github/actions/native-source-hash - - name: Find trusted reusable artifacts - id: find - uses: ./.github/actions/find-native-artifacts - with: - hash: ${{ steps.compute.outputs.source-hash }} - check: name: Lint, type check & web build runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} @@ -128,121 +118,58 @@ jobs: - name: Build collab web run: bun run collab:web:build - rust_validation: - name: Validate Rust workspace - needs: [native_artifact_lookup] - if: ${{ needs.native_artifact_lookup.outputs.validation-run-id == '' }} + # Bazel validation and cache warm — replaces the old cargo pipeline + # (rust_validation + native build matrices + hand-rolled artifact caching). + # `bazel test` covers the Rust suite, the clippy/rustfmt aspect configs cover + # linting, and on main pushes (omp-kata, read-write cache) an additional + # //:natives-linux-all build populates the shared bazel-remote cache so every + # downstream job — TS tests, releases, PR runners — gets cache hits instead + # of rebuilding. No toolchain setup: bazelisk is on the GitHub images and + # baked into the kata runner image; bazel fetches the rest hermetically. + rust: + name: Validate Rust workspace (bazel) runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/build-native + - uses: ./.github/actions/bun-install + - id: cache + uses: ./.github/actions/bazel-cache with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - platform: linux - arch: x64 - variant: baseline - rust_checks: "true" - skip_build: "true" - cache_scope: validation - save_cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} - - name: Create validation marker - shell: bash - run: echo "${{ needs.native_artifact_lookup.outputs.source-hash }}" > "$RUNNER_TEMP/rust-validation" - - name: Upload validation marker - uses: actions/upload-artifact@v4 - with: - name: pi-natives-rust-validation-h${{ needs.native_artifact_lookup.outputs.source-hash }} - path: ${{ runner.temp }}/rust-validation - retention-days: 90 - - # Linux x64 baseline + modern supply the TS and install jobs. Rust validation - # is a separate parallel job, so both matrix entries are build-only. - native_linux_x64: - name: "Native: Linux x64 (${{ matrix.variant }})" - needs: [native_artifact_lookup] - if: ${{ needs.native_artifact_lookup.outputs.linux-x64-run-id == '' }} - runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} - strategy: - fail-fast: false - matrix: - variant: [baseline, modern] - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/build-native - with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - platform: linux - arch: x64 - variant: ${{ matrix.variant }} - skip_validation: "true" - save_cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} - - # Cross-platform builds stay in this workflow only as a release fallback. - # Successful main CI runs launch the non-blocking native-prewarm workflow. - native_cross_platform_kata: - name: "Native: ${{ matrix.platform }} ${{ matrix.libc || '' }} ${{ matrix.arch }}" - needs: [release_metadata, native_artifact_lookup] - if: ${{ needs.release_metadata.outputs.is-release == 'true' && needs.native_artifact_lookup.outputs.cross-platform-run-id == '' }} - strategy: - fail-fast: false - matrix: - include: - - { os: omp-kata, platform: linux, arch: arm64, target: aarch64-unknown-linux-gnu } - - { os: omp-kata, platform: linux, libc: musl, arch: x64, target: x86_64-unknown-linux-musl, variant: baseline } - - { os: omp-kata, platform: linux, libc: musl, arch: arm64, target: aarch64-unknown-linux-musl } - - { os: omp-kata, platform: win32, arch: x64, target: x86_64-pc-windows-msvc, variant: baseline } - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/build-native - with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - platform: ${{ matrix.platform }} - arch: ${{ matrix.arch }} - libc: ${{ matrix.libc }} - variant: ${{ matrix.variant }} - target: ${{ matrix.target }} - skip_validation: "true" - save_cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} - - native_cross_platform_macos: - name: "Native: ${{ matrix.platform }} ${{ matrix.arch }}" - needs: [release_metadata, native_artifact_lookup] - if: ${{ needs.release_metadata.outputs.is-release == 'true' && needs.native_artifact_lookup.outputs.cross-platform-run-id == '' }} - strategy: - fail-fast: false - matrix: - include: - - { os: macos-14, platform: darwin, arch: x64, target: x86_64-apple-darwin, variant: baseline } - - { os: macos-14, platform: darwin, arch: arm64 } - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/build-native - with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - platform: ${{ matrix.platform }} - arch: ${{ matrix.arch }} - variant: ${{ matrix.variant }} - target: ${{ matrix.target }} - skip_validation: "true" - save_cache: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} + scope: validation + - name: Rust tests + run: bazelisk --bazelrc="${{ steps.cache.outputs.rc }}" test //crates/... + # Clippy scope mirrors `cargo clippy --workspace` (libraries only, no + # test targets) plus the strict/default split: crates with + # `[lints] workspace = true` get the workspace policy, the vendored + # brush fork is exempt (same as run-rs-task.ts's cargo excludes). + - name: Clippy (workspace lint policy on opted-in crates) + run: | + bazelisk query "kind('rust_library|rust_shared_library', //crates/pi-ast/... + //crates/pi-iso/... + //crates/pi-natives/... + //crates/pi-shell/... + //crates/pi-walker/...)" \ + | xargs bazelisk --bazelrc="${{ steps.cache.outputs.rc }}" build --config=clippy-strict -- + - name: Clippy (default lints elsewhere) + run: | + bazelisk query "kind('rust_library|rust_shared_library', //crates/... - (//crates/pi-ast/... + //crates/pi-iso/... + //crates/pi-natives/... + //crates/pi-shell/... + //crates/pi-walker/...) - //crates/vendor/brush-core/... - //crates/vendor/brush-builtins/...)" \ + | xargs bazelisk --bazelrc="${{ steps.cache.outputs.rc }}" build --config=clippy -- + - name: Rustfmt + run: bazelisk --bazelrc="${{ steps.cache.outputs.rc }}" build --config=rustfmt //crates/... + - name: Warm native addon cache (main push) + if: github.event_name != 'pull_request' + run: bazelisk --bazelrc="${{ steps.cache.outputs.rc }}" build //:natives-linux-all test_workspace: name: Test TS workspace fast runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} - needs: [native_linux_x64, native_artifact_lookup] - if: ${{ !cancelled() && needs.native_linux_x64.result != 'failure' }} + needs: [rust] + if: ${{ !cancelled() && needs.rust.result == 'success' }} timeout-minutes: 20 steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-system-deps - uses: ./.github/actions/bun-install - - uses: ./.github/actions/restore-linux-native + - uses: ./.github/actions/bazel-natives with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - native-job-result: ${{ needs.native_linux_x64.result }} - cached-run-id: ${{ needs.native_artifact_lookup.outputs.linux-x64-run-id }} + targets: linux-x64-baseline linux-x64-modern + cache-scope: linux-x64-pair - name: Test workspace packages and repo scripts (TS) env: OMP_TEST_CONCURRENCY: "4" @@ -251,18 +178,17 @@ jobs: test_coding_agent_singleton: name: Test coding-agent singleton/global-state (TS) runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} - needs: [native_linux_x64, native_artifact_lookup] - if: ${{ !cancelled() && needs.native_linux_x64.result != 'failure' }} + needs: [rust] + if: ${{ !cancelled() && needs.rust.result == 'success' }} timeout-minutes: 20 steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-system-deps - uses: ./.github/actions/bun-install - - uses: ./.github/actions/restore-linux-native + - uses: ./.github/actions/bazel-natives with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - native-job-result: ${{ needs.native_linux_x64.result }} - cached-run-id: ${{ needs.native_artifact_lookup.outputs.linux-x64-run-id }} + targets: linux-x64-baseline linux-x64-modern + cache-scope: linux-x64-pair - name: Test coding-agent singleton/global-state bucket # Keep global Settings/env/fake-timer tests serial; native addon # artifacts are still available like every other coding-agent bucket. @@ -271,19 +197,17 @@ jobs: test_ts_native: name: Test TS native/integration packages runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} - needs: [native_linux_x64, native_artifact_lookup] - if: ${{ !cancelled() && needs.native_linux_x64.result != 'failure' }} + needs: [rust] + if: ${{ !cancelled() && needs.rust.result == 'success' }} timeout-minutes: 25 steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-system-deps - uses: ./.github/actions/bun-install - - uses: ./.github/actions/restore-linux-native + - uses: ./.github/actions/bazel-natives with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - native-job-result: ${{ needs.native_linux_x64.result }} - cached-run-id: ${{ needs.native_artifact_lookup.outputs.linux-x64-run-id }} + targets: linux-x64-baseline linux-x64-modern + cache-scope: linux-x64-pair - name: Test native/TUI/browser-ish packages (TS) env: OMP_TEST_CONCURRENCY: "4" @@ -292,19 +216,17 @@ jobs: test_coding_agent_ui: name: Test coding-agent UI/TUI (TS) runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} - needs: [native_linux_x64, native_artifact_lookup] - if: ${{ !cancelled() && needs.native_linux_x64.result != 'failure' }} + needs: [rust] + if: ${{ !cancelled() && needs.rust.result == 'success' }} timeout-minutes: 25 steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-system-deps - uses: ./.github/actions/bun-install - - uses: ./.github/actions/restore-linux-native + - uses: ./.github/actions/bazel-natives with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - native-job-result: ${{ needs.native_linux_x64.result }} - cached-run-id: ${{ needs.native_artifact_lookup.outputs.linux-x64-run-id }} + targets: linux-x64-baseline linux-x64-modern + cache-scope: linux-x64-pair - name: Test coding-agent UI/TUI bucket env: OMP_TEST_CONCURRENCY: "2" @@ -313,18 +235,17 @@ jobs: test_coding_agent_runtime: name: Test coding-agent runtime/session (TS) runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} - needs: [native_linux_x64, native_artifact_lookup] - if: ${{ !cancelled() && needs.native_linux_x64.result != 'failure' }} + needs: [rust] + if: ${{ !cancelled() && needs.rust.result == 'success' }} timeout-minutes: 25 steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-system-deps - uses: ./.github/actions/bun-install - - uses: ./.github/actions/restore-linux-native + - uses: ./.github/actions/bazel-natives with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - native-job-result: ${{ needs.native_linux_x64.result }} - cached-run-id: ${{ needs.native_artifact_lookup.outputs.linux-x64-run-id }} + targets: linux-x64-baseline linux-x64-modern + cache-scope: linux-x64-pair - name: Test coding-agent runtime bucket # Runtime/session tests import native-backed barrels too; keep this # separate for concurrency, not as a native-free guardrail. @@ -335,19 +256,17 @@ jobs: test_coding_agent_native: name: Test coding-agent native/unit (TS) runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} - needs: [native_linux_x64, native_artifact_lookup] - if: ${{ !cancelled() && needs.native_linux_x64.result != 'failure' }} + needs: [rust] + if: ${{ !cancelled() && needs.rust.result == 'success' }} timeout-minutes: 25 steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-system-deps - uses: ./.github/actions/bun-install - - uses: ./.github/actions/restore-linux-native + - uses: ./.github/actions/bazel-natives with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - native-job-result: ${{ needs.native_linux_x64.result }} - cached-run-id: ${{ needs.native_artifact_lookup.outputs.linux-x64-run-id }} + targets: linux-x64-baseline linux-x64-modern + cache-scope: linux-x64-pair - name: Test coding-agent native/unit bucket env: OMP_TEST_CONCURRENCY: "4" @@ -356,49 +275,42 @@ jobs: test_smoke: name: Test CLI smoke (TS) runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} - needs: [native_linux_x64, native_artifact_lookup] - if: ${{ !cancelled() && needs.native_linux_x64.result != 'failure' }} + needs: [rust] + if: ${{ !cancelled() && needs.rust.result == 'success' }} timeout-minutes: 15 steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-system-deps - uses: ./.github/actions/bun-install - - uses: ./.github/actions/restore-linux-native + - uses: ./.github/actions/bazel-natives with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - native-job-result: ${{ needs.native_linux_x64.result }} - cached-run-id: ${{ needs.native_artifact_lookup.outputs.linux-x64-run-id }} + targets: linux-x64-baseline linux-x64-modern + cache-scope: linux-x64-pair - name: CLI smoke test run: bun run ci:test:smoke install_methods: name: Install method smoke tests runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-22.04' || 'omp-kata' }} - needs: [native_linux_x64, native_artifact_lookup] - if: ${{ !cancelled() && needs.native_linux_x64.result != 'failure' }} + needs: [rust] + if: ${{ !cancelled() && needs.rust.result == 'success' }} steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-system-deps - uses: ./.github/actions/bun-install - - uses: ./.github/actions/restore-linux-native + - uses: ./.github/actions/bazel-natives with: - hash: ${{ needs.native_artifact_lookup.outputs.source-hash }} - native-job-result: ${{ needs.native_linux_x64.result }} - cached-run-id: ${{ needs.native_artifact_lookup.outputs.linux-x64-run-id }} + targets: linux-x64-baseline linux-x64-modern + cache-scope: linux-x64-pair - name: Install method smoke tests env: OMP_INSTALL_TEST_SKIP_NATIVE_BUILD: "1" run: bun run ci:test:install-methods - release_binary: name: "Release binary: ${{ matrix.target_id }}" if: ${{ needs.release_metadata.outputs.is-release == 'true' && !cancelled() && - needs.rust_validation.result != 'failure' && - needs.native_linux_x64.result != 'failure' && - needs.native_cross_platform_kata.result != 'failure' && - needs.native_cross_platform_macos.result != 'failure' && + needs.rust.result == 'success' && needs.test_workspace.result == 'success' && needs.test_coding_agent_singleton.result == 'success' && needs.test_ts_native.result == 'success' && @@ -407,7 +319,7 @@ jobs: needs.test_coding_agent_native.result == 'success' && needs.test_smoke.result == 'success' && needs.check.result == 'success' && needs.install_methods.result == 'success' }} - needs: [release_metadata, check, rust_validation, native_linux_x64, native_cross_platform_kata, native_cross_platform_macos, test_workspace, test_coding_agent_singleton, test_ts_native, test_coding_agent_ui, test_coding_agent_runtime, test_coding_agent_native, test_smoke, install_methods, native_artifact_lookup] + needs: [release_metadata, check, rust, test_workspace, test_coding_agent_singleton, test_ts_native, test_coding_agent_ui, test_coding_agent_runtime, test_coding_agent_native, test_smoke, install_methods] strategy: fail-fast: false matrix: @@ -418,7 +330,7 @@ jobs: arch: x64, target_id: linux-x64, binary_path: packages/coding-agent/binaries/omp-linux-x64, - native_artifact_pattern: pi-natives-linux-x64-*, + native_targets: linux-x64-baseline linux-x64-modern, } - { os: ubuntu-22.04, @@ -427,7 +339,7 @@ jobs: arch: x64, target_id: linux-musl-x64, binary_path: packages/coding-agent/binaries/omp-linux-musl-x64, - native_artifact_pattern: pi-natives-linux-musl-x64-*, + native_targets: linux-musl-x64-baseline, } - { os: ubuntu-24.04-arm, @@ -435,7 +347,7 @@ jobs: arch: arm64, target_id: linux-arm64, binary_path: packages/coding-agent/binaries/omp-linux-arm64, - native_artifact_pattern: pi-natives-linux-arm64*, + native_targets: linux-arm64, } - { os: ubuntu-24.04-arm, @@ -444,7 +356,7 @@ jobs: arch: arm64, target_id: linux-musl-arm64, binary_path: packages/coding-agent/binaries/omp-linux-musl-arm64, - native_artifact_pattern: pi-natives-linux-musl-arm64*, + native_targets: linux-musl-arm64, } - { os: macos-15-intel, @@ -452,7 +364,7 @@ jobs: arch: x64, target_id: darwin-x64, binary_path: packages/coding-agent/binaries/omp-darwin-x64, - native_artifact_pattern: pi-natives-darwin-x64*, + native_targets: darwin-all, } - { os: macos-14, @@ -460,7 +372,7 @@ jobs: arch: arm64, target_id: darwin-arm64, binary_path: packages/coding-agent/binaries/omp-darwin-arm64, - native_artifact_pattern: pi-natives-darwin-arm64*, + native_targets: darwin-all, } - { os: ubuntu-22.04, @@ -468,12 +380,11 @@ jobs: arch: x64, target_id: win32-x64, binary_path: packages/coding-agent/binaries/omp-windows-x64.exe, - native_artifact_pattern: pi-natives-win32-x64*, + native_targets: win32-x64-baseline, } runs-on: ${{ matrix.os }} permissions: contents: read - actions: read id-token: write env: MACOS_SIGNING: ${{ secrets.APPLE_CERTIFICATE_P12 != '' && secrets.APPLE_CERTIFICATE_PASSWORD != '' && secrets.APPLE_API_KEY_ID != '' && secrets.APPLE_API_ISSUER_ID != '' && secrets.APPLE_API_KEY != '' }} @@ -482,9 +393,6 @@ jobs: - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: bun-version: "1.3" - env: - SCCACHE_BUCKET: "" - AWS_ACCESS_KEY_ID: "" - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: "24" @@ -500,36 +408,14 @@ jobs: path: ~/.bun/install/cache key: bun-${{ runner.os }}-${{ hashFiles('**/bun.lock') }} - run: bun install --frozen-lockfile - - name: Resolve native artifact run - id: native-source - shell: bash - run: | - set -euo pipefail - if [ "${{ matrix.target_id }}" = "linux-x64" ]; then - if [ "${{ needs.native_linux_x64.result }}" = "success" ]; then - run_id="${{ github.run_id }}" - else - run_id="${{ needs.native_artifact_lookup.outputs.linux-x64-run-id }}" - fi - elif [ "${{ needs.native_cross_platform_kata.result }}" = "success" ] || \ - [ "${{ needs.native_cross_platform_macos.result }}" = "success" ]; then - run_id="${{ github.run_id }}" - else - run_id="${{ needs.native_artifact_lookup.outputs.cross-platform-run-id }}" - fi - if [ -z "$run_id" ]; then - echo "No native artifact run for ${{ matrix.target_id }}" >&2 - exit 1 - fi - echo "run-id=$run_id" >> "$GITHUB_OUTPUT" - - name: Download native addon(s) - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + # Release runners are GitHub-hosted and never touch the private + # cluster cache: they build with the actions/cache-backed disk cache, + # so repeat releases with unchanged Rust are mostly local cache hits. + - name: Build native addon(s) (bazel) + uses: ./.github/actions/bazel-natives with: - pattern: ${{ matrix.native_artifact_pattern }}-h${{ needs.native_artifact_lookup.outputs.source-hash }} - path: packages/natives/native - merge-multiple: true - run-id: ${{ steps.native-source.outputs.run-id }} - github-token: ${{ github.token }} + targets: ${{ matrix.native_targets }} + cache-scope: release-${{ matrix.target_id }} - name: Build release binary env: RELEASE_TARGETS: ${{ matrix.target_id }} @@ -548,8 +434,7 @@ jobs: APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }} run: bash scripts/ci-macos-sign.sh "${{ matrix.binary_path }}" # Windows binary is cross-built on Linux, so we have no Windows runner - # to smoke it on. Cross-build correctness is verified via the napi - # entry-point exports (see build-native action) and the bun + # to smoke it on. Cross-build correctness is verified via the bun # `--compile --target=bun-windows-x64-*` cross-compile. Musl binaries # need the musl loader, which glibc runners lack — they are smoked in # the Alpine container step below instead. @@ -622,7 +507,6 @@ jobs: body_path: release-notes.md generate_release_notes: true - release_github_verify: name: Verify published release (macOS) if: ${{ needs.release_metadata.outputs.is-release == 'true' && !cancelled() && @@ -663,7 +547,7 @@ jobs: needs.release_binary.result == 'success' && needs.release_github_verify.result == 'success' && !inputs.skip_npm }} - needs: [release_metadata, release_binary, release_github_verify, native_linux_x64, native_artifact_lookup] + needs: [release_metadata, release_binary, release_github_verify] runs-on: ubuntu-22.04 # `id-token: write` lets npm mint the GitHub OIDC token it exchanges for a # short-lived publish token (trusted publishing + provenance). When a @@ -672,7 +556,6 @@ jobs: permissions: id-token: write contents: read - actions: read steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 @@ -695,23 +578,11 @@ jobs: # The pi-coding-agent prepack executes workspace code (bundle-dist # imports the pi-utils barrel, which loads the pi-natives addon), so # this job needs the Linux x64 native addons just like TS tests do. - - name: Resolve Linux x64 native artifact run - id: native-source - shell: bash - run: | - if [ "${{ needs.native_linux_x64.result }}" = "success" ]; then - echo "run-id=${{ github.run_id }}" >> "$GITHUB_OUTPUT" - else - echo "run-id=${{ needs.native_artifact_lookup.outputs.linux-x64-run-id }}" >> "$GITHUB_OUTPUT" - fi - - name: Download native addons - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - name: Build native addons (bazel) + uses: ./.github/actions/bazel-natives with: - pattern: pi-natives-linux-x64-*-h${{ needs.native_artifact_lookup.outputs.source-hash }} - path: packages/natives/native - merge-multiple: true - run-id: ${{ steps.native-source.outputs.run-id }} - github-token: ${{ github.token }} + targets: linux-x64-baseline linux-x64-modern + cache-scope: linux-x64-pair - name: Publish to npm env: # Fallback auth: setup-node wrote an .npmrc referencing diff --git a/.github/workflows/native-prewarm.yml b/.github/workflows/native-prewarm.yml deleted file mode 100644 index 0e20c7a33..000000000 --- a/.github/workflows/native-prewarm.yml +++ /dev/null @@ -1,90 +0,0 @@ -name: Native prewarm - -on: - workflow_run: - workflows: [CI] - types: [completed] - workflow_dispatch: -# Prewarming must never extend the required CI workflow. Keep one warmup running -# to completion so it publishes the target snapshot; GitHub coalesces newer -# pending runs in this concurrency group. -concurrency: - group: native-prewarm-main - cancel-in-progress: false - -permissions: - actions: read - contents: read - -jobs: - lookup: - name: Look up cross-platform artifacts - if: ${{ github.event_name == 'workflow_dispatch' || (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'main') }} - runs-on: omp-kata - outputs: - source-hash: ${{ steps.compute.outputs.source-hash }} - cross-platform-run-id: ${{ steps.find.outputs.cross-platform-run-id }} - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.workflow_run.head_sha || github.sha }} - - id: compute - uses: ./.github/actions/native-source-hash - - id: find - uses: ./.github/actions/find-native-artifacts - with: - hash: ${{ steps.compute.outputs.source-hash }} - - cross_platform_kata: - name: "Prewarm native: ${{ matrix.platform }} ${{ matrix.libc || '' }} ${{ matrix.arch }}" - needs: [lookup] - if: ${{ needs.lookup.outputs.cross-platform-run-id == '' }} - strategy: - fail-fast: false - max-parallel: 2 - matrix: - include: - - { platform: linux, arch: arm64, target: aarch64-unknown-linux-gnu } - - { platform: linux, libc: musl, arch: x64, target: x86_64-unknown-linux-musl, variant: baseline } - - { platform: linux, libc: musl, arch: arm64, target: aarch64-unknown-linux-musl } - - { platform: win32, arch: x64, target: x86_64-pc-windows-msvc, variant: baseline } - runs-on: omp-kata - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.workflow_run.head_sha || github.sha }} - - uses: ./.github/actions/build-native - with: - hash: ${{ needs.lookup.outputs.source-hash }} - platform: ${{ matrix.platform }} - libc: ${{ matrix.libc }} - arch: ${{ matrix.arch }} - variant: ${{ matrix.variant }} - target: ${{ matrix.target }} - skip_validation: "true" - save_cache: "true" - - cross_platform_macos: - name: "Prewarm native: darwin ${{ matrix.arch }}" - needs: [lookup] - if: ${{ needs.lookup.outputs.cross-platform-run-id == '' }} - strategy: - fail-fast: false - matrix: - include: - - { os: macos-14, arch: x64, target: x86_64-apple-darwin, variant: baseline } - - { os: macos-14, arch: arm64 } - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.workflow_run.head_sha || github.sha }} - - uses: ./.github/actions/build-native - with: - hash: ${{ needs.lookup.outputs.source-hash }} - platform: darwin - arch: ${{ matrix.arch }} - variant: ${{ matrix.variant }} - target: ${{ matrix.target }} - skip_validation: "true" - save_cache: "true" diff --git a/.gitignore b/.gitignore index d398f2a9e..c9968f970 100644 --- a/.gitignore +++ b/.gitignore @@ -78,3 +78,10 @@ python/robomp/.env # Local, machine-specific boot perf baseline (see packages/coding-agent/scripts/bench-guard.ts) packages/coding-agent/bench/boot-baseline.json + +# Bazel +/bazel-bin +/bazel-out +/bazel-testlogs +/bazel-pi +/.bazelrc.user diff --git a/BUILD.bazel b/BUILD.bazel new file mode 100644 index 000000000..569d41f70 --- /dev/null +++ b/BUILD.bazel @@ -0,0 +1,58 @@ +# Shipping pi_natives addons, one per (platform, arch, ISA-variant). +# `bazel build //:natives-` yields the canonically named .node file; +# packages/natives/scripts/build-native.ts copies it into packages/natives/native/. +# Note: musl addons intentionally reuse the plain linux- filenames — the +# loader never sees gnu and musl side by side; release jobs keep them apart. + +load("//bazel:defs.bzl", "native_addon") + +package(default_visibility = ["//visibility:public"]) + +exports_files([ + "Cargo.toml", + "Cargo.lock", + "Cargo.Bazel.lock", + "rustfmt.toml", +]) +_ADDONS = { + "linux-x64-baseline": ("//bazel/platforms:linux-x64-baseline", "pi_natives.linux-x64-baseline.node"), + "linux-x64-modern": ("//bazel/platforms:linux-x64-modern", "pi_natives.linux-x64-modern.node"), + "linux-arm64": ("//bazel/platforms:linux-arm64", "pi_natives.linux-arm64.node"), + "linux-musl-x64-baseline": ("//bazel/platforms:linux-musl-x64-baseline", "pi_natives.linux-x64-baseline.node"), + "linux-musl-arm64": ("//bazel/platforms:linux-musl-arm64", "pi_natives.linux-arm64.node"), + "darwin-x64-baseline": ("//bazel/platforms:darwin-x64-baseline", "pi_natives.darwin-x64-baseline.node"), + "darwin-arm64": ("//bazel/platforms:darwin-arm64", "pi_natives.darwin-arm64.node"), + "win32-x64-baseline": ("//bazel/platforms:win32-x64-baseline", "pi_natives.win32-x64-baseline.node"), +} + +[ + native_addon( + name = "natives-" + target, + lib = "//crates/pi-natives:pi_natives", + out = out, + platform = platform, + ) + for target, (platform, out) in _ADDONS.items() +] + +# Every addon buildable from a linux-x64 host (the omp-kata pods): all linux +# targets plus the msvc cross build. darwin addons build on mac hosts. +filegroup( + name = "natives-linux-all", + srcs = [ + ":natives-linux-arm64", + ":natives-linux-musl-arm64", + ":natives-linux-musl-x64-baseline", + ":natives-linux-x64-baseline", + ":natives-linux-x64-modern", + ":natives-win32-x64-baseline", + ], +) + +filegroup( + name = "natives-darwin-all", + srcs = [ + ":natives-darwin-arm64", + ":natives-darwin-x64-baseline", + ], +) diff --git a/Cargo.Bazel.lock b/Cargo.Bazel.lock new file mode 100644 index 000000000..4361bacd6 --- /dev/null +++ b/Cargo.Bazel.lock @@ -0,0 +1,61561 @@ +{ + "checksum": "b2d729129cedf0e3bcba62a4b2b7df6000355c2c3cc3ea9d10fc3670cd22ed81", + "crates": { + "adler2 2.0.1": { + "name": "adler2", + "version": "2.0.1", + "package_url": "https://github.com/oyvindln/adler2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/adler2/2.0.1/download", + "sha256": "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + } + }, + "targets": [ + { + "Library": { + "crate_name": "adler2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "adler2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "2.0.1" + }, + "license": "0BSD OR MIT OR Apache-2.0", + "license_ids": [ + "0BSD", + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-0BSD" + }, + "aead 0.5.2": { + "name": "aead", + "version": "0.5.2", + "package_url": "https://github.com/RustCrypto/traits", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/aead/0.5.2/download", + "sha256": "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "aead", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "aead", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "getrandom", + "rand_core", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "crypto-common 0.1.7", + "target": "crypto_common" + }, + { + "id": "generic-array 0.14.7", + "target": "generic_array" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "aes 0.8.4": { + "name": "aes", + "version": "0.8.4", + "package_url": "https://github.com/RustCrypto/block-ciphers", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/aes/0.8.4/download", + "sha256": "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "aes", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "aes", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "cipher 0.4.4", + "target": "cipher" + } + ], + "selects": { + "cfg(any(target_arch = \"aarch64\", target_arch = \"x86_64\", target_arch = \"x86\"))": [ + { + "id": "cpufeatures 0.2.17", + "target": "cpufeatures" + } + ] + } + }, + "edition": "2021", + "version": "0.8.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "aes-gcm 0.10.3": { + "name": "aes-gcm", + "version": "0.10.3", + "package_url": "https://github.com/RustCrypto/AEADs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/aes-gcm/0.10.3/download", + "sha256": "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "aes_gcm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "aes_gcm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "aes", + "alloc", + "default", + "getrandom", + "rand_core", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "aead 0.5.2", + "target": "aead" + }, + { + "id": "aes 0.8.4", + "target": "aes" + }, + { + "id": "cipher 0.4.4", + "target": "cipher" + }, + { + "id": "ctr 0.9.2", + "target": "ctr" + }, + { + "id": "ghash 0.5.1", + "target": "ghash" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.10.3" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ahash 0.8.12": { + "name": "ahash", + "version": "0.8.12", + "package_url": "https://github.com/tkaitchuck/ahash", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ahash/0.8.12/download", + "sha256": "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ahash", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ahash", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "compile-time-rng", + "const-random", + "default", + "getrandom", + "runtime-rng", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "ahash 0.8.12", + "target": "build_script_build" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "const-random 0.1.18", + "target": "const_random" + }, + { + "id": "getrandom 0.3.4", + "target": "getrandom" + }, + { + "id": "zerocopy 0.8.55", + "target": "zerocopy" + } + ], + "selects": { + "cfg(not(all(target_arch = \"arm\", target_os = \"none\")))": [ + { + "id": "once_cell 1.21.4", + "target": "once_cell" + } + ] + } + }, + "edition": "2018", + "version": "0.8.12" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "version_check 0.9.5", + "target": "version_check" + } + ], + "selects": {} + } + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "aho-corasick 1.1.4": { + "name": "aho-corasick", + "version": "1.1.4", + "package_url": "https://github.com/BurntSushi/aho-corasick", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/aho-corasick/1.1.4/download", + "sha256": "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" + } + }, + "targets": [ + { + "Library": { + "crate_name": "aho_corasick", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "aho_corasick", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "perf-literal", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "memchr 2.8.3", + "target": "memchr" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.1.4" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "allocator-api2 0.2.21": { + "name": "allocator-api2", + "version": "0.2.21", + "package_url": "https://github.com/zakarumych/allocator-api2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/allocator-api2/0.2.21/download", + "sha256": "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + } + }, + "targets": [ + { + "Library": { + "crate_name": "allocator_api2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "allocator_api2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.21" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "android_system_properties 0.1.5": { + "name": "android_system_properties", + "version": "0.1.5", + "package_url": "https://github.com/nical/android_system_properties", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/android_system_properties/0.1.5/download", + "sha256": "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" + } + }, + "targets": [ + { + "Library": { + "crate_name": "android_system_properties", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "android_system_properties", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.5" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "annotate-snippets 0.11.5": { + "name": "annotate-snippets", + "version": "0.11.5", + "package_url": "https://github.com/rust-lang/annotate-snippets-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/annotate-snippets/0.11.5/download", + "sha256": "710e8eae58854cdc1790fcb56cca04d712a17be849eeb81da2a724bf4bae2bc4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "annotate_snippets", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "annotate_snippets", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "anstyle 1.0.14", + "target": "anstyle" + }, + { + "id": "unicode-width 0.2.2", + "target": "unicode_width" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.11.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ansi-width 0.1.0": { + "name": "ansi-width", + "version": "0.1.0", + "package_url": null, + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ansi-width/0.1.0/download", + "sha256": "219e3ce6f2611d83b51ec2098a12702112c29e57203a6b0a0929b2cddb486608" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ansi_width", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ansi_width", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "unicode-width 0.1.14", + "target": "unicode_width" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "anstream 1.0.0": { + "name": "anstream", + "version": "1.0.0", + "package_url": "https://github.com/rust-cli/anstyle.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/anstream/1.0.0/download", + "sha256": "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "anstream", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "anstream", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "auto", + "default", + "wincon" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "anstyle 1.0.14", + "target": "anstyle" + }, + { + "id": "anstyle-parse 1.0.0", + "target": "anstyle_parse" + }, + { + "id": "anstyle-query 1.1.5", + "target": "anstyle_query" + }, + { + "id": "colorchoice 1.0.5", + "target": "colorchoice" + }, + { + "id": "is_terminal_polyfill 1.70.2", + "target": "is_terminal_polyfill" + }, + { + "id": "utf8parse 0.2.2", + "target": "utf8parse" + } + ], + "selects": { + "x86_64-pc-windows-msvc": [ + { + "id": "anstyle-wincon 3.0.11", + "target": "anstyle_wincon" + } + ] + } + }, + "edition": "2021", + "version": "1.0.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "anstyle 1.0.14": { + "name": "anstyle", + "version": "1.0.14", + "package_url": "https://github.com/rust-cli/anstyle.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/anstyle/1.0.14/download", + "sha256": "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + } + }, + "targets": [ + { + "Library": { + "crate_name": "anstyle", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "anstyle", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.14" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "anstyle-parse 1.0.0": { + "name": "anstyle-parse", + "version": "1.0.0", + "package_url": "https://github.com/rust-cli/anstyle.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/anstyle-parse/1.0.0/download", + "sha256": "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "anstyle_parse", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "anstyle_parse", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "utf8" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "utf8parse 0.2.2", + "target": "utf8parse" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "anstyle-query 1.1.5": { + "name": "anstyle-query", + "version": "1.1.5", + "package_url": "https://github.com/rust-cli/anstyle.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/anstyle-query/1.1.5/download", + "sha256": "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" + } + }, + "targets": [ + { + "Library": { + "crate_name": "anstyle_query", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "anstyle_query", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "1.1.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "anstyle-wincon 3.0.11": { + "name": "anstyle-wincon", + "version": "3.0.11", + "package_url": "https://github.com/rust-cli/anstyle.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/anstyle-wincon/3.0.11/download", + "sha256": "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "anstyle_wincon", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "anstyle_wincon", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "anstyle 1.0.14", + "target": "anstyle" + } + ], + "selects": { + "cfg(windows)": [ + { + "id": "once_cell_polyfill 1.70.2", + "target": "once_cell_polyfill" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "3.0.11" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "anyhow 1.0.104": { + "name": "anyhow", + "version": "1.0.104", + "package_url": "https://github.com/dtolnay/anyhow", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/anyhow/1.0.104/download", + "sha256": "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + } + }, + "targets": [ + { + "Library": { + "crate_name": "anyhow", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "anyhow", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "anyhow 1.0.104", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.104" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "arboard 3.6.1": { + "name": "arboard", + "version": "3.6.1", + "package_url": "https://github.com/1Password/arboard", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/arboard/3.6.1/download", + "sha256": "0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf" + } + }, + "targets": [ + { + "Library": { + "crate_name": "arboard", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "arboard", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "core-graphics", + "default", + "image", + "image-data", + "wayland-data-control", + "windows-sys", + "wl-clipboard-rs" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "image 0.25.10", + "target": "image" + } + ], + "selects": { + "aarch64-apple-darwin": [ + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + }, + { + "id": "objc2-core-graphics 0.3.2", + "target": "objc2_core_graphics" + } + ], + "aarch64-unknown-linux-gnu": [ + { + "id": "wl-clipboard-rs 0.9.3", + "target": "wl_clipboard_rs" + } + ], + "aarch64-unknown-linux-musl": [ + { + "id": "wl-clipboard-rs 0.9.3", + "target": "wl_clipboard_rs" + } + ], + "cfg(all(unix, not(any(target_os = \"macos\", target_os = \"android\", target_os = \"emscripten\"))))": [ + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "percent-encoding 2.3.2", + "target": "percent_encoding" + }, + { + "id": "x11rb 0.13.2", + "target": "x11rb" + } + ], + "cfg(target_os = \"macos\")": [ + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-app-kit 0.3.2", + "target": "objc2_app_kit" + }, + { + "id": "objc2-foundation 0.3.2", + "target": "objc2_foundation" + } + ], + "cfg(windows)": [ + { + "id": "clipboard-win 5.4.1", + "target": "clipboard_win" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "windows-sys 0.60.2", + "target": "windows_sys" + } + ], + "x86_64-apple-darwin": [ + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + }, + { + "id": "objc2-core-graphics 0.3.2", + "target": "objc2_core_graphics" + } + ], + "x86_64-unknown-linux-gnu": [ + { + "id": "wl-clipboard-rs 0.9.3", + "target": "wl_clipboard_rs" + } + ], + "x86_64-unknown-linux-musl": [ + { + "id": "wl-clipboard-rs 0.9.3", + "target": "wl_clipboard_rs" + } + ] + } + }, + "edition": "2021", + "version": "3.6.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE.txt" + }, + "arc-swap 1.9.2": { + "name": "arc-swap", + "version": "1.9.2", + "package_url": "https://github.com/vorner/arc-swap", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/arc-swap/1.9.2/download", + "sha256": "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "arc_swap", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "arc_swap", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "rustversion 1.0.23", + "target": "rustversion" + } + ], + "selects": {} + }, + "version": "1.9.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "archery 1.2.2": { + "name": "archery", + "version": "1.2.2", + "package_url": "https://github.com/orium/archery", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/archery/1.2.2/download", + "sha256": "70e0a5f99dfebb87bb342d0f53bb92c81842e100bbb915223e38349580e5441d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "archery", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "archery", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "triomphe" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "triomphe 0.1.16", + "target": "triomphe" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "1.2.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.md" + }, + "argmax 0.3.1": { + "name": "argmax", + "version": "0.3.1", + "package_url": "https://github.com/sharkdp/argmax", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/argmax/0.3.1/download", + "sha256": "5b7e3ef5e3a7f2c5e5a49d90ad087c03d38258e75155daac64deb62c50972c66" + } + }, + "targets": [ + { + "Library": { + "crate_name": "argmax", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "argmax", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "lazy_static 1.5.0", + "target": "lazy_static" + }, + { + "id": "nix 0.24.3", + "target": "nix" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2018", + "version": "0.3.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "arrayref 0.3.9": { + "name": "arrayref", + "version": "0.3.9", + "package_url": "https://github.com/droundy/arrayref", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/arrayref/0.3.9/download", + "sha256": "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "arrayref", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "arrayref", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "0.3.9" + }, + "license": "BSD-2-Clause", + "license_ids": [ + "BSD-2-Clause" + ], + "license_file": "LICENSE" + }, + "arrayvec 0.7.8": { + "name": "arrayvec", + "version": "0.7.8", + "package_url": "https://github.com/bluss/arrayvec", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/arrayvec/0.7.8/download", + "sha256": "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + } + }, + "targets": [ + { + "Library": { + "crate_name": "arrayvec", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "arrayvec", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.7.8" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "asn1-rs 0.6.2": { + "name": "asn1-rs", + "version": "0.6.2", + "package_url": "https://github.com/rusticata/asn1-rs.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/asn1-rs/0.6.2/download", + "sha256": "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" + } + }, + "targets": [ + { + "Library": { + "crate_name": "asn1_rs", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "asn1_rs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "datetime", + "default", + "std", + "time" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "nom 7.1.3", + "target": "nom" + }, + { + "id": "num-traits 0.2.19", + "target": "num_traits" + }, + { + "id": "rusticata-macros 4.1.0", + "target": "rusticata_macros" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "time 0.3.54", + "target": "time" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "asn1-rs-derive 0.5.1", + "target": "asn1_rs_derive" + }, + { + "id": "asn1-rs-impl 0.2.0", + "target": "asn1_rs_impl" + }, + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "0.6.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "asn1-rs-derive 0.5.1": { + "name": "asn1-rs-derive", + "version": "0.5.1", + "package_url": "https://github.com/rusticata/asn1-rs.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/asn1-rs-derive/0.5.1/download", + "sha256": "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "asn1_rs_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "asn1_rs_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + }, + { + "id": "synstructure 0.13.2", + "target": "synstructure" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.5.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "asn1-rs-impl 0.2.0": { + "name": "asn1-rs-impl", + "version": "0.2.0", + "package_url": "https://github.com/rusticata/asn1-rs.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/asn1-rs-impl/0.2.0/download", + "sha256": "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "asn1_rs_impl", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "asn1_rs_impl", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.0" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "ast-grep-core 0.39.9": { + "name": "ast-grep-core", + "version": "0.39.9", + "package_url": "https://github.com/ast-grep/ast-grep", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ast-grep-core/0.39.9/download", + "sha256": "057ae90e7256ebf85f840b1638268df0142c9d19467d500b790631fd301acc27" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ast_grep_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ast_grep_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "tree-sitter" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bit-set 0.8.0", + "target": "bit_set" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "tree-sitter 0.25.10", + "target": "tree_sitter" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.39.9" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "astral-tl 0.7.11": { + "name": "astral-tl", + "version": "0.7.11", + "package_url": "https://github.com/astral-sh/astral-tl", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/astral-tl/0.7.11/download", + "sha256": "d90933ffb0f97e2fc2e0de21da9d3f20597b804012d199843a6fe7c2810d28f3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tl", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tl", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "memchr 2.8.3", + "target": "memchr" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.11" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "async-broadcast 0.7.2": { + "name": "async-broadcast", + "version": "0.7.2", + "package_url": "https://github.com/smol-rs/async-broadcast", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/async-broadcast/0.7.2/download", + "sha256": "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" + } + }, + "targets": [ + { + "Library": { + "crate_name": "async_broadcast", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "async_broadcast", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "event-listener 5.4.1", + "target": "event_listener" + }, + { + "id": "event-listener-strategy 0.5.4", + "target": "event_listener_strategy" + }, + { + "id": "futures-core 0.3.33", + "target": "futures_core" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "async-channel 2.5.0": { + "name": "async-channel", + "version": "2.5.0", + "package_url": "https://github.com/smol-rs/async-channel", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/async-channel/2.5.0/download", + "sha256": "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "async_channel", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "async_channel", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "concurrent-queue 2.5.0", + "target": "concurrent_queue" + }, + { + "id": "event-listener-strategy 0.5.4", + "target": "event_listener_strategy" + }, + { + "id": "futures-core 0.3.33", + "target": "futures_core" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.5.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "async-executor 1.14.0": { + "name": "async-executor", + "version": "1.14.0", + "package_url": "https://github.com/smol-rs/async-executor", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/async-executor/1.14.0/download", + "sha256": "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "async_executor", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "async_executor", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "async-task 4.7.1", + "target": "async_task" + }, + { + "id": "concurrent-queue 2.5.0", + "target": "concurrent_queue" + }, + { + "id": "fastrand 2.5.0", + "target": "fastrand" + }, + { + "id": "futures-lite 2.6.1", + "target": "futures_lite" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + }, + { + "id": "slab 0.4.12", + "target": "slab" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.14.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "async-io 2.6.0": { + "name": "async-io", + "version": "2.6.0", + "package_url": "https://github.com/smol-rs/async-io", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/async-io/2.6.0/download", + "sha256": "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" + } + }, + "targets": [ + { + "Library": { + "crate_name": "async_io", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "async_io", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "async-io 2.6.0", + "target": "build_script_build" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "concurrent-queue 2.5.0", + "target": "concurrent_queue" + }, + { + "id": "futures-io 0.3.33", + "target": "futures_io" + }, + { + "id": "futures-lite 2.6.1", + "target": "futures_lite" + }, + { + "id": "parking 2.2.1", + "target": "parking" + }, + { + "id": "polling 3.11.0", + "target": "polling" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + }, + { + "id": "slab 0.4.12", + "target": "slab" + } + ], + "selects": { + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "2.6.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "autocfg 1.5.1", + "target": "autocfg" + } + ], + "selects": {} + } + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "async-lock 3.4.2": { + "name": "async-lock", + "version": "3.4.2", + "package_url": "https://github.com/smol-rs/async-lock", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/async-lock/3.4.2/download", + "sha256": "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" + } + }, + "targets": [ + { + "Library": { + "crate_name": "async_lock", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "async_lock", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "event-listener 5.4.1", + "target": "event_listener" + }, + { + "id": "event-listener-strategy 0.5.4", + "target": "event_listener_strategy" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "3.4.2" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "async-process 2.5.0": { + "name": "async-process", + "version": "2.5.0", + "package_url": "https://github.com/smol-rs/async-process", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/async-process/2.5.0/download", + "sha256": "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" + } + }, + "targets": [ + { + "Library": { + "crate_name": "async_process", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "async_process", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "async-io 2.6.0", + "target": "async_io" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "event-listener 5.4.1", + "target": "event_listener" + }, + { + "id": "futures-lite 2.6.1", + "target": "futures_lite" + } + ], + "selects": { + "cfg(any(windows, target_os = \"linux\"))": [ + { + "id": "async-channel 2.5.0", + "target": "async_channel" + }, + { + "id": "async-task 4.7.1", + "target": "async_task" + } + ], + "cfg(unix)": [ + { + "id": "async-lock 3.4.2", + "target": "async_lock" + }, + { + "id": "async-signal 0.2.14", + "target": "async_signal" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "cfg(windows)": [ + { + "id": "blocking 1.6.2", + "target": "blocking" + } + ] + } + }, + "edition": "2021", + "version": "2.5.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "async-recursion 1.1.1": { + "name": "async-recursion", + "version": "1.1.1", + "package_url": "https://github.com/dcchut/async-recursion", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/async-recursion/1.1.1/download", + "sha256": "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "async_recursion", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "async_recursion", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.1.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "async-signal 0.2.14": { + "name": "async-signal", + "version": "0.2.14", + "package_url": "https://github.com/smol-rs/async-signal", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/async-signal/0.2.14/download", + "sha256": "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" + } + }, + "targets": [ + { + "Library": { + "crate_name": "async_signal", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "async_signal", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "futures-core 0.3.33", + "target": "futures_core" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "async-io 2.6.0", + "target": "async_io" + }, + { + "id": "futures-io 0.3.33", + "target": "futures_io" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + }, + { + "id": "signal-hook-registry 1.4.8", + "target": "signal_hook_registry" + } + ], + "cfg(windows)": [ + { + "id": "async-lock 3.4.2", + "target": "async_lock" + }, + { + "id": "atomic-waker 1.1.2", + "target": "atomic_waker" + }, + { + "id": "slab 0.4.12", + "target": "slab" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "0.2.14" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "async-task 4.7.1": { + "name": "async-task", + "version": "4.7.1", + "package_url": "https://github.com/smol-rs/async-task", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/async-task/4.7.1/download", + "sha256": "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + } + }, + "targets": [ + { + "Library": { + "crate_name": "async_task", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "async_task", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "4.7.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "async-trait 0.1.91": { + "name": "async-trait", + "version": "0.1.91", + "package_url": "https://github.com/dtolnay/async-trait", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/async-trait/0.1.91/download", + "sha256": "ae36dc4177970ef04fde5178d3e2429882def40e57a451f919c098f72baa6cec" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "async_trait", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "async_trait", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 3.0.3", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.91" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "atomic-waker 1.1.2": { + "name": "atomic-waker", + "version": "1.1.2", + "package_url": "https://github.com/smol-rs/atomic-waker", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/atomic-waker/1.1.2/download", + "sha256": "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "atomic_waker", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "atomic_waker", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "1.1.2" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "audiopus_sys 0.2.2": { + "name": "audiopus_sys", + "version": "0.2.2", + "package_url": "https://github.com/lakelezz/audiopus_sys.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/audiopus_sys/0.2.2/download", + "sha256": "62314a1546a2064e033665d658e88c620a62904be945f8147e6b16c3db9f8651" + } + }, + "targets": [ + { + "Library": { + "crate_name": "audiopus_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "audiopus_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "static" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "audiopus_sys 0.2.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cmake 0.1.58", + "target": "cmake" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "pkg-config 0.3.33", + "target": "pkg_config" + } + ], + "selects": {} + }, + "build_script_env": { + "common": { + "CFLAGS": "-fno-sanitize=undefined", + "CMAKE_GENERATOR_x86_64_pc_windows_msvc": "Ninja", + "CMAKE_POLICY_VERSION_MINIMUM": "3.5", + "CMAKE_TOOLCHAIN_FILE_x86_64_pc_windows_msvc": "$${pwd}/external/+msvc_cc_repository+msvc_cc/toolchain.cmake", + "PATH": "/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin" + }, + "selects": {} + } + }, + "license": "ISC", + "license_ids": [ + "ISC" + ], + "license_file": "LICENSE.md" + }, + "autocfg 1.5.1": { + "name": "autocfg", + "version": "1.5.1", + "package_url": "https://github.com/cuviper/autocfg", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/autocfg/1.5.1/download", + "sha256": "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + } + }, + "targets": [ + { + "Library": { + "crate_name": "autocfg", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "autocfg", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "1.5.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "base16ct 0.2.0": { + "name": "base16ct", + "version": "0.2.0", + "package_url": "https://github.com/RustCrypto/formats/tree/master/base16ct", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/base16ct/0.2.0/download", + "sha256": "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + } + }, + "targets": [ + { + "Library": { + "crate_name": "base16ct", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "base16ct", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "base64 0.22.1": { + "name": "base64", + "version": "0.22.1", + "package_url": "https://github.com/marshallpierce/rust-base64", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/base64/0.22.1/download", + "sha256": "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "base64", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "base64", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.22.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "base64-simd 0.8.0": { + "name": "base64-simd", + "version": "0.8.0", + "package_url": "https://github.com/Nugine/simd", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/base64-simd/0.8.0/download", + "sha256": "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" + } + }, + "targets": [ + { + "Library": { + "crate_name": "base64_simd", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "base64_simd", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "detect", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "outref 0.5.2", + "target": "outref" + }, + { + "id": "vsimd 0.8.0", + "target": "vsimd" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "base64ct 1.8.3": { + "name": "base64ct", + "version": "1.8.3", + "package_url": "https://github.com/RustCrypto/formats", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/base64ct/1.8.3/download", + "sha256": "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" + } + }, + "targets": [ + { + "Library": { + "crate_name": "base64ct", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "base64ct", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "edition": "2024", + "version": "1.8.3" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "bigdecimal 0.4.10": { + "name": "bigdecimal", + "version": "0.4.10", + "package_url": "https://github.com/akubera/bigdecimal-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bigdecimal/0.4.10/download", + "sha256": "4d6867f1565b3aad85681f1015055b087fcfd840d6aeee6eee7f2da317603695" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bigdecimal", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bigdecimal", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bigdecimal 0.4.10", + "target": "build_script_build" + }, + { + "id": "libm 0.2.16", + "target": "libm" + }, + { + "id": "num-bigint 0.4.8", + "target": "num_bigint" + }, + { + "id": "num-integer 0.1.46", + "target": "num_integer" + }, + { + "id": "num-traits 0.2.19", + "target": "num_traits" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.4.10" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "autocfg 1.5.1", + "target": "autocfg" + } + ], + "selects": {} + } + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "binary-heap-plus 0.5.0": { + "name": "binary-heap-plus", + "version": "0.5.0", + "package_url": "https://github.com/sekineh/binary-heap-plus-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/binary-heap-plus/0.5.0/download", + "sha256": "e4551d8382e911ecc0d0f0ffb602777988669be09447d536ff4388d1def11296" + } + }, + "targets": [ + { + "Library": { + "crate_name": "binary_heap_plus", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "binary_heap_plus", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "compare 0.1.0", + "target": "compare" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "bincode 1.3.3": { + "name": "bincode", + "version": "1.3.3", + "package_url": "https://github.com/servo/bincode", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bincode/1.3.3/download", + "sha256": "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bincode", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bincode", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "serde 1.0.229", + "target": "serde" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "1.3.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.md" + }, + "bindgen 0.72.1": { + "name": "bindgen", + "version": "0.72.1", + "package_url": "https://github.com/rust-lang/rust-bindgen", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bindgen/0.72.1/download", + "sha256": "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bindgen", + "crate_root": "lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bindgen", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bindgen 0.72.1", + "target": "build_script_build" + }, + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "cexpr 0.6.0", + "target": "cexpr" + }, + { + "id": "clang-sys 1.8.1", + "target": "clang_sys" + }, + { + "id": "itertools 0.13.0", + "target": "itertools" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "rustc-hash 2.1.3", + "target": "rustc_hash" + }, + { + "id": "shlex 1.3.0", + "target": "shlex" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.72.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "link_deps": { + "common": [ + { + "id": "clang-sys 1.8.1", + "target": "clang_sys" + } + ], + "selects": {} + } + }, + "license": "BSD-3-Clause", + "license_ids": [ + "BSD-3-Clause" + ], + "license_file": "LICENSE" + }, + "bit-set 0.8.0": { + "name": "bit-set", + "version": "0.8.0", + "package_url": "https://github.com/contain-rs/bit-set", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bit-set/0.8.0/download", + "sha256": "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bit_set", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bit_set", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bit-vec 0.8.0", + "target": "bit_vec" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.8.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "bit-vec 0.8.0": { + "name": "bit-vec", + "version": "0.8.0", + "package_url": "https://github.com/contain-rs/bit-vec", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bit-vec/0.8.0/download", + "sha256": "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bit_vec", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bit_vec", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "edition": "2015", + "version": "0.8.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "bitflags 1.3.2": { + "name": "bitflags", + "version": "1.3.2", + "package_url": "https://github.com/bitflags/bitflags", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bitflags/1.3.2/download", + "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bitflags", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bitflags", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "edition": "2018", + "version": "1.3.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "bitflags 2.13.1": { + "name": "bitflags", + "version": "2.13.1", + "package_url": "https://github.com/bitflags/bitflags", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bitflags/2.13.1/download", + "sha256": "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bitflags", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bitflags", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "2.13.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "bitvec 1.1.1": { + "name": "bitvec", + "version": "1.1.1", + "package_url": "https://github.com/bitvecto-rs/bitvec", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bitvec/1.1.1/download", + "sha256": "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bitvec", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bitvec", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "funty 2.0.0", + "target": "funty" + }, + { + "id": "radium 0.7.0", + "target": "radium" + }, + { + "id": "tap 1.0.1", + "target": "tap" + }, + { + "id": "wyz 0.5.1", + "target": "wyz" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.1.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "blake2b_simd 1.0.4": { + "name": "blake2b_simd", + "version": "1.0.4", + "package_url": "https://github.com/oconnor663/blake2_simd", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/blake2b_simd/1.0.4/download", + "sha256": "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "blake2b_simd", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "blake2b_simd", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "arrayref 0.3.9", + "target": "arrayref" + }, + { + "id": "arrayvec 0.7.8", + "target": "arrayvec" + }, + { + "id": "constant_time_eq 0.4.2", + "target": "constant_time_eq" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "1.0.4" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "blake3 1.8.5": { + "name": "blake3", + "version": "1.8.5", + "package_url": "https://github.com/BLAKE3-team/BLAKE3", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/blake3/1.8.5/download", + "sha256": "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce" + } + }, + "targets": [ + { + "Library": { + "crate_name": "blake3", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "blake3", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "arrayref 0.3.9", + "target": "arrayref" + }, + { + "id": "arrayvec 0.7.8", + "target": "arrayvec" + }, + { + "id": "blake3 1.8.5", + "target": "build_script_build" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "constant_time_eq 0.4.2", + "target": "constant_time_eq" + } + ], + "selects": { + "cfg(any(target_arch = \"x86\", target_arch = \"x86_64\"))": [ + { + "id": "cpufeatures 0.3.0", + "target": "cpufeatures" + } + ] + } + }, + "edition": "2024", + "version": "1.8.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "build_script_env": { + "common": { + "PATH": "$${pwd}/external/+msvc_cc_repository+msvc_cc/bin:/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin" + }, + "selects": {} + } + }, + "license": "CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception", + "license_ids": [ + "Apache-2.0", + "CC0-1.0" + ], + "license_file": "LICENSE_A2" + }, + "block-buffer 0.10.4": { + "name": "block-buffer", + "version": "0.10.4", + "package_url": "https://github.com/RustCrypto/utils", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/block-buffer/0.10.4/download", + "sha256": "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" + } + }, + "targets": [ + { + "Library": { + "crate_name": "block_buffer", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "block_buffer", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "generic-array 0.14.7", + "target": "generic_array" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.10.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "block-buffer 0.12.1": { + "name": "block-buffer", + "version": "0.12.1", + "package_url": "https://github.com/RustCrypto/utils", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/block-buffer/0.12.1/download", + "sha256": "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" + } + }, + "targets": [ + { + "Library": { + "crate_name": "block_buffer", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "block_buffer", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "hybrid-array 0.4.13", + "target": "hybrid_array" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.12.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "block-padding 0.3.3": { + "name": "block-padding", + "version": "0.3.3", + "package_url": "https://github.com/RustCrypto/utils", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/block-padding/0.3.3/download", + "sha256": "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" + } + }, + "targets": [ + { + "Library": { + "crate_name": "block_padding", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "block_padding", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "generic-array 0.14.7", + "target": "generic_array" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "block2 0.6.2": { + "name": "block2", + "version": "0.6.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/block2/0.6.2/download", + "sha256": "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "block2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "block2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "objc2 0.6.4", + "target": "objc2" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.6.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "blocking 1.6.2": { + "name": "blocking", + "version": "1.6.2", + "package_url": "https://github.com/smol-rs/blocking", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/blocking/1.6.2/download", + "sha256": "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" + } + }, + "targets": [ + { + "Library": { + "crate_name": "blocking", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "blocking", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "async-channel 2.5.0", + "target": "async_channel" + }, + { + "id": "async-task 4.7.1", + "target": "async_task" + }, + { + "id": "futures-io 0.3.33", + "target": "futures_io" + }, + { + "id": "futures-lite 2.6.1", + "target": "futures_lite" + }, + { + "id": "piper 0.2.5", + "target": "piper" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.6.2" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "bon 3.9.3": { + "name": "bon", + "version": "3.9.3", + "package_url": "https://github.com/elastio/bon", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bon/3.9.3/download", + "sha256": "a602c73c7b0148ec6d12af6fd5cc7a46e2eacc8878271a999abac56eed12f561" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bon", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bon", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "bon-macros 3.9.3", + "target": "bon_macros" + }, + { + "id": "rustversion 1.0.23", + "target": "rustversion" + } + ], + "selects": {} + }, + "version": "3.9.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "bon-macros 3.9.3": { + "name": "bon-macros", + "version": "3.9.3", + "package_url": "https://github.com/elastio/bon", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bon-macros/3.9.3/download", + "sha256": "6dee98b0db6a962de883bf5d20362dee4d7ca0d12fe39a7c6c73c844e1cd7c1f" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "bon_macros", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bon_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "darling 0.23.0", + "target": "darling" + }, + { + "id": "ident_case 1.0.1", + "target": "ident_case" + }, + { + "id": "prettyplease 0.2.37", + "target": "prettyplease" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "rustversion 1.0.23", + "target": "rustversion" + } + ], + "selects": {} + }, + "version": "3.9.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "brush-builtins 0.2.0": { + "name": "brush-builtins", + "version": "0.2.0", + "package_url": "https://github.com/reubeno/brush", + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "brush_builtins", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "brush_builtins", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "builtin.alias", + "builtin.bg", + "builtin.bind", + "builtin.break", + "builtin.builtin", + "builtin.caller", + "builtin.cd", + "builtin.colon", + "builtin.command", + "builtin.compgen", + "builtin.complete", + "builtin.compopt", + "builtin.continue", + "builtin.declare", + "builtin.dirs", + "builtin.dot", + "builtin.echo", + "builtin.enable", + "builtin.eval", + "builtin.exec", + "builtin.exit", + "builtin.export", + "builtin.false", + "builtin.fc", + "builtin.fg", + "builtin.getopts", + "builtin.hash", + "builtin.help", + "builtin.history", + "builtin.jobs", + "builtin.kill", + "builtin.let", + "builtin.mapfile", + "builtin.popd", + "builtin.printf", + "builtin.pushd", + "builtin.pwd", + "builtin.read", + "builtin.return", + "builtin.set", + "builtin.shift", + "builtin.shopt", + "builtin.suspend", + "builtin.test", + "builtin.times", + "builtin.trap", + "builtin.true", + "builtin.type", + "builtin.ulimit", + "builtin.umask", + "builtin.unalias", + "builtin.unset", + "builtin.wait", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "brush-parser 0.4.0", + "target": "brush_parser" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "chrono 0.4.45", + "target": "chrono" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "fancy-regex 0.17.0", + "target": "fancy_regex" + }, + { + "id": "futures 0.3.33", + "target": "futures" + }, + { + "id": "itertools 0.14.0", + "target": "itertools" + }, + { + "id": "strum 0.28.0", + "target": "strum" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "tracing 0.1.44", + "target": "tracing" + } + ], + "selects": { + "cfg(any(target_os = \"linux\", target_os = \"android\"))": [ + { + "id": "procfs 0.18.0", + "target": "procfs" + } + ], + "cfg(any(unix, windows))": [ + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "cfg(target_family = \"wasm\")": [ + { + "id": "tokio 1.53.1", + "target": "tokio" + } + ], + "cfg(unix)": [ + { + "id": "nix 0.31.3", + "target": "nix" + }, + { + "id": "rlimit 0.11.0", + "target": "rlimit" + } + ] + } + }, + "deps_dev": { + "common": [ + { + "id": "anyhow 1.0.104", + "target": "anyhow" + }, + { + "id": "pretty_assertions 1.4.1", + "target": "pretty_assertions" + } + ], + "selects": {} + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "strum_macros 0.28.0", + "target": "strum_macros" + } + ], + "selects": {} + }, + "version": "0.2.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "brush-core 0.5.0": { + "name": "brush-core", + "version": "0.5.0", + "package_url": "https://github.com/reubeno/brush", + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "brush_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "brush_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bon 3.9.3", + "target": "bon" + }, + { + "id": "brush-parser 0.4.0", + "target": "brush_parser" + }, + { + "id": "cached 0.59.0", + "target": "cached" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "chrono 0.4.45", + "target": "chrono" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "color-print 0.3.7", + "target": "color_print" + }, + { + "id": "fancy-regex 0.17.0", + "target": "fancy_regex" + }, + { + "id": "futures 0.3.33", + "target": "futures" + }, + { + "id": "itertools 0.14.0", + "target": "itertools" + }, + { + "id": "normalize-path 0.2.1", + "target": "normalize_path" + }, + { + "id": "rand 0.10.2", + "target": "rand" + }, + { + "id": "rpds 1.2.1", + "target": "rpds" + }, + { + "id": "strum 0.28.0", + "target": "strum" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "tokio-util 0.7.19", + "target": "tokio_util" + }, + { + "id": "tracing 0.1.44", + "target": "tracing" + } + ], + "selects": { + "cfg(any(unix, windows))": [ + { + "id": "hostname 0.4.2", + "target": "hostname" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + } + ], + "cfg(target_family = \"wasm\")": [ + { + "id": "tokio 1.53.1", + "target": "tokio" + } + ], + "cfg(unix)": [ + { + "id": "command-fds 0.3.3", + "target": "command_fds" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "nix 0.31.3", + "target": "nix" + }, + { + "id": "terminfo 0.9.0", + "target": "terminfo" + }, + { + "id": "uzers 0.12.2", + "target": "uzers" + } + ], + "cfg(windows)": [ + { + "id": "check_elevation 0.2.7", + "target": "check_elevation" + }, + { + "id": "whoami 2.1.2", + "target": "whoami" + }, + { + "id": "windows-sys 0.59.0", + "target": "windows_sys" + } + ], + "wasm32-unknown-unknown": [ + { + "id": "getrandom 0.4.3", + "target": "getrandom" + }, + { + "id": "uuid 1.24.0", + "target": "uuid" + } + ] + } + }, + "deps_dev": { + "common": [ + { + "id": "anyhow 1.0.104", + "target": "anyhow" + }, + { + "id": "pretty_assertions 1.4.1", + "target": "pretty_assertions" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "async-recursion 1.1.1", + "target": "async_recursion" + }, + { + "id": "async-trait 0.1.91", + "target": "async_trait" + }, + { + "id": "inherent 1.0.14", + "target": "inherent" + }, + { + "id": "strum_macros 0.28.0", + "target": "strum_macros" + } + ], + "selects": {} + }, + "version": "0.5.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "brush-parser 0.3.0": { + "name": "brush-parser", + "version": "0.3.0", + "package_url": "https://github.com/reubeno/brush", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/brush-parser/0.3.0/download", + "sha256": "f7367124d4f38fdcd65f4b815bda7caeb3de377b9cd95ffa1b23627989c93718" + } + }, + "targets": [ + { + "Library": { + "crate_name": "brush_parser", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "brush_parser", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bon 3.9.3", + "target": "bon" + }, + { + "id": "cached 0.56.0", + "target": "cached" + }, + { + "id": "indenter 0.3.4", + "target": "indenter" + }, + { + "id": "peg 0.8.6", + "target": "peg" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "tracing 0.1.44", + "target": "tracing" + }, + { + "id": "utf8-chars 3.0.7", + "target": "utf8_chars" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.3.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "brush-parser 0.4.0": { + "name": "brush-parser", + "version": "0.4.0", + "package_url": "https://github.com/reubeno/brush", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/brush-parser/0.4.0/download", + "sha256": "9f64b19efc02f0dd6cac1d462e20a1098f425f09cb13624efbb1b7d63f061735" + } + }, + "targets": [ + { + "Library": { + "crate_name": "brush_parser", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "brush_parser", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bon 3.9.3", + "target": "bon" + }, + { + "id": "cached 0.59.0", + "target": "cached" + }, + { + "id": "indenter 0.3.4", + "target": "indenter" + }, + { + "id": "insta 1.48.0", + "target": "insta" + }, + { + "id": "peg 0.8.6", + "target": "peg" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "tracing 0.1.44", + "target": "tracing" + }, + { + "id": "utf8-chars 3.0.7", + "target": "utf8_chars" + } + ], + "selects": { + "wasm32-unknown-unknown": [ + { + "id": "getrandom 0.4.3", + "target": "getrandom" + }, + { + "id": "uuid 1.24.0", + "target": "uuid" + } + ] + } + }, + "edition": "2024", + "version": "0.4.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "bstr 1.13.0": { + "name": "bstr", + "version": "1.13.0", + "package_url": "https://github.com/BurntSushi/bstr", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bstr/1.13.0/download", + "sha256": "1f7dc094d718f2e1c1559ad110e27eeaae14a5465d3d56dd6dbd793079fbd530" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bstr", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bstr", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std", + "unicode" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "regex-automata 0.4.16", + "target": "regex_automata" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.13.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "bumpalo 3.20.3": { + "name": "bumpalo", + "version": "3.20.3", + "package_url": "https://github.com/fitzgen/bumpalo", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bumpalo/3.20.3/download", + "sha256": "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bumpalo", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bumpalo", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "edition": "2021", + "version": "3.20.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "by_address 1.2.1": { + "name": "by_address", + "version": "1.2.1", + "package_url": "https://github.com/mbrubeck/by_address", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/by_address/1.2.1/download", + "sha256": "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" + } + }, + "targets": [ + { + "Library": { + "crate_name": "by_address", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "by_address", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "1.2.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "bytecheck 0.8.2": { + "name": "bytecheck", + "version": "0.8.2", + "package_url": "https://github.com/rkyv/bytecheck", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bytecheck/0.8.2/download", + "sha256": "0caa33a2c0edca0419d15ac723dff03f1956f7978329b1e3b5fdaaaed9d3ca8b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bytecheck", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bytecheck", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "simdutf8" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "ptr_meta 0.3.1", + "target": "ptr_meta" + }, + { + "id": "rancor 0.1.2", + "target": "rancor" + }, + { + "id": "simdutf8 0.1.5", + "target": "simdutf8" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "bytecheck_derive 0.8.2", + "target": "bytecheck_derive" + } + ], + "selects": {} + }, + "version": "0.8.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "bytecheck_derive 0.8.2": { + "name": "bytecheck_derive", + "version": "0.8.2", + "package_url": "https://github.com/rkyv/bytecheck", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bytecheck_derive/0.8.2/download", + "sha256": "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "bytecheck_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bytecheck_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "bytecount 0.6.9": { + "name": "bytecount", + "version": "0.6.9", + "package_url": "https://github.com/llogiq/bytecount", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bytecount/0.6.9/download", + "sha256": "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bytecount", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bytecount", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "runtime-dispatch-simd" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.6.9" + }, + "license": "Apache-2.0/MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE.Apache2" + }, + "bytemuck 1.25.2": { + "name": "bytemuck", + "version": "1.25.2", + "package_url": "https://github.com/Lokathor/bytemuck", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bytemuck/1.25.2/download", + "sha256": "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bytemuck", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bytemuck", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "bytemuck_derive", + "derive", + "extern_crate_alloc", + "min_const_generics" + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "bytemuck_derive 1.11.0", + "target": "bytemuck_derive" + } + ], + "selects": {} + }, + "version": "1.25.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": "LICENSE-APACHE" + }, + "bytemuck_derive 1.11.0": { + "name": "bytemuck_derive", + "version": "1.11.0", + "package_url": "https://github.com/Lokathor/bytemuck", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bytemuck_derive/1.11.0/download", + "sha256": "f65693059b6b9c588b9f62fed1cedbf0a8b805631457ea162d68f0de186f3de5" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "bytemuck_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bytemuck_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.11.0" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": "LICENSE-APACHE" + }, + "byteorder 1.5.0": { + "name": "byteorder", + "version": "1.5.0", + "package_url": "https://github.com/BurntSushi/byteorder", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/byteorder/1.5.0/download", + "sha256": "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "byteorder", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "byteorder", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.5.0" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "byteorder-lite 0.1.0": { + "name": "byteorder-lite", + "version": "0.1.0", + "package_url": "https://github.com/image-rs/byteorder-lite", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/byteorder-lite/0.1.0/download", + "sha256": "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + } + }, + "targets": [ + { + "Library": { + "crate_name": "byteorder_lite", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "byteorder_lite", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.0" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "bytes 1.12.1": { + "name": "bytes", + "version": "1.12.1", + "package_url": "https://github.com/tokio-rs/bytes", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/bytes/1.12.1/download", + "sha256": "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + } + }, + "targets": [ + { + "Library": { + "crate_name": "bytes", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "bytes", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.12.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "cached 0.56.0": { + "name": "cached", + "version": "0.56.0", + "package_url": "https://github.com/jaemk/cached", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cached/0.56.0/download", + "sha256": "801927ee168e17809ab8901d9f01f700cd7d8d6a6527997fee44e4b0327a253c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cached", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cached", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "ahash", + "cached_proc_macro", + "cached_proc_macro_types", + "default", + "proc_macro" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "ahash 0.8.12", + "target": "ahash" + }, + { + "id": "cached_proc_macro_types 0.1.1", + "target": "cached_proc_macro_types" + }, + { + "id": "hashbrown 0.15.5", + "target": "hashbrown" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "web-time 1.1.0", + "target": "web_time" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "cached_proc_macro 0.25.0", + "target": "cached_proc_macro" + } + ], + "selects": {} + }, + "version": "0.56.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "cached 0.59.0": { + "name": "cached", + "version": "0.59.0", + "package_url": "https://github.com/jaemk/cached", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cached/0.59.0/download", + "sha256": "53b6f5d101f0f6322c8646a45b7c581a673e476329040d97565815c2461dd0c4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cached", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cached", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "ahash", + "cached_proc_macro", + "cached_proc_macro_types", + "default", + "proc_macro", + "time_stores" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "ahash 0.8.12", + "target": "ahash" + }, + { + "id": "cached_proc_macro_types 0.1.1", + "target": "cached_proc_macro_types" + }, + { + "id": "hashbrown 0.16.1", + "target": "hashbrown" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "web-time 1.1.0", + "target": "web_time" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "cached_proc_macro 0.27.0", + "target": "cached_proc_macro" + } + ], + "selects": {} + }, + "version": "0.59.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "cached_proc_macro 0.25.0": { + "name": "cached_proc_macro", + "version": "0.25.0", + "package_url": "https://github.com/jaemk/cached", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cached_proc_macro/0.25.0/download", + "sha256": "9225bdcf4e4a9a4c08bf16607908eb2fbf746828d5e0b5e019726dbf6571f201" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "cached_proc_macro", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cached_proc_macro", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "darling 0.20.11", + "target": "darling" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.25.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "cached_proc_macro 0.27.0": { + "name": "cached_proc_macro", + "version": "0.27.0", + "package_url": "https://github.com/jaemk/cached", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cached_proc_macro/0.27.0/download", + "sha256": "8ebcf9c75f17a17d55d11afc98e46167d4790a263f428891b8705ab2f793eca3" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "cached_proc_macro", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cached_proc_macro", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "darling 0.20.11", + "target": "darling" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.27.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "cached_proc_macro_types 0.1.1": { + "name": "cached_proc_macro_types", + "version": "0.1.1", + "package_url": "https://github.com/jaemk/cached", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cached_proc_macro_types/0.1.1/download", + "sha256": "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cached_proc_macro_types", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cached_proc_macro_types", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.1.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "calendrical_calculations 0.2.4": { + "name": "calendrical_calculations", + "version": "0.2.4", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/calendrical_calculations/0.2.4/download", + "sha256": "5abbd6eeda6885048d357edc66748eea6e0268e3dd11f326fff5bd248d779c26" + } + }, + "targets": [ + { + "Library": { + "crate_name": "calendrical_calculations", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "calendrical_calculations", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "core_maths 0.1.1", + "target": "core_maths" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "0.2.4" + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "cbc 0.1.2": { + "name": "cbc", + "version": "0.1.2", + "package_url": "https://github.com/RustCrypto/block-modes", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cbc/0.1.2/download", + "sha256": "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cbc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cbc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "block-padding", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cipher 0.4.4", + "target": "cipher" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "cc 1.2.67": { + "name": "cc", + "version": "1.2.67", + "package_url": "https://github.com/rust-lang/cc-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cc/1.2.67/download", + "sha256": "e17dd265a7d0f31ef544e1b20e03add05d3b45b491b633b10d67145d2acc1a38" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "parallel" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "find-msvc-tools 0.1.9", + "target": "find_msvc_tools" + }, + { + "id": "jobserver 0.1.35", + "target": "jobserver" + }, + { + "id": "shlex 2.0.1", + "target": "shlex" + } + ], + "selects": { + "aarch64-apple-darwin": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "aarch64-unknown-linux-gnu": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "aarch64-unknown-linux-musl": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "x86_64-apple-darwin": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "x86_64-unknown-linux-gnu": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "x86_64-unknown-linux-musl": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2018", + "version": "1.2.67" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ccm 0.5.0": { + "name": "ccm", + "version": "0.5.0", + "package_url": "https://github.com/RustCrypto/AEADs/tree/master/ccm", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ccm/0.5.0/download", + "sha256": "9ae3c82e4355234767756212c570e29833699ab63e6ffd161887314cc5b43847" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ccm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ccm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "getrandom" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "aead 0.5.2", + "target": "aead" + }, + { + "id": "cipher 0.4.4", + "target": "cipher" + }, + { + "id": "ctr 0.9.2", + "target": "ctr" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "cexpr 0.6.0": { + "name": "cexpr", + "version": "0.6.0", + "package_url": "https://github.com/jethrogb/rust-cexpr", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cexpr/0.6.0/download", + "sha256": "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cexpr", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cexpr", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "nom 7.1.3", + "target": "nom" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.6.0" + }, + "license": "Apache-2.0/MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "cfg-expr 0.20.8": { + "name": "cfg-expr", + "version": "0.20.8", + "package_url": "https://github.com/EmbarkStudios/cfg-expr", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cfg-expr/0.20.8/download", + "sha256": "fb693542bcafa528e198be0ebd9d3632ca5b7c93dbe7237460e199910835997c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cfg_expr", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cfg_expr", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "smallvec 1.15.2", + "target": "smallvec" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.20.8" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "cfg-if 1.0.4": { + "name": "cfg-if", + "version": "1.0.4", + "package_url": "https://github.com/rust-lang/cfg-if", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cfg-if/1.0.4/download", + "sha256": "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cfg_if", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cfg_if", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "1.0.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "cfg_aliases 0.1.1": { + "name": "cfg_aliases", + "version": "0.1.1", + "package_url": "https://github.com/katharostech/cfg_aliases", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cfg_aliases/0.1.1/download", + "sha256": "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cfg_aliases", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cfg_aliases", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.1.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "cfg_aliases 0.2.2": { + "name": "cfg_aliases", + "version": "0.2.2", + "package_url": "https://github.com/katharostech/cfg_aliases", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cfg_aliases/0.2.2/download", + "sha256": "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cfg_aliases", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cfg_aliases", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.2.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "chacha20 0.9.1": { + "name": "chacha20", + "version": "0.9.1", + "package_url": "https://github.com/RustCrypto/stream-ciphers", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/chacha20/0.9.1/download", + "sha256": "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" + } + }, + "targets": [ + { + "Library": { + "crate_name": "chacha20", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "chacha20", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "zeroize" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "cipher 0.4.4", + "target": "cipher" + } + ], + "selects": { + "cfg(any(target_arch = \"x86_64\", target_arch = \"x86\"))": [ + { + "id": "cpufeatures 0.2.17", + "target": "cpufeatures" + } + ] + } + }, + "edition": "2021", + "version": "0.9.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "chacha20 0.10.1": { + "name": "chacha20", + "version": "0.10.1", + "package_url": "https://github.com/RustCrypto/stream-ciphers", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/chacha20/0.10.1/download", + "sha256": "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" + } + }, + "targets": [ + { + "Library": { + "crate_name": "chacha20", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "chacha20", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "rng" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "rand_core 0.10.1", + "target": "rand_core" + } + ], + "selects": { + "cfg(any(target_arch = \"x86_64\", target_arch = \"x86\"))": [ + { + "id": "cpufeatures 0.3.0", + "target": "cpufeatures" + } + ] + } + }, + "edition": "2024", + "version": "0.10.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "chacha20poly1305 0.10.1": { + "name": "chacha20poly1305", + "version": "0.10.1", + "package_url": "https://github.com/RustCrypto/AEADs/tree/master/chacha20poly1305", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/chacha20poly1305/0.10.1/download", + "sha256": "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" + } + }, + "targets": [ + { + "Library": { + "crate_name": "chacha20poly1305", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "chacha20poly1305", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "getrandom", + "rand_core" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "aead 0.5.2", + "target": "aead" + }, + { + "id": "chacha20 0.9.1", + "target": "chacha20" + }, + { + "id": "cipher 0.4.4", + "target": "cipher" + }, + { + "id": "poly1305 0.8.0", + "target": "poly1305" + }, + { + "id": "zeroize 1.9.0", + "target": "zeroize" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.10.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "check_elevation 0.2.7": { + "name": "check_elevation", + "version": "0.2.7", + "package_url": "https://github.com/h4rldev/check_elevation", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/check_elevation/0.2.7/download", + "sha256": "a7fe1fbbd8bd3174109071530f12932ff471eeff30d83e9c485d6ff424ac534b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "check_elevation", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "check_elevation", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows 0.51.1", + "target": "windows" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.7" + }, + "license": "BSD-2-Clause", + "license_ids": [ + "BSD-2-Clause" + ], + "license_file": "LICENSE" + }, + "chrono 0.4.45": { + "name": "chrono", + "version": "0.4.45", + "package_url": "https://github.com/chronotope/chrono", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/chrono/0.4.45/download", + "sha256": "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" + } + }, + "targets": [ + { + "Library": { + "crate_name": "chrono", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "chrono", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "clock", + "default", + "iana-time-zone", + "js-sys", + "now", + "oldtime", + "std", + "wasm-bindgen", + "wasmbind", + "winapi", + "windows-link" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "num-traits 0.2.19", + "target": "num_traits" + } + ], + "selects": { + "aarch64-apple-darwin": [ + { + "id": "iana-time-zone 0.1.65", + "target": "iana_time_zone" + } + ], + "aarch64-unknown-linux-gnu": [ + { + "id": "iana-time-zone 0.1.65", + "target": "iana_time_zone" + } + ], + "aarch64-unknown-linux-musl": [ + { + "id": "iana-time-zone 0.1.65", + "target": "iana_time_zone" + } + ], + "x86_64-apple-darwin": [ + { + "id": "iana-time-zone 0.1.65", + "target": "iana_time_zone" + } + ], + "x86_64-pc-windows-msvc": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ], + "x86_64-unknown-linux-gnu": [ + { + "id": "iana-time-zone 0.1.65", + "target": "iana_time_zone" + } + ], + "x86_64-unknown-linux-musl": [ + { + "id": "iana-time-zone 0.1.65", + "target": "iana_time_zone" + } + ] + } + }, + "edition": "2021", + "version": "0.4.45" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "chrono-tz 0.10.4": { + "name": "chrono-tz", + "version": "0.10.4", + "package_url": "https://github.com/chronotope/chrono-tz", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/chrono-tz/0.10.4/download", + "sha256": "a6139a8597ed92cf816dfb33f5dd6cf0bb93a6adc938f11039f371bc5bcd26c3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "chrono_tz", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "chrono_tz", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "chrono 0.4.45", + "target": "chrono" + }, + { + "id": "chrono-tz 0.10.4", + "target": "build_script_build" + }, + { + "id": "phf 0.12.1", + "target": "phf" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.10.4" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE" + }, + "cipher 0.4.4": { + "name": "cipher", + "version": "0.4.4", + "package_url": "https://github.com/RustCrypto/traits", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cipher/0.4.4/download", + "sha256": "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cipher", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cipher", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "block-padding", + "zeroize" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "crypto-common 0.1.7", + "target": "crypto_common" + }, + { + "id": "inout 0.1.4", + "target": "inout" + }, + { + "id": "zeroize 1.9.0", + "target": "zeroize" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "clang-sys 1.8.1": { + "name": "clang-sys", + "version": "1.8.1", + "package_url": "https://github.com/KyleMayes/clang-sys", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/clang-sys/1.8.1/download", + "sha256": "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "clang_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "clang_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clang-sys 1.8.1", + "target": "build_script_build" + }, + { + "id": "glob 0.3.4", + "target": "glob" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.8.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "glob 0.3.4", + "target": "glob" + } + ], + "selects": {} + }, + "links": "clang" + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE.txt" + }, + "clap 4.6.4": { + "name": "clap", + "version": "4.6.4", + "package_url": "https://github.com/clap-rs/clap", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/clap/4.6.4/download", + "sha256": "d91e0c145792ef73a6ad36d27c75ac09f1832222a3c209689d90f534685ee5b7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "clap", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "clap", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "cargo", + "color", + "default", + "derive", + "env", + "error-context", + "help", + "std", + "suggestions", + "usage", + "wrap_help" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "clap_builder 4.6.2", + "target": "clap_builder" + } + ], + "selects": {} + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "clap_derive 4.6.4", + "target": "clap_derive" + } + ], + "selects": {} + }, + "version": "4.6.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "clap_builder 4.6.2": { + "name": "clap_builder", + "version": "4.6.2", + "package_url": "https://github.com/clap-rs/clap", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/clap_builder/4.6.2/download", + "sha256": "f09628afdcc538b57f3c6341e9c8e9970f18e4a481690a64974d7023bd33548b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "clap_builder", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "clap_builder", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "cargo", + "color", + "env", + "error-context", + "help", + "std", + "suggestions", + "usage", + "wrap_help" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "anstream 1.0.0", + "target": "anstream" + }, + { + "id": "anstyle 1.0.14", + "target": "anstyle" + }, + { + "id": "clap_lex 1.1.0", + "target": "clap_lex" + }, + { + "id": "strsim 0.11.1", + "target": "strsim" + }, + { + "id": "terminal_size 0.4.4", + "target": "terminal_size" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "4.6.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "clap_derive 4.6.4": { + "name": "clap_derive", + "version": "4.6.4", + "package_url": "https://github.com/clap-rs/clap", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/clap_derive/4.6.4/download", + "sha256": "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "clap_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "clap_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "heck 0.5.0", + "target": "heck" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 3.0.3", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "4.6.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "clap_lex 1.1.0": { + "name": "clap_lex", + "version": "1.1.0", + "package_url": "https://github.com/clap-rs/clap", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/clap_lex/1.1.0/download", + "sha256": "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" + } + }, + "targets": [ + { + "Library": { + "crate_name": "clap_lex", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "clap_lex", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2024", + "version": "1.1.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "clipboard-win 5.4.1": { + "name": "clipboard-win", + "version": "5.4.1", + "package_url": "https://github.com/DoumanAsh/clipboard-win", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/clipboard-win/5.4.1/download", + "sha256": "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "clipboard_win", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "clipboard_win", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [], + "selects": { + "cfg(windows)": [ + { + "id": "error-code 3.3.2", + "target": "error_code" + } + ] + } + }, + "edition": "2018", + "version": "5.4.1" + }, + "license": "BSL-1.0", + "license_ids": [ + "BSL-1.0" + ], + "license_file": null + }, + "cmake 0.1.58": { + "name": "cmake", + "version": "0.1.58", + "package_url": "https://github.com/rust-lang/cmake-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cmake/0.1.58/download", + "sha256": "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cmake", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cmake", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.58" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "codesnake 0.2.1": { + "name": "codesnake", + "version": "0.2.1", + "package_url": "https://github.com/01mf02/codesnake", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/codesnake/0.2.1/download", + "sha256": "2205f7f6d3de68ecf4c291c789b3edf07b6569268abd0188819086f71ae42225" + } + }, + "targets": [ + { + "Library": { + "crate_name": "codesnake", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "codesnake", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.2.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "color-print 0.3.7": { + "name": "color-print", + "version": "0.3.7", + "package_url": "https://gitlab.com/dajoha/color-print", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/color-print/0.3.7/download", + "sha256": "3aa954171903797d5623e047d9ab69d91b493657917bdfb8c2c80ecaf9cdb6f4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "color_print", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "color_print", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "color-print-proc-macro 0.3.7", + "target": "color_print_proc_macro" + } + ], + "selects": {} + }, + "version": "0.3.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "color-print-proc-macro 0.3.7": { + "name": "color-print-proc-macro", + "version": "0.3.7", + "package_url": "https://gitlab.com/dajoha/color-print", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/color-print-proc-macro/0.3.7/download", + "sha256": "692186b5ebe54007e45a59aea47ece9eb4108e141326c304cdc91699a7118a22" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "color_print_proc_macro", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "color_print_proc_macro", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "nom 7.1.3", + "target": "nom" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "color_quant 1.1.0": { + "name": "color_quant", + "version": "1.1.0", + "package_url": "https://github.com/image-rs/color_quant.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/color_quant/1.1.0/download", + "sha256": "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "color_quant", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "color_quant", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "1.1.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "colorchoice 1.0.5": { + "name": "colorchoice", + "version": "1.0.5", + "package_url": "https://github.com/rust-cli/anstyle.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/colorchoice/1.0.5/download", + "sha256": "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + } + }, + "targets": [ + { + "Library": { + "crate_name": "colorchoice", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "colorchoice", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "1.0.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "command-fds 0.3.3": { + "name": "command-fds", + "version": "0.3.3", + "package_url": "https://github.com/google/command-fds/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/command-fds/0.3.3/download", + "sha256": "1b60b5124979fccd9addd89d8b97a1d6eebb4950694520c75ddd722535ea443f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "command_fds", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "command_fds", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "nix 0.31.3", + "target": "nix" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.3.3" + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "compare 0.1.0": { + "name": "compare", + "version": "0.1.0", + "package_url": "https://github.com/contain-rs/compare", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/compare/0.1.0/download", + "sha256": "120133d4db2ec47efe2e26502ee984747630c67f51974fca0b6c1340cf2368d3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "compare", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "compare", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "0.1.0" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "concurrent-queue 2.5.0": { + "name": "concurrent-queue", + "version": "2.5.0", + "package_url": "https://github.com/smol-rs/concurrent-queue", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/concurrent-queue/2.5.0/download", + "sha256": "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" + } + }, + "targets": [ + { + "Library": { + "crate_name": "concurrent_queue", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "concurrent_queue", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "crossbeam-utils 0.8.22", + "target": "crossbeam_utils" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.5.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "console 0.16.4": { + "name": "console", + "version": "0.16.4", + "package_url": "https://github.com/console-rs/console", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/console/0.16.4/download", + "sha256": "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "console", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "console", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "ansi-parsing", + "std", + "unicode-width" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "unicode-width 0.2.2", + "target": "unicode_width" + } + ], + "selects": { + "cfg(windows)": [ + { + "id": "encode_unicode 1.0.0", + "target": "encode_unicode" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "0.16.4" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "const-oid 0.9.6": { + "name": "const-oid", + "version": "0.9.6", + "package_url": "https://github.com/RustCrypto/formats/tree/master/const-oid", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/const-oid/0.9.6/download", + "sha256": "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "const_oid", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "const_oid", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.9.6" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "const-oid 0.10.2": { + "name": "const-oid", + "version": "0.10.2", + "package_url": "https://github.com/RustCrypto/formats", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/const-oid/0.10.2/download", + "sha256": "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "const_oid", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "const_oid", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2024", + "version": "0.10.2" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "const-random 0.1.18": { + "name": "const-random", + "version": "0.1.18", + "package_url": "https://github.com/tkaitchuck/constrandom", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/const-random/0.1.18/download", + "sha256": "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" + } + }, + "targets": [ + { + "Library": { + "crate_name": "const_random", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "const_random", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "const-random-macro 0.1.16", + "target": "const_random_macro" + } + ], + "selects": {} + }, + "version": "0.1.18" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "const-random-macro 0.1.16": { + "name": "const-random-macro", + "version": "0.1.16", + "package_url": "https://github.com/tkaitchuck/constrandom", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/const-random-macro/0.1.16/download", + "sha256": "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "const_random_macro", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "const_random_macro", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "getrandom 0.2.17", + "target": "getrandom" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "tiny-keccak 2.0.2", + "target": "tiny_keccak" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.16" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "constant_time_eq 0.4.2": { + "name": "constant_time_eq", + "version": "0.4.2", + "package_url": "https://github.com/cesarb/constant_time_eq", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/constant_time_eq/0.4.2/download", + "sha256": "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "constant_time_eq", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "constant_time_eq", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "edition": "2024", + "version": "0.4.2" + }, + "license": "CC0-1.0 OR MIT-0 OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "CC0-1.0", + "MIT-0" + ], + "license_file": "LICENSE-APACHE" + }, + "convert_case 0.8.0": { + "name": "convert_case", + "version": "0.8.0", + "package_url": "https://github.com/rutrum/convert-case", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/convert_case/0.8.0/download", + "sha256": "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "convert_case", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "convert_case", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "unicode-segmentation 1.13.3", + "target": "unicode_segmentation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "convert_case 0.11.0": { + "name": "convert_case", + "version": "0.11.0", + "package_url": "https://github.com/rutrum/convert-case", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/convert_case/0.11.0/download", + "sha256": "affbf0190ed2caf063e3def54ff444b449371d55c58e513a95ab98eca50adb49" + } + }, + "targets": [ + { + "Library": { + "crate_name": "convert_case", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "convert_case", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "unicode-segmentation 1.13.3", + "target": "unicode_segmentation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.11.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "cookie-factory 0.3.3": { + "name": "cookie-factory", + "version": "0.3.3", + "package_url": "https://github.com/rust-bakery/cookie-factory", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cookie-factory/0.3.3/download", + "sha256": "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cookie_factory", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cookie_factory", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.3.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "core-foundation 0.10.1": { + "name": "core-foundation", + "version": "0.10.1", + "package_url": "https://github.com/servo/core-foundation-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/core-foundation/0.10.1/download", + "sha256": "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "core_foundation", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "core_foundation", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "link" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "core-foundation-sys 0.8.7", + "target": "core_foundation_sys" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.10.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "core-foundation-sys 0.8.7": { + "name": "core-foundation-sys", + "version": "0.8.7", + "package_url": "https://github.com/servo/core-foundation-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/core-foundation-sys/0.8.7/download", + "sha256": "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "core_foundation_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "core_foundation_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "link" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.8.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "core-graphics 0.25.0": { + "name": "core-graphics", + "version": "0.25.0", + "package_url": "https://github.com/servo/core-foundation-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/core-graphics/0.25.0/download", + "sha256": "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" + } + }, + "targets": [ + { + "Library": { + "crate_name": "core_graphics", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "core_graphics", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "highsierra", + "link" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "core-foundation 0.10.1", + "target": "core_foundation" + }, + { + "id": "core-graphics-types 0.2.0", + "target": "core_graphics_types" + }, + { + "id": "foreign-types 0.5.0", + "target": "foreign_types" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.25.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "core-graphics-types 0.2.0": { + "name": "core-graphics-types", + "version": "0.2.0", + "package_url": "https://github.com/servo/core-foundation-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/core-graphics-types/0.2.0/download", + "sha256": "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "core_graphics_types", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "core_graphics_types", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "link" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "core-foundation 0.10.1", + "target": "core_foundation" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "core_maths 0.1.1": { + "name": "core_maths", + "version": "0.1.1", + "package_url": "https://github.com/robertbastian/core_maths", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/core_maths/0.1.1/download", + "sha256": "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" + } + }, + "targets": [ + { + "Library": { + "crate_name": "core_maths", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "core_maths", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libm 0.2.16", + "target": "libm" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.1.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "cpufeatures 0.2.17": { + "name": "cpufeatures", + "version": "0.2.17", + "package_url": "https://github.com/RustCrypto/utils", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cpufeatures/0.2.17/download", + "sha256": "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cpufeatures", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cpufeatures", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "aarch64-linux-android": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(all(target_arch = \"aarch64\", target_os = \"linux\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(all(target_arch = \"aarch64\", target_vendor = \"apple\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(all(target_arch = \"loongarch64\", target_os = \"linux\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2018", + "version": "0.2.17" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "cpufeatures 0.3.0": { + "name": "cpufeatures", + "version": "0.3.0", + "package_url": "https://github.com/RustCrypto/utils", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/cpufeatures/0.3.0/download", + "sha256": "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" + } + }, + "targets": [ + { + "Library": { + "crate_name": "cpufeatures", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "cpufeatures", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(all(target_arch = \"aarch64\", target_os = \"android\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(all(target_arch = \"aarch64\", target_os = \"linux\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(all(target_arch = \"aarch64\", target_vendor = \"apple\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(all(target_arch = \"loongarch64\", target_os = \"linux\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2024", + "version": "0.3.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "crc 3.4.0": { + "name": "crc", + "version": "3.4.0", + "package_url": "https://github.com/mrhooray/crc-rs.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/crc/3.4.0/download", + "sha256": "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "crc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "crc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "crc-catalog 2.5.0", + "target": "crc_catalog" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "3.4.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "crc-catalog 2.5.0": { + "name": "crc-catalog", + "version": "2.5.0", + "package_url": "https://github.com/akhilles/crc-catalog.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/crc-catalog/2.5.0/download", + "sha256": "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853" + } + }, + "targets": [ + { + "Library": { + "crate_name": "crc_catalog", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "crc_catalog", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "2.5.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSES" + }, + "crc-fast 1.10.0": { + "name": "crc-fast", + "version": "1.10.0", + "package_url": "https://github.com/awesomized/crc-fast-rust", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/crc-fast/1.10.0/download", + "sha256": "e75b2483e97a5a7da73ac68a05b629f9c53cff58d8ed1c77866079e18b00dba5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "crc_fast", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "crc_fast", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "digest", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "digest 0.10.7", + "target": "digest" + } + ], + "selects": { + "cfg(target_arch = \"aarch64\")": [ + { + "id": "spin 0.10.1", + "target": "spin" + } + ], + "cfg(target_arch = \"x86\")": [ + { + "id": "spin 0.10.1", + "target": "spin" + } + ], + "cfg(target_arch = \"x86_64\")": [ + { + "id": "spin 0.10.1", + "target": "spin" + } + ] + } + }, + "edition": "2021", + "version": "1.10.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-Apache" + }, + "crc32fast 1.5.0": { + "name": "crc32fast", + "version": "1.5.0", + "package_url": "https://github.com/srijs/rust-crc32fast", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/crc32fast/1.5.0/download", + "sha256": "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" + } + }, + "targets": [ + { + "Library": { + "crate_name": "crc32fast", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "crc32fast", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "crc32fast 1.5.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.5.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "crossbeam-deque 0.8.7": { + "name": "crossbeam-deque", + "version": "0.8.7", + "package_url": "https://github.com/crossbeam-rs/crossbeam", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/crossbeam-deque/0.8.7/download", + "sha256": "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "crossbeam_deque", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "crossbeam_deque", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "crossbeam-deque 0.8.7", + "target": "build_script_build" + }, + { + "id": "crossbeam-epoch 0.9.20", + "target": "crossbeam_epoch" + }, + { + "id": "crossbeam-utils 0.8.22", + "target": "crossbeam_utils" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.7" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "crossbeam-epoch 0.9.20": { + "name": "crossbeam-epoch", + "version": "0.9.20", + "package_url": "https://github.com/crossbeam-rs/crossbeam", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/crossbeam-epoch/0.9.20/download", + "sha256": "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "crossbeam_epoch", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "crossbeam_epoch", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "crossbeam-epoch 0.9.20", + "target": "build_script_build" + }, + { + "id": "crossbeam-utils 0.8.22", + "target": "crossbeam_utils" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.20" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "crossbeam-utils 0.8.22": { + "name": "crossbeam-utils", + "version": "0.8.22", + "package_url": "https://github.com/crossbeam-rs/crossbeam", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/crossbeam-utils/0.8.22/download", + "sha256": "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" + } + }, + "targets": [ + { + "Library": { + "crate_name": "crossbeam_utils", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "crossbeam_utils", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "crossbeam-utils 0.8.22", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.22" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "crunchy 0.2.4": { + "name": "crunchy", + "version": "0.2.4", + "package_url": "https://github.com/eira-fransham/crunchy", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/crunchy/0.2.4/download", + "sha256": "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "crunchy", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "crunchy", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "limit_128" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "crunchy 0.2.4", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.4" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "crypto-bigint 0.5.5": { + "name": "crypto-bigint", + "version": "0.5.5", + "package_url": "https://github.com/RustCrypto/crypto-bigint", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/crypto-bigint/0.5.5/download", + "sha256": "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" + } + }, + "targets": [ + { + "Library": { + "crate_name": "crypto_bigint", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "crypto_bigint", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "generic-array", + "rand_core", + "zeroize" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "generic-array 0.14.7", + "target": "generic_array" + }, + { + "id": "rand_core 0.6.4", + "target": "rand_core" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + }, + { + "id": "zeroize 1.9.0", + "target": "zeroize" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.5" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "crypto-common 0.1.7": { + "name": "crypto-common", + "version": "0.1.7", + "package_url": "https://github.com/RustCrypto/traits", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/crypto-common/0.1.7/download", + "sha256": "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "crypto_common", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "crypto_common", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "getrandom", + "rand_core", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "generic-array 0.14.7", + "target": "generic_array" + }, + { + "id": "rand_core 0.6.4", + "target": "rand_core" + }, + { + "id": "typenum 1.20.1", + "target": "typenum" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "crypto-common 0.2.2": { + "name": "crypto-common", + "version": "0.2.2", + "package_url": "https://github.com/RustCrypto/traits", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/crypto-common/0.2.2/download", + "sha256": "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" + } + }, + "targets": [ + { + "Library": { + "crate_name": "crypto_common", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "crypto_common", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "hybrid-array 0.4.13", + "target": "hybrid_array" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.2.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ctor 1.0.11": { + "name": "ctor", + "version": "1.0.11", + "package_url": "https://github.com/mmastrac/linktime", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ctor/1.0.11/download", + "sha256": "e9bb72bb94fdc1bd619f4c18cc91ecf6302aeb333d31b3c6ec0bb841cd920209" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ctor", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ctor", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "1.0.11" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ctr 0.9.2": { + "name": "ctr", + "version": "0.9.2", + "package_url": "https://github.com/RustCrypto/block-modes", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ctr/0.9.2/download", + "sha256": "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ctr", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ctr", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cipher 0.4.4", + "target": "cipher" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "curve25519-dalek 4.1.3": { + "name": "curve25519-dalek", + "version": "4.1.3", + "package_url": "https://github.com/dalek-cryptography/curve25519-dalek/tree/main/curve25519-dalek", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/curve25519-dalek/4.1.3/download", + "sha256": "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" + } + }, + "targets": [ + { + "Library": { + "crate_name": "curve25519_dalek", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "curve25519_dalek", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "precomputed-tables", + "zeroize" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "curve25519-dalek 4.1.3", + "target": "build_script_build" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + }, + { + "id": "zeroize 1.9.0", + "target": "zeroize" + } + ], + "selects": { + "cfg(curve25519_dalek_backend = \"fiat\")": [ + { + "id": "fiat-crypto 0.2.9", + "target": "fiat_crypto" + } + ], + "cfg(target_arch = \"x86_64\")": [ + { + "id": "cpufeatures 0.2.17", + "target": "cpufeatures" + } + ] + } + }, + "edition": "2021", + "proc_macro_deps": { + "common": [], + "selects": { + "cfg(all(not(curve25519_dalek_backend = \"fiat\"), not(curve25519_dalek_backend = \"serial\"), target_arch = \"x86_64\"))": [ + { + "id": "curve25519-dalek-derive 0.1.1", + "target": "curve25519_dalek_derive" + } + ] + } + }, + "version": "4.1.3" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "rustc_version 0.4.1", + "target": "rustc_version" + } + ], + "selects": {} + } + }, + "license": "BSD-3-Clause", + "license_ids": [ + "BSD-3-Clause" + ], + "license_file": "LICENSE" + }, + "curve25519-dalek-derive 0.1.1": { + "name": "curve25519-dalek-derive", + "version": "0.1.1", + "package_url": "https://github.com/dalek-cryptography/curve25519-dalek", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/curve25519-dalek-derive/0.1.1/download", + "sha256": "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "curve25519_dalek_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "curve25519_dalek_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "darling 0.20.11": { + "name": "darling", + "version": "0.20.11", + "package_url": "https://github.com/TedDriggs/darling", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/darling/0.20.11/download", + "sha256": "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" + } + }, + "targets": [ + { + "Library": { + "crate_name": "darling", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "darling", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "suggestions" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "darling_core 0.20.11", + "target": "darling_core" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "darling_macro 0.20.11", + "target": "darling_macro" + } + ], + "selects": {} + }, + "version": "0.20.11" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "darling 0.23.0": { + "name": "darling", + "version": "0.23.0", + "package_url": "https://github.com/TedDriggs/darling", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/darling/0.23.0/download", + "sha256": "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "darling", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "darling", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "suggestions" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "darling_core 0.23.0", + "target": "darling_core" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "darling_macro 0.23.0", + "target": "darling_macro" + } + ], + "selects": {} + }, + "version": "0.23.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "darling_core 0.20.11": { + "name": "darling_core", + "version": "0.20.11", + "package_url": "https://github.com/TedDriggs/darling", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/darling_core/0.20.11/download", + "sha256": "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "darling_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "darling_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "strsim", + "suggestions" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "fnv 1.0.7", + "target": "fnv" + }, + { + "id": "ident_case 1.0.1", + "target": "ident_case" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "strsim 0.11.1", + "target": "strsim" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.20.11" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "darling_core 0.23.0": { + "name": "darling_core", + "version": "0.23.0", + "package_url": "https://github.com/TedDriggs/darling", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/darling_core/0.23.0/download", + "sha256": "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "darling_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "darling_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "strsim", + "suggestions" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "ident_case 1.0.1", + "target": "ident_case" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "strsim 0.11.1", + "target": "strsim" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.23.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "darling_macro 0.20.11": { + "name": "darling_macro", + "version": "0.20.11", + "package_url": "https://github.com/TedDriggs/darling", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/darling_macro/0.20.11/download", + "sha256": "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "darling_macro", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "darling_macro", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "darling_core 0.20.11", + "target": "darling_core" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.20.11" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "darling_macro 0.23.0": { + "name": "darling_macro", + "version": "0.23.0", + "package_url": "https://github.com/TedDriggs/darling", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/darling_macro/0.23.0/download", + "sha256": "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "darling_macro", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "darling_macro", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "darling_core 0.23.0", + "target": "darling_core" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.23.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "dashmap 6.2.1": { + "name": "dashmap", + "version": "6.2.1", + "package_url": "https://github.com/xacrimon/dashmap", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/dashmap/6.2.1/download", + "sha256": "e6361d5c062261c78a176addb82d4c821ae42bed6089de0e12603cd25de2059c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "dashmap", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "dashmap", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "crossbeam-utils 0.8.22", + "target": "crossbeam_utils" + }, + { + "id": "hashbrown 0.14.5", + "target": "hashbrown" + }, + { + "id": "lock_api 0.4.14", + "target": "lock_api" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "parking_lot_core 0.9.12", + "target": "parking_lot_core" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "6.2.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "data-encoding 2.11.0": { + "name": "data-encoding", + "version": "2.11.0", + "package_url": "https://github.com/ia0/data-encoding", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/data-encoding/2.11.0/download", + "sha256": "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "data_encoding", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "data_encoding", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "2.11.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "data-encoding-macro 0.1.20": { + "name": "data-encoding-macro", + "version": "0.1.20", + "package_url": "https://github.com/ia0/data-encoding", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/data-encoding-macro/0.1.20/download", + "sha256": "3259c913752a86488b501ed8680446a5ed2d5aeac6e596cb23ba3800768ea32c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "data_encoding_macro", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "data_encoding_macro", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "data-encoding 2.11.0", + "target": "data_encoding" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "data-encoding-macro-internal 0.1.18", + "target": "data_encoding_macro_internal" + } + ], + "selects": {} + }, + "version": "0.1.20" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "data-encoding-macro-internal 0.1.18": { + "name": "data-encoding-macro-internal", + "version": "0.1.18", + "package_url": "https://github.com/ia0/data-encoding", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/data-encoding-macro-internal/0.1.18/download", + "sha256": "ccc2776f0c61eca1ca32528f85548abd1a4be8fb53d1b21c013e4f18da1e7090" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "data_encoding_macro_internal", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "data_encoding_macro_internal", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "data-encoding 2.11.0", + "target": "data_encoding" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.18" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "defmt 1.1.1": { + "name": "defmt", + "version": "1.1.1", + "package_url": "https://github.com/knurling-rs/defmt", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/defmt/1.1.1/download", + "sha256": "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "defmt", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "defmt", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 1.3.2", + "target": "bitflags" + }, + { + "id": "defmt 1.1.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "defmt-macros 1.1.1", + "target": "defmt_macros" + } + ], + "selects": {} + }, + "version": "1.1.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "links": "defmt" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "defmt-macros 1.1.1": { + "name": "defmt-macros", + "version": "1.1.1", + "package_url": "https://github.com/knurling-rs/defmt", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/defmt-macros/1.1.1/download", + "sha256": "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "defmt_macros", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "defmt_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "defmt-macros 1.1.1", + "target": "build_script_build" + }, + { + "id": "defmt-parser 1.0.0", + "target": "defmt_parser" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.1.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "defmt-parser 1.0.0": { + "name": "defmt-parser", + "version": "1.0.0", + "package_url": "https://github.com/knurling-rs/defmt", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/defmt-parser/1.0.0/download", + "sha256": "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "defmt_parser", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "defmt_parser", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "thiserror 2.0.19", + "target": "thiserror" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "der 0.7.10": { + "name": "der", + "version": "0.7.10", + "package_url": "https://github.com/RustCrypto/formats/tree/master/der", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/der/0.7.10/download", + "sha256": "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "der", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "der", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "oid", + "pem", + "std", + "zeroize" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "const-oid 0.9.6", + "target": "const_oid" + }, + { + "id": "pem-rfc7468 0.7.0", + "target": "pem_rfc7468" + }, + { + "id": "zeroize 1.9.0", + "target": "zeroize" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.10" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "der-parser 9.0.0": { + "name": "der-parser", + "version": "9.0.0", + "package_url": "https://github.com/rusticata/der-parser.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/der-parser/9.0.0/download", + "sha256": "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" + } + }, + "targets": [ + { + "Library": { + "crate_name": "der_parser", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "der_parser", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "bigint", + "default", + "num-bigint", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "asn1-rs 0.6.2", + "target": "asn1_rs" + }, + { + "id": "nom 7.1.3", + "target": "nom" + }, + { + "id": "num-bigint 0.4.8", + "target": "num_bigint" + }, + { + "id": "num-traits 0.2.19", + "target": "num_traits" + }, + { + "id": "rusticata-macros 4.1.0", + "target": "rusticata_macros" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "9.0.0" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "deranged 0.5.8": { + "name": "deranged", + "version": "0.5.8", + "package_url": "https://github.com/jhpratt/deranged", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/deranged/0.5.8/download", + "sha256": "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "deranged", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "deranged", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.8" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-Apache" + }, + "diff 0.1.13": { + "name": "diff", + "version": "0.1.13", + "package_url": "https://github.com/utkarshkukreti/diff.rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/diff/0.1.13/download", + "sha256": "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "diff", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "diff", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "0.1.13" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "digest 0.10.7": { + "name": "digest", + "version": "0.10.7", + "package_url": "https://github.com/RustCrypto/traits", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/digest/0.10.7/download", + "sha256": "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" + } + }, + "targets": [ + { + "Library": { + "crate_name": "digest", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "digest", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "block-buffer", + "const-oid", + "core-api", + "default", + "mac", + "oid", + "std", + "subtle" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "block-buffer 0.10.4", + "target": "block_buffer" + }, + { + "id": "const-oid 0.9.6", + "target": "const_oid" + }, + { + "id": "crypto-common 0.1.7", + "target": "crypto_common" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.10.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "digest 0.11.3": { + "name": "digest", + "version": "0.11.3", + "package_url": "https://github.com/RustCrypto/traits", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/digest/0.11.3/download", + "sha256": "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "digest", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "digest", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "block-api", + "default", + "oid" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "block-buffer 0.12.1", + "target": "block_buffer" + }, + { + "id": "const-oid 0.10.2", + "target": "const_oid" + }, + { + "id": "crypto-common 0.2.2", + "target": "crypto_common", + "alias": "common" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.11.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "dispatch2 0.3.1": { + "name": "dispatch2", + "version": "0.3.1", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/dispatch2/0.3.1/download", + "sha256": "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" + } + }, + "targets": [ + { + "Library": { + "crate_name": "dispatch2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "dispatch2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "block2", + "default", + "libc", + "objc2", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "block2 0.6.2", + "target": "block2" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.1" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "displaydoc 0.2.6": { + "name": "displaydoc", + "version": "0.2.6", + "package_url": "https://github.com/yaahc/displaydoc", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/displaydoc/0.2.6/download", + "sha256": "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "displaydoc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "displaydoc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.6" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "dlib 0.5.3": { + "name": "dlib", + "version": "0.5.3", + "package_url": "https://github.com/elinorbgr/dlib", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/dlib/0.5.3/download", + "sha256": "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "dlib", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "dlib", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libloading 0.8.9", + "target": "libloading" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "dns-lookup 3.0.1": { + "name": "dns-lookup", + "version": "3.0.1", + "package_url": "https://github.com/keeperofdakeys/dns-lookup/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/dns-lookup/3.0.1/download", + "sha256": "6e39034cee21a2f5bbb66ba0e3689819c4bb5d00382a282006e802a7ffa6c41d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "dns_lookup", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "dns_lookup", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "socket2 0.6.5", + "target": "socket2" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.60.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "3.0.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "downcast-rs 1.2.1": { + "name": "downcast-rs", + "version": "1.2.1", + "package_url": "https://github.com/marcianx/downcast-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/downcast-rs/1.2.1/download", + "sha256": "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "downcast_rs", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "downcast_rs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2015", + "version": "1.2.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "drm 0.14.1": { + "name": "drm", + "version": "0.14.1", + "package_url": "https://github.com/Smithay/drm-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/drm/0.14.1/download", + "sha256": "80bc8c5c6c2941f70a55c15f8d9f00f9710ebda3ffda98075f996a0e6c92756f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "drm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "drm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "bytemuck 1.25.2", + "target": "bytemuck" + }, + { + "id": "drm-ffi 0.9.1", + "target": "drm_ffi" + }, + { + "id": "drm-fourcc 2.2.0", + "target": "drm_fourcc" + }, + { + "id": "rustix 0.38.44", + "target": "rustix" + } + ], + "selects": { + "cfg(target_os = \"freebsd\")": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2021", + "version": "0.14.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "drm 0.15.0": { + "name": "drm", + "version": "0.15.0", + "package_url": "https://github.com/Smithay/drm-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/drm/0.15.0/download", + "sha256": "7a41816e58f47f49acfd956651055ddcf137c4882c2098c30c448817af21183a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "drm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "drm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "bytemuck 1.25.2", + "target": "bytemuck" + }, + { + "id": "drm-ffi 0.9.1", + "target": "drm_ffi" + }, + { + "id": "drm-fourcc 2.2.0", + "target": "drm_fourcc" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "selects": { + "cfg(any(target_os = \"freebsd\", target_os = \"dragonfly\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "bytemuck_derive 1.11.0", + "target": "bytemuck_derive" + } + ], + "selects": {} + }, + "version": "0.15.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "drm-ffi 0.9.1": { + "name": "drm-ffi", + "version": "0.9.1", + "package_url": "https://github.com/Smithay/drm-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/drm-ffi/0.9.1/download", + "sha256": "51a91c9b32ac4e8105dec255e849e0d66e27d7c34d184364fb93e469db08f690" + } + }, + "targets": [ + { + "Library": { + "crate_name": "drm_ffi", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "drm_ffi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "drm-sys 0.8.1", + "target": "drm_sys" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "drm-fourcc 2.2.0": { + "name": "drm-fourcc", + "version": "2.2.0", + "package_url": "https://github.com/danielzfranklin/drm-fourcc-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/drm-fourcc/2.2.0/download", + "sha256": "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "drm_fourcc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "drm_fourcc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "drm-fourcc 2.2.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "2.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "drm-sys 0.8.1": { + "name": "drm-sys", + "version": "0.8.1", + "package_url": "https://github.com/Smithay/drm-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/drm-sys/0.8.1/download", + "sha256": "ecc8e1361066d91f5ffccff060a3c3be9c3ecde15be2959c1937595f7a82a9f8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "drm_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "drm_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "drm-sys 0.8.1", + "target": "build_script_build" + } + ], + "selects": { + "cfg(any(target_os = \"android\", target_os = \"linux\"))": [ + { + "id": "linux-raw-sys 0.9.4", + "target": "linux_raw_sys" + } + ], + "cfg(not(any(target_os = \"android\", target_os = \"linux\")))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2021", + "version": "0.8.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "dtls 0.17.2": { + "name": "dtls", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/dtls", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/dtls/0.17.2/download", + "sha256": "01a431e87fc386bd5e02deb554a013f97bc406e47a7d8e97efb7c6366b980e9c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "dtls", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "dtls", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "aes 0.8.4", + "target": "aes" + }, + { + "id": "aes-gcm 0.10.3", + "target": "aes_gcm" + }, + { + "id": "bytecheck 0.8.2", + "target": "bytecheck" + }, + { + "id": "byteorder 1.5.0", + "target": "byteorder" + }, + { + "id": "cbc 0.1.2", + "target": "cbc" + }, + { + "id": "ccm 0.5.0", + "target": "ccm" + }, + { + "id": "chacha20poly1305 0.10.1", + "target": "chacha20poly1305" + }, + { + "id": "der-parser 9.0.0", + "target": "der_parser" + }, + { + "id": "hmac 0.12.1", + "target": "hmac" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "p256 0.13.2", + "target": "p256" + }, + { + "id": "p384 0.13.1", + "target": "p384" + }, + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "rand_core 0.6.4", + "target": "rand_core" + }, + { + "id": "rcgen 0.13.2", + "target": "rcgen" + }, + { + "id": "ring 0.17.14", + "target": "ring" + }, + { + "id": "rkyv 0.8.17", + "target": "rkyv" + }, + { + "id": "rustls 0.23.42", + "target": "rustls" + }, + { + "id": "sec1 0.7.3", + "target": "sec1" + }, + { + "id": "sha1 0.10.7", + "target": "sha1" + }, + { + "id": "sha2 0.10.9", + "target": "sha2" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + }, + { + "id": "x25519-dalek 2.0.1", + "target": "x25519_dalek" + }, + { + "id": "x509-parser 0.16.0", + "target": "x509_parser" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "async-trait 0.1.91", + "target": "async_trait" + } + ], + "selects": {} + }, + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "dunce 1.0.5": { + "name": "dunce", + "version": "1.0.5", + "package_url": "https://gitlab.com/kornelski/dunce", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/dunce/1.0.5/download", + "sha256": "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + } + }, + "targets": [ + { + "Library": { + "crate_name": "dunce", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "dunce", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "1.0.5" + }, + "license": "CC0-1.0 OR MIT-0 OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "CC0-1.0", + "MIT-0" + ], + "license_file": "LICENSE" + }, + "dyn-clone 1.0.20": { + "name": "dyn-clone", + "version": "1.0.20", + "package_url": "https://github.com/dtolnay/dyn-clone", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/dyn-clone/1.0.20/download", + "sha256": "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + } + }, + "targets": [ + { + "Library": { + "crate_name": "dyn_clone", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "dyn_clone", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "1.0.20" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ecdsa 0.16.9": { + "name": "ecdsa", + "version": "0.16.9", + "package_url": "https://github.com/RustCrypto/signatures/tree/master/ecdsa", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ecdsa/0.16.9/download", + "sha256": "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ecdsa", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ecdsa", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "arithmetic", + "der", + "digest", + "hazmat", + "pem", + "pkcs8", + "rfc6979", + "signing", + "spki", + "std", + "verifying" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "der 0.7.10", + "target": "der" + }, + { + "id": "digest 0.10.7", + "target": "digest" + }, + { + "id": "elliptic-curve 0.13.8", + "target": "elliptic_curve" + }, + { + "id": "rfc6979 0.4.0", + "target": "rfc6979" + }, + { + "id": "signature 2.2.0", + "target": "signature" + }, + { + "id": "spki 0.7.3", + "target": "spki" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.16.9" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "either 1.17.0": { + "name": "either", + "version": "1.17.0", + "package_url": "https://github.com/rayon-rs/either", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/either/1.17.0/download", + "sha256": "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "either", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "either", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std", + "use_std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.17.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "elliptic-curve 0.13.8": { + "name": "elliptic-curve", + "version": "0.13.8", + "package_url": "https://github.com/RustCrypto/traits/tree/master/elliptic-curve", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/elliptic-curve/0.13.8/download", + "sha256": "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" + } + }, + "targets": [ + { + "Library": { + "crate_name": "elliptic_curve", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "elliptic_curve", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "arithmetic", + "digest", + "ecdh", + "ff", + "group", + "hazmat", + "pem", + "pkcs8", + "sec1", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "base16ct 0.2.0", + "target": "base16ct" + }, + { + "id": "crypto-bigint 0.5.5", + "target": "crypto_bigint" + }, + { + "id": "digest 0.10.7", + "target": "digest" + }, + { + "id": "ff 0.13.1", + "target": "ff" + }, + { + "id": "generic-array 0.14.7", + "target": "generic_array" + }, + { + "id": "group 0.13.0", + "target": "group" + }, + { + "id": "hkdf 0.12.4", + "target": "hkdf" + }, + { + "id": "pem-rfc7468 0.7.0", + "target": "pem_rfc7468" + }, + { + "id": "pkcs8 0.10.2", + "target": "pkcs8" + }, + { + "id": "rand_core 0.6.4", + "target": "rand_core" + }, + { + "id": "sec1 0.7.3", + "target": "sec1" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + }, + { + "id": "zeroize 1.9.0", + "target": "zeroize" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.8" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "encode_unicode 1.0.0": { + "name": "encode_unicode", + "version": "1.0.0", + "package_url": "https://github.com/tormol/encode_unicode", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/encode_unicode/1.0.0/download", + "sha256": "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "encode_unicode", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "encode_unicode", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "encoding_rs 0.8.35": { + "name": "encoding_rs", + "version": "0.8.35", + "package_url": "https://github.com/hsivonen/encoding_rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/encoding_rs/0.8.35/download", + "sha256": "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "encoding_rs", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "encoding_rs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.8.35" + }, + "license": "(Apache-2.0 OR MIT) AND BSD-3-Clause", + "license_ids": [ + "Apache-2.0", + "BSD-3-Clause", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "encoding_rs_io 0.1.7": { + "name": "encoding_rs_io", + "version": "0.1.7", + "package_url": "https://github.com/BurntSushi/encoding_rs_io", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/encoding_rs_io/0.1.7/download", + "sha256": "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83" + } + }, + "targets": [ + { + "Library": { + "crate_name": "encoding_rs_io", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "encoding_rs_io", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "encoding_rs 0.8.35", + "target": "encoding_rs" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.1.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "endi 1.1.1": { + "name": "endi", + "version": "1.1.1", + "package_url": "https://github.com/zeenix/endi", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/endi/1.1.1/download", + "sha256": "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" + } + }, + "targets": [ + { + "Library": { + "crate_name": "endi", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "endi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.1.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE-MIT" + }, + "enigo 0.6.1": { + "name": "enigo", + "version": "0.6.1", + "package_url": "https://github.com/enigo-rs/enigo", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/enigo/0.6.1/download", + "sha256": "71c6c56e50f7acae2906a0dcbb34529ca647e40421119ad5d12e7f8ba6e50010" + } + }, + "targets": [ + { + "Library": { + "crate_name": "enigo", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "enigo", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "log 0.4.33", + "target": "log" + } + ], + "selects": { + "cfg(all(unix, not(target_os = \"macos\")))": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "xkbcommon 0.9.0", + "target": "xkbcommon" + }, + { + "id": "xkeysym 0.2.1", + "target": "xkeysym" + } + ], + "cfg(target_os = \"macos\")": [ + { + "id": "core-foundation 0.10.1", + "target": "core_foundation" + }, + { + "id": "core-graphics 0.25.0", + "target": "core_graphics" + }, + { + "id": "foreign-types-shared 0.3.1", + "target": "foreign_types_shared" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-app-kit 0.3.2", + "target": "objc2_app_kit" + }, + { + "id": "objc2-foundation 0.3.2", + "target": "objc2_foundation" + } + ], + "cfg(target_os = \"windows\")": [ + { + "id": "windows 0.61.3", + "target": "windows" + } + ] + } + }, + "edition": "2024", + "version": "0.6.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "enumflags2 0.7.12": { + "name": "enumflags2", + "version": "0.7.12", + "package_url": "https://github.com/meithecatte/enumflags2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/enumflags2/0.7.12/download", + "sha256": "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" + } + }, + "targets": [ + { + "Library": { + "crate_name": "enumflags2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "enumflags2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "serde" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "serde 1.0.229", + "target": "serde" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "enumflags2_derive 0.7.12", + "target": "enumflags2_derive" + } + ], + "selects": {} + }, + "version": "0.7.12" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "enumflags2_derive 0.7.12": { + "name": "enumflags2_derive", + "version": "0.7.12", + "package_url": "https://github.com/meithecatte/enumflags2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/enumflags2_derive/0.7.12/download", + "sha256": "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "enumflags2_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "enumflags2_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.7.12" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "equivalent 1.0.2": { + "name": "equivalent", + "version": "1.0.2", + "package_url": "https://github.com/indexmap-rs/equivalent", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/equivalent/1.0.2/download", + "sha256": "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "equivalent", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "equivalent", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "1.0.2" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "errno 0.3.14": { + "name": "errno", + "version": "0.3.14", + "package_url": "https://github.com/lambda-fairy/rust-errno", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/errno/0.3.14/download", + "sha256": "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "errno", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "errno", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": { + "aarch64-apple-darwin": [ + "default" + ], + "aarch64-unknown-linux-gnu": [ + "default" + ], + "aarch64-unknown-linux-musl": [ + "default" + ], + "x86_64-apple-darwin": [ + "default" + ], + "x86_64-unknown-linux-gnu": [ + "default" + ], + "x86_64-unknown-linux-musl": [ + "default" + ] + } + }, + "deps": { + "common": [], + "selects": { + "cfg(target_os = \"hermit\")": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(target_os = \"wasi\")": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2018", + "version": "0.3.14" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "error-code 3.3.2": { + "name": "error-code", + "version": "3.3.2", + "package_url": "https://github.com/DoumanAsh/error-code", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/error-code/3.3.2/download", + "sha256": "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" + } + }, + "targets": [ + { + "Library": { + "crate_name": "error_code", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "error_code", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "3.3.2" + }, + "license": "BSL-1.0", + "license_ids": [ + "BSL-1.0" + ], + "license_file": "LICENSE" + }, + "event-listener 5.4.1": { + "name": "event-listener", + "version": "5.4.1", + "package_url": "https://github.com/smol-rs/event-listener", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/event-listener/5.4.1/download", + "sha256": "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" + } + }, + "targets": [ + { + "Library": { + "crate_name": "event_listener", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "event_listener", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "concurrent-queue 2.5.0", + "target": "concurrent_queue" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "5.4.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "event-listener-strategy 0.5.4": { + "name": "event-listener-strategy", + "version": "0.5.4", + "package_url": "https://github.com/smol-rs/event-listener-strategy", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/event-listener-strategy/0.5.4/download", + "sha256": "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" + } + }, + "targets": [ + { + "Library": { + "crate_name": "event_listener_strategy", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "event_listener_strategy", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "event-listener 5.4.1", + "target": "event_listener" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.4" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "faccess 0.2.4": { + "name": "faccess", + "version": "0.2.4", + "package_url": "https://github.com/Freaky/faccess", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/faccess/0.2.4/download", + "sha256": "59ae66425802d6a903e268ae1a08b8c38ba143520f227a205edf4e9c7e3e26d5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "faccess", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "faccess", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 1.3.2", + "target": "bitflags" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "winapi 0.3.9", + "target": "winapi" + } + ] + } + }, + "edition": "2018", + "version": "0.2.4" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "fancy-regex 0.16.2": { + "name": "fancy-regex", + "version": "0.16.2", + "package_url": "https://github.com/fancy-regex/fancy-regex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fancy-regex/0.16.2/download", + "sha256": "998b056554fbe42e03ae0e152895cd1a7e1002aec800fdc6635d20270260c46f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fancy_regex", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fancy_regex", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "perf", + "std", + "unicode" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bit-set 0.8.0", + "target": "bit_set" + }, + { + "id": "regex-automata 0.4.16", + "target": "regex_automata" + }, + { + "id": "regex-syntax 0.8.11", + "target": "regex_syntax" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.16.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "fancy-regex 0.17.0": { + "name": "fancy-regex", + "version": "0.17.0", + "package_url": "https://github.com/fancy-regex/fancy-regex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fancy-regex/0.17.0/download", + "sha256": "72cf461f865c862bb7dc573f643dd6a2b6842f7c30b07882b56bd148cc2761b8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fancy_regex", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fancy_regex", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "perf", + "std", + "unicode", + "variable-lookbehinds" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bit-set 0.8.0", + "target": "bit_set" + }, + { + "id": "regex-automata 0.4.16", + "target": "regex_automata" + }, + { + "id": "regex-syntax 0.8.11", + "target": "regex_syntax" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.17.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "fancy-regex 0.18.0": { + "name": "fancy-regex", + "version": "0.18.0", + "package_url": "https://github.com/fancy-regex/fancy-regex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fancy-regex/0.18.0/download", + "sha256": "e1e1dacd0d2082dfcf1351c4bdd566bbe89a2b263235a2b50058f1e130a47277" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fancy_regex", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fancy_regex", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "perf", + "std", + "unicode", + "variable-lookbehinds" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bit-set 0.8.0", + "target": "bit_set" + }, + { + "id": "regex-automata 0.4.16", + "target": "regex_automata" + }, + { + "id": "regex-syntax 0.8.11", + "target": "regex_syntax" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.18.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "fast-srgb8 1.0.0": { + "name": "fast-srgb8", + "version": "1.0.0", + "package_url": "https://github.com/thomcc/fast-srgb8", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fast-srgb8/1.0.0/download", + "sha256": "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fast_srgb8", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fast_srgb8", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "1.0.0" + }, + "license": "MIT OR Apache-2.0 OR CC0-1.0", + "license_ids": [ + "Apache-2.0", + "CC0-1.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "fastrand 2.5.0": { + "name": "fastrand", + "version": "2.5.0", + "package_url": "https://github.com/smol-rs/fastrand", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fastrand/2.5.0/download", + "sha256": "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fastrand", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fastrand", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "2.5.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "fax 0.2.7": { + "name": "fax", + "version": "0.2.7", + "package_url": "https://github.com/pdf-rs/fax", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fax/0.2.7/download", + "sha256": "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fax", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fax", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.2.7" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "fdeflate 0.3.7": { + "name": "fdeflate", + "version": "0.3.7", + "package_url": "https://github.com/image-rs/fdeflate", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fdeflate/0.3.7/download", + "sha256": "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fdeflate", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fdeflate", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "simd-adler32 0.3.10", + "target": "simd_adler32" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ff 0.13.1": { + "name": "ff", + "version": "0.13.1", + "package_url": "https://github.com/zkcrypto/ff", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ff/0.13.1/download", + "sha256": "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ff", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ff", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "rand_core 0.6.4", + "target": "rand_core" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "fiat-crypto 0.2.9": { + "name": "fiat-crypto", + "version": "0.2.9", + "package_url": "https://github.com/mit-plv/fiat-crypto", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fiat-crypto/0.2.9/download", + "sha256": "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fiat_crypto", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fiat_crypto", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.2.9" + }, + "license": "MIT OR Apache-2.0 OR BSD-1-Clause", + "license_ids": [ + "Apache-2.0", + "BSD-1-Clause", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "filedescriptor 0.8.3": { + "name": "filedescriptor", + "version": "0.8.3", + "package_url": "https://github.com/wezterm/wezterm", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/filedescriptor/0.8.3/download", + "sha256": "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "filedescriptor", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "filedescriptor", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + } + ], + "selects": { + "cfg(windows)": [ + { + "id": "winapi 0.3.9", + "target": "winapi" + } + ] + } + }, + "edition": "2018", + "version": "0.8.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.md" + }, + "filetime 0.2.29": { + "name": "filetime", + "version": "0.2.29", + "package_url": "https://github.com/alexcrichton/filetime", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/filetime/0.2.29/download", + "sha256": "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" + } + }, + "targets": [ + { + "Library": { + "crate_name": "filetime", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "filetime", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2018", + "version": "0.2.29" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "find-msvc-tools 0.1.9": { + "name": "find-msvc-tools", + "version": "0.1.9", + "package_url": "https://github.com/rust-lang/cc-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/find-msvc-tools/0.1.9/download", + "sha256": "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + } + }, + "targets": [ + { + "Library": { + "crate_name": "find_msvc_tools", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "find_msvc_tools", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.1.9" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "fixed_decimal 0.7.2": { + "name": "fixed_decimal", + "version": "0.7.2", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fixed_decimal/0.7.2/download", + "sha256": "79c3c892f121fff406e5dd6b28c1b30096b95111c30701a899d4f2b18da6d1bd" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fixed_decimal", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fixed_decimal", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "smallvec 1.15.2", + "target": "smallvec" + }, + { + "id": "writeable 0.6.3", + "target": "writeable" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "0.7.2" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "fixedbitset 0.5.7": { + "name": "fixedbitset", + "version": "0.5.7", + "package_url": "https://github.com/petgraph/fixedbitset", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fixedbitset/0.5.7/download", + "sha256": "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fixedbitset", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fixedbitset", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.5.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "flate2 1.1.9": { + "name": "flate2", + "version": "1.1.9", + "package_url": "https://github.com/rust-lang/flate2-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/flate2/1.1.9/download", + "sha256": "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "flate2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "flate2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "any_impl", + "default", + "miniz_oxide", + "rust_backend" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "crc32fast 1.5.0", + "target": "crc32fast" + }, + { + "id": "miniz_oxide 0.8.9", + "target": "miniz_oxide" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.1.9" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "fluent 0.17.0": { + "name": "fluent", + "version": "0.17.0", + "package_url": "https://github.com/projectfluent/fluent-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fluent/0.17.0/download", + "sha256": "8137a6d5a2c50d6b0ebfcb9aaa91a28154e0a70605f112d30cb0cd4a78670477" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fluent", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fluent", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "fluent-bundle 0.16.0", + "target": "fluent_bundle" + }, + { + "id": "unic-langid 0.9.6", + "target": "unic_langid" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.17.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "fluent-bundle 0.16.0": { + "name": "fluent-bundle", + "version": "0.16.0", + "package_url": "https://github.com/projectfluent/fluent-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fluent-bundle/0.16.0/download", + "sha256": "01203cb8918f5711e73891b347816d932046f95f54207710bda99beaeb423bf4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fluent_bundle", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fluent_bundle", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "fluent-langneg 0.13.1", + "target": "fluent_langneg" + }, + { + "id": "fluent-syntax 0.12.0", + "target": "fluent_syntax" + }, + { + "id": "intl-memoizer 0.5.3", + "target": "intl_memoizer" + }, + { + "id": "intl_pluralrules 7.0.2", + "target": "intl_pluralrules" + }, + { + "id": "rustc-hash 2.1.3", + "target": "rustc_hash" + }, + { + "id": "self_cell 1.3.0", + "target": "self_cell" + }, + { + "id": "smallvec 1.15.2", + "target": "smallvec" + }, + { + "id": "unic-langid 0.9.6", + "target": "unic_langid" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.16.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "fluent-langneg 0.13.1": { + "name": "fluent-langneg", + "version": "0.13.1", + "package_url": "https://github.com/projectfluent/fluent-langneg-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fluent-langneg/0.13.1/download", + "sha256": "7eebbe59450baee8282d71676f3bfed5689aeab00b27545e83e5f14b1195e8b0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fluent_langneg", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fluent_langneg", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "unic-langid 0.9.6", + "target": "unic_langid" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.13.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "fluent-syntax 0.12.0": { + "name": "fluent-syntax", + "version": "0.12.0", + "package_url": "https://github.com/projectfluent/fluent-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fluent-syntax/0.12.0/download", + "sha256": "54f0d287c53ffd184d04d8677f590f4ac5379785529e5e08b1c8083acdd5c198" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fluent_syntax", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fluent_syntax", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.12.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "flume 0.11.1": { + "name": "flume", + "version": "0.11.1", + "package_url": "https://github.com/zesterer/flume", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/flume/0.11.1/download", + "sha256": "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" + } + }, + "targets": [ + { + "Library": { + "crate_name": "flume", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "flume", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "async", + "default", + "eventual-fairness", + "futures-core", + "futures-sink", + "nanorand", + "select" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "futures-core 0.3.33", + "target": "futures_core" + }, + { + "id": "futures-sink 0.3.33", + "target": "futures_sink" + }, + { + "id": "nanorand 0.7.0", + "target": "nanorand" + }, + { + "id": "spin 0.9.9", + "target": "spin", + "alias": "spin1" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.11.1" + }, + "license": "Apache-2.0/MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "fnv 1.0.7": { + "name": "fnv", + "version": "1.0.7", + "package_url": "https://github.com/servo/rust-fnv", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fnv/1.0.7/download", + "sha256": "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fnv", + "crate_root": "lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fnv", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2015", + "version": "1.0.7" + }, + "license": "Apache-2.0 / MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "foldhash 0.1.5": { + "name": "foldhash", + "version": "0.1.5", + "package_url": "https://github.com/orlp/foldhash", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/foldhash/0.1.5/download", + "sha256": "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "foldhash", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "foldhash", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.1.5" + }, + "license": "Zlib", + "license_ids": [ + "Zlib" + ], + "license_file": "LICENSE" + }, + "foldhash 0.2.0": { + "name": "foldhash", + "version": "0.2.0", + "package_url": "https://github.com/orlp/foldhash", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/foldhash/0.2.0/download", + "sha256": "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "foldhash", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "foldhash", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.0" + }, + "license": "Zlib", + "license_ids": [ + "Zlib" + ], + "license_file": "LICENSE" + }, + "fontdue 0.9.3": { + "name": "fontdue", + "version": "0.9.3", + "package_url": "https://github.com/mooman219/fontdue", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fontdue/0.9.3/download", + "sha256": "2e57e16b3fe8ff4364c0661fdaac543fb38b29ea9bc9c2f45612d90adf931d2b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fontdue", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fontdue", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "ttf-parser 0.21.1", + "target": "ttf_parser" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.9.3" + }, + "license": "MIT OR Apache-2.0 OR Zlib", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": "LICENSE-APACHE" + }, + "foreign-types 0.5.0": { + "name": "foreign-types", + "version": "0.5.0", + "package_url": "https://github.com/sfackler/foreign-types", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/foreign-types/0.5.0/download", + "sha256": "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" + } + }, + "targets": [ + { + "Library": { + "crate_name": "foreign_types", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "foreign_types", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "foreign-types-shared 0.3.1", + "target": "foreign_types_shared" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "foreign-types-macros 0.2.4", + "target": "foreign_types_macros" + } + ], + "selects": {} + }, + "version": "0.5.0" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "foreign-types-macros 0.2.4": { + "name": "foreign-types-macros", + "version": "0.2.4", + "package_url": "https://github.com/sfackler/foreign-types", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/foreign-types-macros/0.2.4/download", + "sha256": "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "foreign_types_macros", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "foreign_types_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 3.0.3", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.4" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "foreign-types-shared 0.3.1": { + "name": "foreign-types-shared", + "version": "0.3.1", + "package_url": "https://github.com/sfackler/foreign-types", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/foreign-types-shared/0.3.1/download", + "sha256": "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "foreign_types_shared", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "foreign_types_shared", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.3.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "form_urlencoded 1.2.2": { + "name": "form_urlencoded", + "version": "1.2.2", + "package_url": "https://github.com/servo/rust-url", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/form_urlencoded/1.2.2/download", + "sha256": "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" + } + }, + "targets": [ + { + "Library": { + "crate_name": "form_urlencoded", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "form_urlencoded", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "percent-encoding 2.3.2", + "target": "percent_encoding" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.2.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "fs_extra 1.3.0": { + "name": "fs_extra", + "version": "1.3.0", + "package_url": "https://github.com/webdesus/fs_extra", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fs_extra/1.3.0/download", + "sha256": "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fs_extra", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fs_extra", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "1.3.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "fsevent-sys 4.1.0": { + "name": "fsevent-sys", + "version": "4.1.0", + "package_url": "https://github.com/octplane/fsevent-rust/tree/master/fsevent-sys", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/fsevent-sys/4.1.0/download", + "sha256": "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "fsevent_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "fsevent_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "4.1.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "funty 2.0.0": { + "name": "funty", + "version": "2.0.0", + "package_url": "https://github.com/myrrlyn/funty", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/funty/2.0.0/download", + "sha256": "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "funty", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "funty", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "2.0.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "futures 0.3.33": { + "name": "futures", + "version": "0.3.33", + "package_url": "https://github.com/rust-lang/futures-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/futures/0.3.33/download", + "sha256": "a88cf1f829d945f548cf8fec32c61b1f202b6d93b45848602fc02af4b12ad218" + } + }, + "targets": [ + { + "Library": { + "crate_name": "futures", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "futures", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "async-await", + "default", + "executor", + "futures-executor", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "futures-channel 0.3.33", + "target": "futures_channel" + }, + { + "id": "futures-core 0.3.33", + "target": "futures_core" + }, + { + "id": "futures-executor 0.3.33", + "target": "futures_executor" + }, + { + "id": "futures-io 0.3.33", + "target": "futures_io" + }, + { + "id": "futures-sink 0.3.33", + "target": "futures_sink" + }, + { + "id": "futures-task 0.3.33", + "target": "futures_task" + }, + { + "id": "futures-util 0.3.33", + "target": "futures_util" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.33" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "futures-channel 0.3.33": { + "name": "futures-channel", + "version": "0.3.33", + "package_url": "https://github.com/rust-lang/futures-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/futures-channel/0.3.33/download", + "sha256": "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" + } + }, + "targets": [ + { + "Library": { + "crate_name": "futures_channel", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "futures_channel", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "futures-sink", + "sink", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "futures-core 0.3.33", + "target": "futures_core" + }, + { + "id": "futures-sink 0.3.33", + "target": "futures_sink" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.33" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "futures-core 0.3.33": { + "name": "futures-core", + "version": "0.3.33", + "package_url": "https://github.com/rust-lang/futures-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/futures-core/0.3.33/download", + "sha256": "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "futures_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "futures_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.33" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "futures-executor 0.3.33": { + "name": "futures-executor", + "version": "0.3.33", + "package_url": "https://github.com/rust-lang/futures-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/futures-executor/0.3.33/download", + "sha256": "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458" + } + }, + "targets": [ + { + "Library": { + "crate_name": "futures_executor", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "futures_executor", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "futures-core 0.3.33", + "target": "futures_core" + }, + { + "id": "futures-task 0.3.33", + "target": "futures_task" + }, + { + "id": "futures-util 0.3.33", + "target": "futures_util" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.33" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "futures-io 0.3.33": { + "name": "futures-io", + "version": "0.3.33", + "package_url": "https://github.com/rust-lang/futures-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/futures-io/0.3.33/download", + "sha256": "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "futures_io", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "futures_io", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.33" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "futures-lite 2.6.1": { + "name": "futures-lite", + "version": "2.6.1", + "package_url": "https://github.com/smol-rs/futures-lite", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/futures-lite/2.6.1/download", + "sha256": "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" + } + }, + "targets": [ + { + "Library": { + "crate_name": "futures_lite", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "futures_lite", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "futures-core 0.3.33", + "target": "futures_core" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.6.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "futures-macro 0.3.33": { + "name": "futures-macro", + "version": "0.3.33", + "package_url": "https://github.com/rust-lang/futures-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/futures-macro/0.3.33/download", + "sha256": "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "futures_macro", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "futures_macro", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.33" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "futures-sink 0.3.33": { + "name": "futures-sink", + "version": "0.3.33", + "package_url": "https://github.com/rust-lang/futures-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/futures-sink/0.3.33/download", + "sha256": "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" + } + }, + "targets": [ + { + "Library": { + "crate_name": "futures_sink", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "futures_sink", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.33" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "futures-task 0.3.33": { + "name": "futures-task", + "version": "0.3.33", + "package_url": "https://github.com/rust-lang/futures-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/futures-task/0.3.33/download", + "sha256": "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" + } + }, + "targets": [ + { + "Library": { + "crate_name": "futures_task", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "futures_task", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.33" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "futures-timer 3.0.4": { + "name": "futures-timer", + "version": "3.0.4", + "package_url": "https://github.com/async-rs/futures-timer", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/futures-timer/3.0.4/download", + "sha256": "af43fadb8a98512d547e37b4e92e0ced13e205c061b87b4623eff01d918d6968" + } + }, + "targets": [ + { + "Library": { + "crate_name": "futures_timer", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "futures_timer", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "3.0.4" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "futures-util 0.3.33": { + "name": "futures-util", + "version": "0.3.33", + "package_url": "https://github.com/rust-lang/futures-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/futures-util/0.3.33/download", + "sha256": "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" + } + }, + "targets": [ + { + "Library": { + "crate_name": "futures_util", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "futures_util", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "async-await", + "async-await-macro", + "channel", + "default", + "futures-channel", + "futures-io", + "futures-macro", + "futures-sink", + "io", + "memchr", + "sink", + "slab", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "futures-channel 0.3.33", + "target": "futures_channel" + }, + { + "id": "futures-core 0.3.33", + "target": "futures_core" + }, + { + "id": "futures-io 0.3.33", + "target": "futures_io" + }, + { + "id": "futures-sink 0.3.33", + "target": "futures_sink" + }, + { + "id": "futures-task 0.3.33", + "target": "futures_task" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + }, + { + "id": "slab 0.4.12", + "target": "slab" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "futures-macro 0.3.33", + "target": "futures_macro" + } + ], + "selects": {} + }, + "version": "0.3.33" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "gbm 0.18.0": { + "name": "gbm", + "version": "0.18.0", + "package_url": "https://github.com/Smithay/gbm.rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/gbm/0.18.0/download", + "sha256": "ce852e998d3ca5e4a97014fb31c940dc5ef344ec7d364984525fd11e8a547e6a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "gbm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "gbm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "drm-fourcc 2.2.0", + "target": "drm_fourcc" + }, + { + "id": "gbm-sys 0.4.0", + "target": "gbm_sys" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.18.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "gbm-sys 0.4.0": { + "name": "gbm-sys", + "version": "0.4.0", + "package_url": "https://github.com/Drakulix/gbm.rs/tree/master/gbm-sys", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/gbm-sys/0.4.0/download", + "sha256": "c13a5f2acc785d8fb6bf6b7ab6bfb0ef5dad4f4d97e8e70bb8e470722312f76f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "gbm_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "gbm_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "gbm-sys 0.4.0", + "target": "build_script_build" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "generic-array 0.14.7": { + "name": "generic-array", + "version": "0.14.7", + "package_url": "https://github.com/fizyk20/generic-array.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/generic-array/0.14.7/download", + "sha256": "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "generic_array", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "generic_array", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "more_lengths", + "zeroize" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "generic-array 0.14.7", + "target": "build_script_build" + }, + { + "id": "typenum 1.20.1", + "target": "typenum" + }, + { + "id": "zeroize 1.9.0", + "target": "zeroize" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.14.7" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "version_check 0.9.5", + "target": "version_check" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "gethostname 1.1.0": { + "name": "gethostname", + "version": "1.1.0", + "package_url": "https://codeberg.org/swsnr/gethostname.rs.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/gethostname/1.1.0/download", + "sha256": "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "gethostname", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "gethostname", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(not(windows))": [ + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "cfg(windows)": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ] + } + }, + "edition": "2021", + "version": "1.1.0" + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "getrandom 0.2.17": { + "name": "getrandom", + "version": "0.2.17", + "package_url": "https://github.com/rust-random/getrandom", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/getrandom/0.2.17/download", + "sha256": "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "getrandom", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "getrandom", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "js", + "js-sys", + "rdrand", + "std", + "wasm-bindgen" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + } + ], + "selects": { + "cfg(target_os = \"wasi\")": [ + { + "id": "wasi 0.11.1+wasi-snapshot-preview1", + "target": "wasi" + } + ], + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2018", + "version": "0.2.17" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "getrandom 0.3.4": { + "name": "getrandom", + "version": "0.3.4", + "package_url": "https://github.com/rust-random/getrandom", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/getrandom/0.3.4/download", + "sha256": "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" + } + }, + "targets": [ + { + "Library": { + "crate_name": "getrandom", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "getrandom", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "getrandom 0.3.4", + "target": "build_script_build" + } + ], + "selects": { + "cfg(all(any(target_os = \"linux\", target_os = \"android\"), not(any(all(target_os = \"linux\", target_env = \"\"), getrandom_backend = \"custom\", getrandom_backend = \"linux_raw\", getrandom_backend = \"rdrand\", getrandom_backend = \"rndr\"))))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(all(target_arch = \"wasm32\", target_os = \"wasi\", target_env = \"p2\"))": [ + { + "id": "wasip2 1.0.4+wasi-0.2.12", + "target": "wasip2" + } + ], + "cfg(all(target_os = \"uefi\", getrandom_backend = \"efi_rng\"))": [ + { + "id": "r-efi 5.3.0", + "target": "r_efi" + } + ], + "cfg(any(target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"hurd\", target_os = \"illumos\", target_os = \"cygwin\", all(target_os = \"horizon\", target_arch = \"arm\")))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(any(target_os = \"haiku\", target_os = \"redox\", target_os = \"nto\", target_os = \"aix\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(any(target_os = \"ios\", target_os = \"visionos\", target_os = \"watchos\", target_os = \"tvos\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(any(target_os = \"macos\", target_os = \"openbsd\", target_os = \"vita\", target_os = \"emscripten\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(target_os = \"netbsd\")": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(target_os = \"solaris\")": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(target_os = \"vxworks\")": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2021", + "version": "0.3.4" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "getrandom 0.4.3": { + "name": "getrandom", + "version": "0.4.3", + "package_url": "https://github.com/rust-random/getrandom", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/getrandom/0.4.3/download", + "sha256": "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" + } + }, + "targets": [ + { + "Library": { + "crate_name": "getrandom", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "getrandom", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std", + "sys_rng" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "getrandom 0.4.3", + "target": "build_script_build" + }, + { + "id": "rand_core 0.10.1", + "target": "rand_core" + } + ], + "selects": { + "cfg(all(any(target_os = \"linux\", target_os = \"android\"), not(any(all(target_os = \"linux\", target_env = \"\"), getrandom_backend = \"custom\", getrandom_backend = \"linux_raw\", getrandom_backend = \"rdrand\", getrandom_backend = \"rndr\"))))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(all(target_os = \"uefi\", getrandom_backend = \"efi_rng\"))": [ + { + "id": "r-efi 6.0.0", + "target": "r_efi" + } + ], + "cfg(any(target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"hurd\", target_os = \"illumos\", target_os = \"cygwin\", all(target_os = \"horizon\", target_arch = \"arm\")))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(any(target_os = \"haiku\", target_os = \"redox\", target_os = \"nto\", target_os = \"aix\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(any(target_os = \"ios\", target_os = \"visionos\", target_os = \"watchos\", target_os = \"tvos\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(any(target_os = \"macos\", target_os = \"openbsd\", target_os = \"vita\", target_os = \"emscripten\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(target_os = \"netbsd\")": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(target_os = \"solaris\")": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(target_os = \"vxworks\")": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2024", + "version": "0.4.3" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ghash 0.5.1": { + "name": "ghash", + "version": "0.5.1", + "package_url": "https://github.com/RustCrypto/universal-hashes", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ghash/0.5.1/download", + "sha256": "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ghash", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ghash", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "opaque-debug 0.3.1", + "target": "opaque_debug" + }, + { + "id": "polyval 0.6.2", + "target": "polyval" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "gif 0.14.2": { + "name": "gif", + "version": "0.14.2", + "package_url": "https://github.com/image-rs/image-gif", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/gif/0.14.2/download", + "sha256": "ee8cfcc411d9adbbaba82fb72661cc1bcca13e8bba98b364e62b2dba8f960159" + } + }, + "targets": [ + { + "Library": { + "crate_name": "gif", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "gif", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "color_quant", + "default", + "raii_no_panic", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "color_quant 1.1.0", + "target": "color_quant" + }, + { + "id": "weezl 0.1.12", + "target": "weezl" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.14.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "gl 0.14.0": { + "name": "gl", + "version": "0.14.0", + "package_url": "https://github.com/brendanzab/gl-rs/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/gl/0.14.0/download", + "sha256": "a94edab108827d67608095e269cf862e60d920f144a5026d3dbcfd8b877fb404" + } + }, + "targets": [ + { + "Library": { + "crate_name": "gl", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "gl", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "gl 0.14.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.14.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "gl_generator 0.14.0", + "target": "gl_generator" + } + ], + "selects": {} + } + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": null + }, + "gl_generator 0.14.0": { + "name": "gl_generator", + "version": "0.14.0", + "package_url": "https://github.com/brendanzab/gl-rs/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/gl_generator/0.14.0/download", + "sha256": "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "gl_generator", + "crate_root": "lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "gl_generator", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "khronos_api 3.1.0", + "target": "khronos_api" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "xml-rs 0.8.28", + "target": "xml" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.14.0" + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": null + }, + "glob 0.3.4": { + "name": "glob", + "version": "0.3.4", + "package_url": "https://github.com/rust-lang/glob", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/glob/0.3.4/download", + "sha256": "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "glob", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "glob", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.3.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "globset 0.4.19": { + "name": "globset", + "version": "0.4.19", + "package_url": "https://github.com/BurntSushi/ripgrep/tree/master/crates/globset", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/globset/0.4.19/download", + "sha256": "e47d37d2ae4464254884b60ab7071be2b876a9c35b696bd018ddcc76847309cd" + } + }, + "targets": [ + { + "Library": { + "crate_name": "globset", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "globset", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "log" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "aho-corasick 1.1.4", + "target": "aho_corasick" + }, + { + "id": "bstr 1.13.0", + "target": "bstr" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "regex-automata 0.4.16", + "target": "regex_automata" + }, + { + "id": "regex-syntax 0.8.11", + "target": "regex_syntax" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.4.19" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "grep-cli 0.1.12": { + "name": "grep-cli", + "version": "0.1.12", + "package_url": "https://github.com/BurntSushi/ripgrep/tree/master/crates/cli", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/grep-cli/0.1.12/download", + "sha256": "cf32d263c5d5cc2a23ce587097f5ddafdb188492ba2e6fb638eaccdc22453631" + } + }, + "targets": [ + { + "Library": { + "crate_name": "grep_cli", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "grep_cli", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bstr 1.13.0", + "target": "bstr" + }, + { + "id": "globset 0.4.19", + "target": "globset" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "termcolor 1.4.1", + "target": "termcolor" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "winapi-util 0.1.11", + "target": "winapi_util" + } + ] + } + }, + "edition": "2024", + "version": "0.1.12" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "grep-matcher 0.1.9": { + "name": "grep-matcher", + "version": "0.1.9", + "package_url": "https://github.com/BurntSushi/ripgrep/tree/master/crates/matcher", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/grep-matcher/0.1.9/download", + "sha256": "f9417543f4870fc8f1c8e1af870afae2431007626d9e703fce6471c468d33847" + } + }, + "targets": [ + { + "Library": { + "crate_name": "grep_matcher", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "grep_matcher", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "memchr 2.8.3", + "target": "memchr" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.1.9" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "grep-pcre2 0.1.10": { + "name": "grep-pcre2", + "version": "0.1.10", + "package_url": "https://github.com/BurntSushi/ripgrep/tree/master/crates/pcre2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/grep-pcre2/0.1.10/download", + "sha256": "b752bb6f57dd3716e55b63a33ca05b5825c3d66cd427468874a5564af6ca365c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "grep_pcre2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "grep_pcre2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "grep-matcher 0.1.9", + "target": "grep_matcher" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "pcre2 0.2.11", + "target": "pcre2" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.1.10" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "grep-printer 0.3.1": { + "name": "grep-printer", + "version": "0.3.1", + "package_url": "https://github.com/BurntSushi/ripgrep/tree/master/crates/printer", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/grep-printer/0.3.1/download", + "sha256": "fd76035e87871f51c1ee5b793e32122b3ccf9c692662d9622ef1686ff5321acb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "grep_printer", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "grep_printer", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "serde" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bstr 1.13.0", + "target": "bstr" + }, + { + "id": "grep-matcher 0.1.9", + "target": "grep_matcher" + }, + { + "id": "grep-searcher 0.1.17", + "target": "grep_searcher" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "serde_json 1.0.151", + "target": "serde_json" + }, + { + "id": "termcolor 1.4.1", + "target": "termcolor" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.3.1" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "grep-regex 0.1.14": { + "name": "grep-regex", + "version": "0.1.14", + "package_url": "https://github.com/BurntSushi/ripgrep/tree/master/crates/regex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/grep-regex/0.1.14/download", + "sha256": "0ce0c256c3ad82bcc07b812c15a45ec1d398122e8e15124f96695234db7112ef" + } + }, + "targets": [ + { + "Library": { + "crate_name": "grep_regex", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "grep_regex", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bstr 1.13.0", + "target": "bstr" + }, + { + "id": "grep-matcher 0.1.9", + "target": "grep_matcher" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "regex-automata 0.4.16", + "target": "regex_automata" + }, + { + "id": "regex-syntax 0.8.11", + "target": "regex_syntax" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.1.14" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "grep-searcher 0.1.17": { + "name": "grep-searcher", + "version": "0.1.17", + "package_url": "https://github.com/BurntSushi/ripgrep/tree/master/crates/searcher", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/grep-searcher/0.1.17/download", + "sha256": "72348823a0eafc4bc2e9051064f28b5b42cc100b571b3a35d67918d711efcbc6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "grep_searcher", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "grep_searcher", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bstr 1.13.0", + "target": "bstr" + }, + { + "id": "encoding_rs 0.8.35", + "target": "encoding_rs" + }, + { + "id": "encoding_rs_io 0.1.7", + "target": "encoding_rs_io" + }, + { + "id": "grep-matcher 0.1.9", + "target": "grep_matcher" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "memmap2 0.9.11", + "target": "memmap2", + "alias": "memmap" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.1.17" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "group 0.13.0": { + "name": "group", + "version": "0.13.0", + "package_url": "https://github.com/zkcrypto/group", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/group/0.13.0/download", + "sha256": "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" + } + }, + "targets": [ + { + "Library": { + "crate_name": "group", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "group", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "ff 0.13.1", + "target": "ff" + }, + { + "id": "rand_core 0.6.4", + "target": "rand_core" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.0" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "half 2.7.1": { + "name": "half", + "version": "2.7.1", + "package_url": "https://github.com/VoidStarKat/half-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/half/2.7.1/download", + "sha256": "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "half", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "half", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "zerocopy 0.8.55", + "target": "zerocopy" + } + ], + "selects": { + "cfg(target_arch = \"spirv\")": [ + { + "id": "crunchy 0.2.4", + "target": "crunchy" + } + ] + } + }, + "edition": "2021", + "version": "2.7.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "hashbrown 0.14.5": { + "name": "hashbrown", + "version": "0.14.5", + "package_url": "https://github.com/rust-lang/hashbrown", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/hashbrown/0.14.5/download", + "sha256": "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "hashbrown", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "hashbrown", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "raw" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.14.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "hashbrown 0.15.5": { + "name": "hashbrown", + "version": "0.15.5", + "package_url": "https://github.com/rust-lang/hashbrown", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/hashbrown/0.15.5/download", + "sha256": "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "hashbrown", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "hashbrown", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "allocator-api2", + "default", + "default-hasher", + "equivalent", + "inline-more", + "raw-entry" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "allocator-api2 0.2.21", + "target": "allocator_api2" + }, + { + "id": "equivalent 1.0.2", + "target": "equivalent" + }, + { + "id": "foldhash 0.1.5", + "target": "foldhash" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.15.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "hashbrown 0.16.1": { + "name": "hashbrown", + "version": "0.16.1", + "package_url": "https://github.com/rust-lang/hashbrown", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/hashbrown/0.16.1/download", + "sha256": "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + } + }, + "targets": [ + { + "Library": { + "crate_name": "hashbrown", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "hashbrown", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "allocator-api2", + "default", + "default-hasher", + "equivalent", + "inline-more", + "raw-entry" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "allocator-api2 0.2.21", + "target": "allocator_api2" + }, + { + "id": "equivalent 1.0.2", + "target": "equivalent" + }, + { + "id": "foldhash 0.2.0", + "target": "foldhash" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.16.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "hashbrown 0.17.1": { + "name": "hashbrown", + "version": "0.17.1", + "package_url": "https://github.com/rust-lang/hashbrown", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/hashbrown/0.17.1/download", + "sha256": "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "hashbrown", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "hashbrown", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2024", + "version": "0.17.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "heck 0.5.0": { + "name": "heck", + "version": "0.5.0", + "package_url": "https://github.com/withoutboats/heck", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/heck/0.5.0/download", + "sha256": "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + } + }, + "targets": [ + { + "Library": { + "crate_name": "heck", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "heck", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.5.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "hermit-abi 0.5.2": { + "name": "hermit-abi", + "version": "0.5.2", + "package_url": "https://github.com/hermit-os/hermit-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/hermit-abi/0.5.2/download", + "sha256": "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "hermit_abi", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "hermit_abi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.5.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "hex 0.4.3": { + "name": "hex", + "version": "0.4.3", + "package_url": "https://github.com/KokaKiwi/rust-hex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/hex/0.4.3/download", + "sha256": "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + } + }, + "targets": [ + { + "Library": { + "crate_name": "hex", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "hex", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.4.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "hifijson 0.2.3": { + "name": "hifijson", + "version": "0.2.3", + "package_url": "https://github.com/01mf02/hifijson", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/hifijson/0.2.3/download", + "sha256": "0a7763b98ba8a24f59e698bf9ab197e7676c640d6455d1580b4ce7dc560f0f0d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "hifijson", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "hifijson", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "hkdf 0.12.4": { + "name": "hkdf", + "version": "0.12.4", + "package_url": "https://github.com/RustCrypto/KDFs/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/hkdf/0.12.4/download", + "sha256": "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "hkdf", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "hkdf", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "hmac 0.12.1", + "target": "hmac" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.12.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "hmac 0.12.1": { + "name": "hmac", + "version": "0.12.1", + "package_url": "https://github.com/RustCrypto/MACs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/hmac/0.12.1/download", + "sha256": "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "hmac", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "hmac", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "reset", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "digest 0.10.7", + "target": "digest" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.12.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "hostname 0.4.2": { + "name": "hostname", + "version": "0.4.2", + "package_url": "https://github.com/djc/hostname", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/hostname/0.4.2/download", + "sha256": "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" + } + }, + "targets": [ + { + "Library": { + "crate_name": "hostname", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "hostname", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + } + ], + "selects": { + "cfg(any(unix, target_os = \"redox\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(target_os = \"windows\")": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ] + } + }, + "edition": "2021", + "version": "0.4.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "html-escape 0.2.14": { + "name": "html-escape", + "version": "0.2.14", + "package_url": "https://github.com/magiclen/html-escape", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/html-escape/0.2.14/download", + "sha256": "46c1ff2d1cbf39efe5af0900ced8a069b5e61557a17544eb0c4a50239937389e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "html_escape", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "html_escape", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.14" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "html-to-markdown-rs 2.30.0": { + "name": "html-to-markdown-rs", + "version": "2.30.0", + "package_url": "https://github.com/kreuzberg-dev/html-to-markdown", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/html-to-markdown-rs/2.30.0/download", + "sha256": "7ea41945a2fd834381642a000ef75b03f0030f3023f3dd3291fc5c372d3dda33" + } + }, + "targets": [ + { + "Library": { + "crate_name": "html_to_markdown_rs", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "html_to_markdown_rs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "ahash 0.8.12", + "target": "ahash" + }, + { + "id": "astral-tl 0.7.11", + "target": "tl" + }, + { + "id": "base64 0.22.1", + "target": "base64" + }, + { + "id": "html-escape 0.2.14", + "target": "html_escape" + }, + { + "id": "html5ever 0.39.0", + "target": "html5ever" + }, + { + "id": "lru 0.16.4", + "target": "lru" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "2.30.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "html5ever 0.39.0": { + "name": "html5ever", + "version": "0.39.0", + "package_url": "https://github.com/servo/html5ever", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/html5ever/0.39.0/download", + "sha256": "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "html5ever", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "html5ever", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "markup5ever 0.39.0", + "target": "markup5ever" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.39.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "hybrid-array 0.4.13": { + "name": "hybrid-array", + "version": "0.4.13", + "package_url": "https://github.com/RustCrypto/hybrid-array", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/hybrid-array/0.4.13/download", + "sha256": "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "hybrid_array", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "hybrid_array", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "typenum 1.20.1", + "target": "typenum" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.4.13" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "iana-time-zone 0.1.65": { + "name": "iana-time-zone", + "version": "0.1.65", + "package_url": "https://github.com/strawlab/iana-time-zone", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/iana-time-zone/0.1.65/download", + "sha256": "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" + } + }, + "targets": [ + { + "Library": { + "crate_name": "iana_time_zone", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "iana_time_zone", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [], + "selects": { + "aarch64-apple-darwin": [ + "fallback" + ], + "aarch64-unknown-linux-gnu": [ + "fallback" + ], + "aarch64-unknown-linux-musl": [ + "fallback" + ], + "x86_64-apple-darwin": [ + "fallback" + ], + "x86_64-unknown-linux-gnu": [ + "fallback" + ], + "x86_64-unknown-linux-musl": [ + "fallback" + ] + } + }, + "deps": { + "common": [], + "selects": { + "cfg(all(target_arch = \"wasm32\", target_os = \"unknown\"))": [ + { + "id": "js-sys 0.3.103", + "target": "js_sys" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "wasm-bindgen 0.2.126", + "target": "wasm_bindgen" + } + ], + "cfg(target_os = \"android\")": [ + { + "id": "android_system_properties 0.1.5", + "target": "android_system_properties" + } + ], + "cfg(target_os = \"haiku\")": [ + { + "id": "iana-time-zone-haiku 0.1.2", + "target": "iana_time_zone_haiku" + } + ], + "cfg(target_os = \"windows\")": [ + { + "id": "windows-core 0.62.2", + "target": "windows_core" + } + ], + "cfg(target_vendor = \"apple\")": [ + { + "id": "core-foundation-sys 0.8.7", + "target": "core_foundation_sys" + } + ] + } + }, + "edition": "2021", + "version": "0.1.65" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "iana-time-zone-haiku 0.1.2": { + "name": "iana-time-zone-haiku", + "version": "0.1.2", + "package_url": "https://github.com/strawlab/iana-time-zone", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/iana-time-zone-haiku/0.1.2/download", + "sha256": "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "iana_time_zone_haiku", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "iana_time_zone_haiku", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "iana-time-zone-haiku 0.1.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + } + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "icu_calendar 2.2.1": { + "name": "icu_calendar", + "version": "2.2.1", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_calendar/2.2.1/download", + "sha256": "a2b2acc6263f494f1df50685b53ff8e57869e47d5c6fe39c23d518ae9a4f3e45" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_calendar", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_calendar", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "compiled_data" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "calendrical_calculations 0.2.4", + "target": "calendrical_calculations" + }, + { + "id": "icu_calendar_data 2.2.0", + "target": "icu_calendar_data" + }, + { + "id": "icu_locale 2.2.0", + "target": "icu_locale" + }, + { + "id": "icu_locale_core 2.2.0", + "target": "icu_locale_core" + }, + { + "id": "icu_provider 2.2.0", + "target": "icu_provider" + }, + { + "id": "tinystr 0.8.3", + "target": "tinystr" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "2.2.1" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_calendar_data 2.2.0": { + "name": "icu_calendar_data", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_calendar_data/2.2.0/download", + "sha256": "118577bcf3a0fa7c6ac0a7d6e951814da84ee56b9b1f68fb4d8d10b08cefaf4d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_calendar_data", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_calendar_data", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "icu_calendar_data 2.2.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_collator 2.2.1": { + "name": "icu_collator", + "version": "2.2.1", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_collator/2.2.1/download", + "sha256": "8bbdf98e5e0aa827770acee171ebb568aaab975a36b56afdb5fd0e2f525750bb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_collator", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_collator", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "compiled_data" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "icu_collator_data 2.2.0", + "target": "icu_collator_data" + }, + { + "id": "icu_collections 2.2.0", + "target": "icu_collections" + }, + { + "id": "icu_locale 2.2.0", + "target": "icu_locale" + }, + { + "id": "icu_locale_core 2.2.0", + "target": "icu_locale_core" + }, + { + "id": "icu_normalizer 2.2.0", + "target": "icu_normalizer" + }, + { + "id": "icu_properties 2.2.0", + "target": "icu_properties" + }, + { + "id": "icu_provider 2.2.0", + "target": "icu_provider" + }, + { + "id": "smallvec 1.15.2", + "target": "smallvec" + }, + { + "id": "utf16_iter 1.0.5", + "target": "utf16_iter" + }, + { + "id": "utf8_iter 1.0.4", + "target": "utf8_iter" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.1" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_collator_data 2.2.0": { + "name": "icu_collator_data", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_collator_data/2.2.0/download", + "sha256": "038ed8e5817f2059c2f3efb0945ba78d060d3d25e8f1a1bea5139f821a21a2f0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_collator_data", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_collator_data", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "icu_collator_data 2.2.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_collections 2.2.0": { + "name": "icu_collections", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_collections/2.2.0/download", + "sha256": "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_collections", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_collections", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "potential_utf 0.1.5", + "target": "potential_utf" + }, + { + "id": "utf8_iter 1.0.4", + "target": "utf8_iter" + }, + { + "id": "yoke 0.8.3", + "target": "yoke" + }, + { + "id": "zerofrom 0.1.8", + "target": "zerofrom" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "2.2.0" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_datetime 2.2.0": { + "name": "icu_datetime", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_datetime/2.2.0/download", + "sha256": "989d56ea5bbc43ae2b4e0388874b002884eaf4ed3a76c84a6c8c5ad575e04d72" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_datetime", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_datetime", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "compiled_data" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "fixed_decimal 0.7.2", + "target": "fixed_decimal" + }, + { + "id": "icu_calendar 2.2.1", + "target": "icu_calendar" + }, + { + "id": "icu_datetime_data 2.2.0", + "target": "icu_datetime_data" + }, + { + "id": "icu_decimal 2.2.0", + "target": "icu_decimal" + }, + { + "id": "icu_locale 2.2.0", + "target": "icu_locale" + }, + { + "id": "icu_locale_core 2.2.0", + "target": "icu_locale_core" + }, + { + "id": "icu_pattern 0.4.2", + "target": "icu_pattern" + }, + { + "id": "icu_plurals 2.2.0", + "target": "icu_plurals" + }, + { + "id": "icu_provider 2.2.0", + "target": "icu_provider" + }, + { + "id": "icu_time 2.2.0", + "target": "icu_time" + }, + { + "id": "potential_utf 0.1.5", + "target": "potential_utf" + }, + { + "id": "tinystr 0.8.3", + "target": "tinystr" + }, + { + "id": "writeable 0.6.3", + "target": "writeable" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "2.2.0" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_datetime_data 2.2.0": { + "name": "icu_datetime_data", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_datetime_data/2.2.0/download", + "sha256": "40d3cc1b690d9703202bc319692ac8a1f3a6390686f0930ff40542450fa34f0b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_datetime_data", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_datetime_data", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "icu_datetime_data 2.2.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_decimal 2.2.0": { + "name": "icu_decimal", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_decimal/2.2.0/download", + "sha256": "288247df2e32aa776ac54fdd64de552149ac43cb840f2761811f0e8d09719dd4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_decimal", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_decimal", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "compiled_data" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "fixed_decimal 0.7.2", + "target": "fixed_decimal" + }, + { + "id": "icu_decimal_data 2.2.0", + "target": "icu_decimal_data" + }, + { + "id": "icu_locale 2.2.0", + "target": "icu_locale" + }, + { + "id": "icu_locale_core 2.2.0", + "target": "icu_locale_core" + }, + { + "id": "icu_provider 2.2.0", + "target": "icu_provider" + }, + { + "id": "writeable 0.6.3", + "target": "writeable" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "2.2.0" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_decimal_data 2.2.0": { + "name": "icu_decimal_data", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_decimal_data/2.2.0/download", + "sha256": "6f14a5ca9e8af29eef62064f269078424283d90dbaffeac5225addf62aaabc22" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_decimal_data", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_decimal_data", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "icu_decimal_data 2.2.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_locale 2.2.0": { + "name": "icu_locale", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_locale/2.2.0/download", + "sha256": "d5a396343c7208121dc86e35623d3dfe19814a7613cfd14964994cdc9c9a2e26" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_locale", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_locale", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "compiled_data" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "icu_collections 2.2.0", + "target": "icu_collections" + }, + { + "id": "icu_locale_core 2.2.0", + "target": "icu_locale_core" + }, + { + "id": "icu_locale_data 2.2.0", + "target": "icu_locale_data" + }, + { + "id": "icu_provider 2.2.0", + "target": "icu_provider" + }, + { + "id": "potential_utf 0.1.5", + "target": "potential_utf" + }, + { + "id": "tinystr 0.8.3", + "target": "tinystr" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_locale_core 2.2.0": { + "name": "icu_locale_core", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_locale_core/2.2.0/download", + "sha256": "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_locale_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_locale_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "zerovec" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "litemap 0.8.2", + "target": "litemap" + }, + { + "id": "tinystr 0.8.3", + "target": "tinystr" + }, + { + "id": "writeable 0.6.3", + "target": "writeable" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "2.2.0" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_locale_data 2.2.0": { + "name": "icu_locale_data", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_locale_data/2.2.0/download", + "sha256": "d5fdcc9ac77c6d74ff5cf6e65ef3181d6af32003b16fce3a77fb451d2f695993" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_locale_data", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_locale_data", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "icu_locale_data 2.2.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_normalizer 2.2.0": { + "name": "icu_normalizer", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_normalizer/2.2.0/download", + "sha256": "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_normalizer", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_normalizer", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "compiled_data", + "utf16_iter", + "utf8_iter" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "icu_collections 2.2.0", + "target": "icu_collections" + }, + { + "id": "icu_normalizer_data 2.2.0", + "target": "icu_normalizer_data" + }, + { + "id": "icu_provider 2.2.0", + "target": "icu_provider" + }, + { + "id": "smallvec 1.15.2", + "target": "smallvec" + }, + { + "id": "utf16_iter 1.0.5", + "target": "utf16_iter" + }, + { + "id": "utf8_iter 1.0.4", + "target": "utf8_iter" + }, + { + "id": "write16 1.0.0", + "target": "write16" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_normalizer_data 2.2.0": { + "name": "icu_normalizer_data", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_normalizer_data/2.2.0/download", + "sha256": "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_normalizer_data", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_normalizer_data", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "icu_normalizer_data 2.2.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_pattern 0.4.2": { + "name": "icu_pattern", + "version": "0.4.2", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_pattern/0.4.2/download", + "sha256": "1c4c568054ffe735398a9f4c55aec37ad7c768844553cc0978f09cc9b933a1fb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_pattern", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_pattern", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "zerovec" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "either 1.17.0", + "target": "either" + }, + { + "id": "writeable 0.6.3", + "target": "writeable" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "0.4.2" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_plurals 2.2.0": { + "name": "icu_plurals", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_plurals/2.2.0/download", + "sha256": "2a50023f1d49ad5c4333380328a0d4a19e4b9d6d842ec06639affd5ba47c8103" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_plurals", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_plurals", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "compiled_data" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "fixed_decimal 0.7.2", + "target": "fixed_decimal" + }, + { + "id": "icu_locale 2.2.0", + "target": "icu_locale" + }, + { + "id": "icu_plurals_data 2.2.0", + "target": "icu_plurals_data" + }, + { + "id": "icu_provider 2.2.0", + "target": "icu_provider" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_plurals_data 2.2.0": { + "name": "icu_plurals_data", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_plurals_data/2.2.0/download", + "sha256": "8485497155dc865f901decb93ecc20d3e467df67bfeceb91e3ba34e2b11e8e1d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_plurals_data", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_plurals_data", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "icu_plurals_data 2.2.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_properties 2.2.0": { + "name": "icu_properties", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_properties/2.2.0/download", + "sha256": "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_properties", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_properties", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "compiled_data" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "icu_collections 2.2.0", + "target": "icu_collections" + }, + { + "id": "icu_locale_core 2.2.0", + "target": "icu_locale_core" + }, + { + "id": "icu_properties_data 2.2.0", + "target": "icu_properties_data" + }, + { + "id": "icu_provider 2.2.0", + "target": "icu_provider" + }, + { + "id": "zerotrie 0.2.4", + "target": "zerotrie" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_properties_data 2.2.0": { + "name": "icu_properties_data", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_properties_data/2.2.0/download", + "sha256": "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_properties_data", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_properties_data", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "icu_properties_data 2.2.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_provider 2.2.0": { + "name": "icu_provider", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_provider/2.2.0/download", + "sha256": "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_provider", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_provider", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "baked" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "icu_locale_core 2.2.0", + "target": "icu_locale_core" + }, + { + "id": "stable_deref_trait 1.2.1", + "target": "stable_deref_trait" + }, + { + "id": "writeable 0.6.3", + "target": "writeable" + }, + { + "id": "yoke 0.8.3", + "target": "yoke" + }, + { + "id": "zerofrom 0.1.8", + "target": "zerofrom" + }, + { + "id": "zerotrie 0.2.4", + "target": "zerotrie" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "2.2.0" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_time 2.2.0": { + "name": "icu_time", + "version": "2.2.0", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_time/2.2.0/download", + "sha256": "ec3af0c141da0a61d4f6970cd1d5f4b388b17ea22f8124f8f6049d3d5147586a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_time", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_time", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "compiled_data" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "calendrical_calculations 0.2.4", + "target": "calendrical_calculations" + }, + { + "id": "icu_calendar 2.2.1", + "target": "icu_calendar" + }, + { + "id": "icu_locale_core 2.2.0", + "target": "icu_locale_core" + }, + { + "id": "icu_provider 2.2.0", + "target": "icu_provider" + }, + { + "id": "icu_time_data 2.2.1", + "target": "icu_time_data" + }, + { + "id": "zerotrie 0.2.4", + "target": "zerotrie" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "2.2.0" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icu_time_data 2.2.1": { + "name": "icu_time_data", + "version": "2.2.1", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icu_time_data/2.2.1/download", + "sha256": "2e0ee79a0bb29772465234bfbad6ea04fbc5220bef9fa4f318cc53eb8897070e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icu_time_data", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icu_time_data", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "icu_time_data 2.2.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "icy_sixel 0.5.0": { + "name": "icy_sixel", + "version": "0.5.0", + "package_url": "https://github.com/mkrueger/icy_sixel", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/icy_sixel/0.5.0/download", + "sha256": "85518b9086bf01117761b90e7691c0ef3236fa8adfb1fb44dd248fe5f87215d5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "icy_sixel", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "icy_sixel", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "quantette 0.5.1", + "target": "quantette" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "ident_case 1.0.1": { + "name": "ident_case", + "version": "1.0.1", + "package_url": "https://github.com/TedDriggs/ident_case", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ident_case/1.0.1/download", + "sha256": "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ident_case", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ident_case", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "1.0.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE" + }, + "idna 1.1.0": { + "name": "idna", + "version": "1.1.0", + "package_url": "https://github.com/servo/rust-url/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/idna/1.1.0/download", + "sha256": "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" + } + }, + "targets": [ + { + "Library": { + "crate_name": "idna", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "idna", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "compiled_data", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "idna_adapter 1.2.2", + "target": "idna_adapter" + }, + { + "id": "smallvec 1.15.2", + "target": "smallvec" + }, + { + "id": "utf8_iter 1.0.4", + "target": "utf8_iter" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.1.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "idna_adapter 1.2.2": { + "name": "idna_adapter", + "version": "1.2.2", + "package_url": "https://github.com/hsivonen/idna_adapter", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/idna_adapter/1.2.2/download", + "sha256": "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" + } + }, + "targets": [ + { + "Library": { + "crate_name": "idna_adapter", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "idna_adapter", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "compiled_data" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "icu_normalizer 2.2.0", + "target": "icu_normalizer" + }, + { + "id": "icu_properties 2.2.0", + "target": "icu_properties" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "1.2.2" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ignore 0.4.31": { + "name": "ignore", + "version": "0.4.31", + "package_url": "https://github.com/BurntSushi/ripgrep/tree/master/crates/ignore", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ignore/0.4.31/download", + "sha256": "7f8a7b8211e695a1d0cd91cace480d4d0bd57667ab10277cc412c5f7f4884f83" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ignore", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ignore", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "crossbeam-deque 0.8.7", + "target": "crossbeam_deque" + }, + { + "id": "globset 0.4.19", + "target": "globset" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "regex-automata 0.4.16", + "target": "regex_automata" + }, + { + "id": "same-file 1.0.6", + "target": "same_file" + }, + { + "id": "walkdir 2.5.0", + "target": "walkdir" + } + ], + "selects": { + "cfg(windows)": [ + { + "id": "winapi-util 0.1.11", + "target": "winapi_util" + } + ] + } + }, + "edition": "2024", + "version": "0.4.31" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "image 0.25.10": { + "name": "image", + "version": "0.25.10", + "package_url": "https://github.com/image-rs/image", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/image/0.25.10/download", + "sha256": "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" + } + }, + "targets": [ + { + "Library": { + "crate_name": "image", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "image", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "bmp", + "gif", + "jpeg", + "png", + "webp" + ], + "selects": { + "aarch64-apple-darwin": [ + "tiff" + ], + "x86_64-apple-darwin": [ + "tiff" + ] + } + }, + "deps": { + "common": [ + { + "id": "bytemuck 1.25.2", + "target": "bytemuck" + }, + { + "id": "byteorder-lite 0.1.0", + "target": "byteorder_lite" + }, + { + "id": "color_quant 1.1.0", + "target": "color_quant" + }, + { + "id": "gif 0.14.2", + "target": "gif" + }, + { + "id": "image-webp 0.2.4", + "target": "image_webp" + }, + { + "id": "moxcms 0.8.1", + "target": "moxcms" + }, + { + "id": "num-traits 0.2.19", + "target": "num_traits" + }, + { + "id": "png 0.18.1", + "target": "png" + }, + { + "id": "zune-core 0.5.1", + "target": "zune_core" + }, + { + "id": "zune-jpeg 0.5.15", + "target": "zune_jpeg" + } + ], + "selects": { + "aarch64-apple-darwin": [ + { + "id": "tiff 0.11.3", + "target": "tiff" + } + ], + "x86_64-apple-darwin": [ + { + "id": "tiff 0.11.3", + "target": "tiff" + } + ] + } + }, + "edition": "2021", + "version": "0.25.10" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "image-webp 0.2.4": { + "name": "image-webp", + "version": "0.2.4", + "package_url": "https://github.com/image-rs/image-webp", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/image-webp/0.2.4/download", + "sha256": "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "image_webp", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "image_webp", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "byteorder-lite 0.1.0", + "target": "byteorder_lite" + }, + { + "id": "quick-error 2.0.1", + "target": "quick_error" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "indenter 0.3.4": { + "name": "indenter", + "version": "0.3.4", + "package_url": "https://github.com/yaahc/indenter", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/indenter/0.3.4/download", + "sha256": "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "indenter", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "indenter", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "indexmap 2.14.0": { + "name": "indexmap", + "version": "2.14.0", + "package_url": "https://github.com/indexmap-rs/indexmap", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/indexmap/2.14.0/download", + "sha256": "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" + } + }, + "targets": [ + { + "Library": { + "crate_name": "indexmap", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "indexmap", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "equivalent 1.0.2", + "target": "equivalent" + }, + { + "id": "hashbrown 0.17.1", + "target": "hashbrown" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "2.14.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "indicatif 0.18.6": { + "name": "indicatif", + "version": "0.18.6", + "package_url": "https://github.com/console-rs/indicatif", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/indicatif/0.18.6/download", + "sha256": "9433806cd6b4ec1aba79c021c7e4c58fb4c3b9977c085062e611ac929998fb0c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "indicatif", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "indicatif", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "unicode-width", + "wasmbind" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "console 0.16.4", + "target": "console" + }, + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "unicode-width 0.2.2", + "target": "unicode_width" + }, + { + "id": "unit-prefix 0.5.2", + "target": "unit_prefix" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.18.6" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "inferno 0.12.8": { + "name": "inferno", + "version": "0.12.8", + "package_url": "https://github.com/jonhoo/inferno.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/inferno/0.12.8/download", + "sha256": "0c460d4fa06223667240720ab69a8045133755ae6dfbe100cf481b95e3a014f1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "inferno", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "inferno", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "ahash 0.8.12", + "target": "ahash" + }, + { + "id": "itoa 1.0.18", + "target": "itoa" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "num-format 0.4.4", + "target": "num_format" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "quick-xml 0.41.0", + "target": "quick_xml" + }, + { + "id": "rgb 0.8.53", + "target": "rgb" + }, + { + "id": "str_stack 0.1.1", + "target": "str_stack" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.12.8" + }, + "license": "CDDL-1.0", + "license_ids": [ + "CDDL-1.0" + ], + "license_file": "LICENSE" + }, + "inherent 1.0.14": { + "name": "inherent", + "version": "1.0.14", + "package_url": "https://github.com/dtolnay/inherent", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/inherent/1.0.14/download", + "sha256": "bee2c455ca60511a054699102d40ce7153621cb2429558f9eaa600e4499b5984" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "inherent", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "inherent", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 3.0.3", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.14" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "inotify 0.11.4": { + "name": "inotify", + "version": "0.11.4", + "package_url": "https://github.com/hannobraun/inotify-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/inotify/0.11.4/download", + "sha256": "153be1941a183ec9ccd095ddbe17a8b8d435ef6c76e9e02451b933c3999af2c8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "inotify", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "inotify", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "inotify-sys 0.1.8", + "target": "inotify_sys" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.11.4" + }, + "license": "ISC", + "license_ids": [ + "ISC" + ], + "license_file": "LICENSE" + }, + "inotify-sys 0.1.8": { + "name": "inotify-sys", + "version": "0.1.8", + "package_url": "https://github.com/hannobraun/inotify-sys", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/inotify-sys/0.1.8/download", + "sha256": "c033f80b2c113cdf91ab7a33faa9cbc014726dcad99880c8609af2a370edf37d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "inotify_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "inotify_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "inotify-sys 0.1.8", + "target": "build_script_build" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.1.8" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "ISC", + "license_ids": [ + "ISC" + ], + "license_file": "LICENSE" + }, + "inout 0.1.4": { + "name": "inout", + "version": "0.1.4", + "package_url": "https://github.com/RustCrypto/utils", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/inout/0.1.4/download", + "sha256": "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" + } + }, + "targets": [ + { + "Library": { + "crate_name": "inout", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "inout", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "block-padding" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "block-padding 0.3.3", + "target": "block_padding" + }, + { + "id": "generic-array 0.14.7", + "target": "generic_array" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "insta 1.48.0": { + "name": "insta", + "version": "1.48.0", + "package_url": "https://github.com/mitsuhiko/insta", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/insta/1.48.0/download", + "sha256": "86f0f8fee8c926415c58d6ae43a08523a26faccb2323f5e6b644fe7dd4ef6b82" + } + }, + "targets": [ + { + "Library": { + "crate_name": "insta", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "insta", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "colors", + "console", + "default", + "pest", + "pest_derive", + "redactions", + "serde" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "console 0.16.4", + "target": "console" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "pest 2.8.8", + "target": "pest" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "similar 2.7.0", + "target": "similar" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "pest_derive 2.8.8", + "target": "pest_derive" + } + ], + "selects": {} + }, + "version": "1.48.0" + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "interceptor 0.17.2": { + "name": "interceptor", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/interceptor", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/interceptor/0.17.2/download", + "sha256": "88c11a956a48159f7fe539b8198f12b4db9b709ae5f94385b840db38f97fed74" + } + }, + "targets": [ + { + "Library": { + "crate_name": "interceptor", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "interceptor", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "futures 0.3.33", + "target": "futures" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "rtcp 0.17.2", + "target": "rtcp" + }, + { + "id": "rtp 0.17.2", + "target": "rtp" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "waitgroup 0.1.2", + "target": "waitgroup" + }, + { + "id": "webrtc-srtp 0.17.2", + "target": "webrtc_srtp", + "alias": "srtp" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "async-trait 0.1.91", + "target": "async_trait" + } + ], + "selects": {} + }, + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "intl-memoizer 0.5.3": { + "name": "intl-memoizer", + "version": "0.5.3", + "package_url": "https://github.com/projectfluent/fluent-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/intl-memoizer/0.5.3/download", + "sha256": "310da2e345f5eb861e7a07ee182262e94975051db9e4223e909ba90f392f163f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "intl_memoizer", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "intl_memoizer", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "type-map 0.5.1", + "target": "type_map" + }, + { + "id": "unic-langid 0.9.6", + "target": "unic_langid" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.3" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "intl_pluralrules 7.0.2": { + "name": "intl_pluralrules", + "version": "7.0.2", + "package_url": "https://github.com/zbraniecki/pluralrules", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/intl_pluralrules/7.0.2/download", + "sha256": "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972" + } + }, + "targets": [ + { + "Library": { + "crate_name": "intl_pluralrules", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "intl_pluralrules", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "unic-langid 0.9.6", + "target": "unic_langid" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "7.0.2" + }, + "license": "Apache-2.0/MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "ipnet 2.12.0": { + "name": "ipnet", + "version": "2.12.0", + "package_url": "https://github.com/krisprice/ipnet", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ipnet/2.12.0/download", + "sha256": "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ipnet", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ipnet", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "2.12.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "is_terminal_polyfill 1.70.2": { + "name": "is_terminal_polyfill", + "version": "1.70.2", + "package_url": "https://github.com/polyfill-rs/is_terminal_polyfill", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/is_terminal_polyfill/1.70.2/download", + "sha256": "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + } + }, + "targets": [ + { + "Library": { + "crate_name": "is_terminal_polyfill", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "is_terminal_polyfill", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.70.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "itertools 0.13.0": { + "name": "itertools", + "version": "0.13.0", + "package_url": "https://github.com/rust-itertools/itertools", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/itertools/0.13.0/download", + "sha256": "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" + } + }, + "targets": [ + { + "Library": { + "crate_name": "itertools", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "itertools", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "either 1.17.0", + "target": "either" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.13.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "itertools 0.14.0": { + "name": "itertools", + "version": "0.14.0", + "package_url": "https://github.com/rust-itertools/itertools", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/itertools/0.14.0/download", + "sha256": "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" + } + }, + "targets": [ + { + "Library": { + "crate_name": "itertools", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "itertools", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "use_alloc", + "use_std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "either 1.17.0", + "target": "either" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.14.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "itoa 1.0.18": { + "name": "itoa", + "version": "1.0.18", + "package_url": "https://github.com/dtolnay/itoa", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/itoa/1.0.18/download", + "sha256": "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + } + }, + "targets": [ + { + "Library": { + "crate_name": "itoa", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "itoa", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "1.0.18" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "jaq 2.3.0": { + "name": "jaq", + "version": "2.3.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "jaq", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "jaq", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "codesnake 0.2.1", + "target": "codesnake" + }, + { + "id": "hifijson 0.2.3", + "target": "hifijson" + }, + { + "id": "jaq-core 2.2.1", + "target": "jaq_core" + }, + { + "id": "jaq-json 1.1.3", + "target": "jaq_json" + }, + { + "id": "jaq-std 2.1.2", + "target": "jaq_std" + }, + { + "id": "memmap2 0.9.11", + "target": "memmap2" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + }, + { + "id": "unicode-width 0.1.14", + "target": "unicode_width" + }, + { + "id": "yansi 1.0.1", + "target": "yansi" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "2.3.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "jaq-core 2.2.1": { + "name": "jaq-core", + "version": "2.2.1", + "package_url": "https://github.com/01mf02/jaq", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/jaq-core/2.2.1/download", + "sha256": "77526a72eb79412c29fd141767a6549bbfcb1cb40e00556fe16532d5e878e098" + } + }, + "targets": [ + { + "Library": { + "crate_name": "jaq_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "jaq_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "dyn-clone 1.0.20", + "target": "dyn_clone" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "typed-arena 2.0.2", + "target": "typed_arena" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "jaq-json 1.1.3": { + "name": "jaq-json", + "version": "1.1.3", + "package_url": "https://github.com/01mf02/jaq", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/jaq-json/1.1.3/download", + "sha256": "01dbdbd07b076e8403abac68ce7744d93e2ecd953bbc44bf77bf00e1e81172bc" + } + }, + "targets": [ + { + "Library": { + "crate_name": "jaq_json", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "jaq_json", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "hifijson", + "parse" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "foldhash 0.1.5", + "target": "foldhash" + }, + { + "id": "hifijson 0.2.3", + "target": "hifijson" + }, + { + "id": "indexmap 2.14.0", + "target": "indexmap" + }, + { + "id": "jaq-core 2.2.1", + "target": "jaq_core" + }, + { + "id": "jaq-std 2.1.2", + "target": "jaq_std" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.1.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "jaq-std 2.1.2": { + "name": "jaq-std", + "version": "2.1.2", + "package_url": "https://github.com/01mf02/jaq", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/jaq-std/2.1.2/download", + "sha256": "2c264fe397c981705976c71f1bfe020382b9eda52ae950e57fe885e147bdd67d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "jaq_std", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "jaq_std", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "aho-corasick", + "base64", + "chrono", + "default", + "format", + "libm", + "log", + "math", + "regex", + "regex-lite", + "std", + "time", + "urlencoding" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "aho-corasick 1.1.4", + "target": "aho_corasick" + }, + { + "id": "base64 0.22.1", + "target": "base64" + }, + { + "id": "chrono 0.4.45", + "target": "chrono" + }, + { + "id": "jaq-core 2.2.1", + "target": "jaq_core" + }, + { + "id": "libm 0.2.16", + "target": "libm" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "regex-lite 0.1.9", + "target": "regex_lite" + }, + { + "id": "urlencoding 2.1.3", + "target": "urlencoding" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.1.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "jiff 0.2.35": { + "name": "jiff", + "version": "0.2.35", + "package_url": "https://github.com/BurntSushi/jiff", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/jiff/0.2.35/download", + "sha256": "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc" + } + }, + "targets": [ + { + "Library": { + "crate_name": "jiff", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "jiff", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "perf-inline", + "std", + "tz-fat", + "tz-system", + "tzdb-bundle-platform", + "tzdb-concatenated", + "tzdb-zoneinfo" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "jiff-core 0.1.0", + "target": "jiff_core", + "alias": "jcore" + } + ], + "selects": { + "cfg(not(target_has_atomic = \"ptr\"))": [ + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "portable-atomic-util 0.2.7", + "target": "portable_atomic_util" + } + ], + "x86_64-pc-windows-msvc": [ + { + "id": "jiff-tzdb-platform 0.1.3", + "target": "jiff_tzdb_platform" + }, + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ] + } + }, + "edition": "2021", + "proc_macro_deps": { + "common": [], + "selects": { + "cfg(any())": [ + { + "id": "jiff-static 0.2.35", + "target": "jiff_static" + } + ] + } + }, + "version": "0.2.35" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "jiff-core 0.1.0": { + "name": "jiff-core", + "version": "0.1.0", + "package_url": "https://github.com/BurntSushi/jiff", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/jiff-core/0.1.0/download", + "sha256": "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09" + } + }, + "targets": [ + { + "Library": { + "crate_name": "jiff_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "jiff_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std", + "tz-fat" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.0" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "jiff-icu 0.2.2": { + "name": "jiff-icu", + "version": "0.2.2", + "package_url": "https://github.com/BurntSushi/jiff", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/jiff-icu/0.2.2/download", + "sha256": "0e67c2beaae8b10a82d849b9aabb698a43a682f32b17bcdc035d5ecadb44d646" + } + }, + "targets": [ + { + "Library": { + "crate_name": "jiff_icu", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "jiff_icu", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std", + "time", + "zoned" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "icu_calendar 2.2.1", + "target": "icu_calendar" + }, + { + "id": "icu_time 2.2.0", + "target": "icu_time" + }, + { + "id": "jiff 0.2.35", + "target": "jiff" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.2" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "jiff-static 0.2.35": { + "name": "jiff-static", + "version": "0.2.35", + "package_url": "https://github.com/BurntSushi/jiff", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/jiff-static/0.2.35/download", + "sha256": "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "jiff_static", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "jiff_static", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "jiff-core 0.1.0", + "target": "jiff_core", + "alias": "jcore" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.35" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "jiff-tzdb 0.1.8": { + "name": "jiff-tzdb", + "version": "0.1.8", + "package_url": "https://github.com/BurntSushi/jiff", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/jiff-tzdb/0.1.8/download", + "sha256": "142bd39932ad231f10513df9ab62661fead8719872150b7ad02a2df79f4e141e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "jiff_tzdb", + "crate_root": "lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "jiff_tzdb", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.1.8" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "jiff-tzdb-platform 0.1.3": { + "name": "jiff-tzdb-platform", + "version": "0.1.3", + "package_url": "https://github.com/BurntSushi/jiff", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/jiff-tzdb-platform/0.1.3/download", + "sha256": "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "jiff_tzdb_platform", + "crate_root": "lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "jiff_tzdb_platform", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "jiff-tzdb 0.1.8", + "target": "jiff_tzdb" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.3" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "jobserver 0.1.35": { + "name": "jobserver", + "version": "0.1.35", + "package_url": "https://github.com/rust-lang/jobserver-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/jobserver/0.1.35/download", + "sha256": "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "jobserver", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "jobserver", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "getrandom 0.4.3", + "target": "getrandom" + } + ] + } + }, + "edition": "2021", + "version": "0.1.35" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "js-sys 0.3.103": { + "name": "js-sys", + "version": "0.3.103", + "package_url": "https://github.com/wasm-bindgen/wasm-bindgen/tree/master/crates/js-sys", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/js-sys/0.3.103/download", + "sha256": "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" + } + }, + "targets": [ + { + "Library": { + "crate_name": "js_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "js_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "wasm-bindgen 0.2.126", + "target": "wasm_bindgen" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.103" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "keccak 0.1.6": { + "name": "keccak", + "version": "0.1.6", + "package_url": "https://github.com/RustCrypto/sponges/tree/master/keccak", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/keccak/0.1.6/download", + "sha256": "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" + } + }, + "targets": [ + { + "Library": { + "crate_name": "keccak", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "keccak", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(target_arch = \"aarch64\")": [ + { + "id": "cpufeatures 0.2.17", + "target": "cpufeatures" + } + ] + } + }, + "edition": "2018", + "version": "0.1.6" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "khronos-egl 6.0.0": { + "name": "khronos-egl", + "version": "6.0.0", + "package_url": "https://github.com/timothee-haudebourg/khronos-egl", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/khronos-egl/6.0.0/download", + "sha256": "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" + } + }, + "targets": [ + { + "Library": { + "crate_name": "khronos_egl", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "khronos_egl", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "khronos-egl 6.0.0", + "target": "build_script_build" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "6.0.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "khronos_api 3.1.0": { + "name": "khronos_api", + "version": "3.1.0", + "package_url": "https://github.com/brendanzab/gl-rs/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/khronos_api/3.1.0/download", + "sha256": "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" + } + }, + "targets": [ + { + "Library": { + "crate_name": "khronos_api", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "khronos_api", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "khronos_api 3.1.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "3.1.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": null + }, + "kqueue 1.2.0": { + "name": "kqueue", + "version": "1.2.0", + "package_url": "https://gitlab.com/rust-kqueue/rust-kqueue", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/kqueue/1.2.0/download", + "sha256": "273c0752728918e0ac4976f2b275b6fefb9ecd400585dec929419f3844cd87b5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "kqueue", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "kqueue", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "kqueue-sys 1.1.2", + "target": "kqueue_sys" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.2.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "kqueue-sys 1.1.2": { + "name": "kqueue-sys", + "version": "1.1.2", + "package_url": "https://gitlab.com/rust-kqueue/rust-kqueue-sys", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/kqueue-sys/1.1.2/download", + "sha256": "07293a4e297ac234359b510362495713f75ea345d5307140414f20c69ffeb087" + } + }, + "targets": [ + { + "Library": { + "crate_name": "kqueue_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "kqueue_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.1.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "lazy_static 1.5.0": { + "name": "lazy_static", + "version": "1.5.0", + "package_url": "https://github.com/rust-lang-nursery/lazy-static.rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/lazy_static/1.5.0/download", + "sha256": "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + } + }, + "targets": [ + { + "Library": { + "crate_name": "lazy_static", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "lazy_static", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "1.5.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "libc 0.2.189": { + "name": "libc", + "version": "0.2.189", + "package_url": "https://github.com/rust-lang/libc", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/libc/0.2.189/download", + "sha256": "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "libc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "libc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "extra_traits", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.189" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "libloading 0.8.9": { + "name": "libloading", + "version": "0.8.9", + "package_url": "https://github.com/nagisa/rust_libloading/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/libloading/0.8.9/download", + "sha256": "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" + } + }, + "targets": [ + { + "Library": { + "crate_name": "libloading", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "libloading", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(unix)": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + } + ], + "cfg(windows)": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ] + } + }, + "edition": "2015", + "version": "0.8.9" + }, + "license": "ISC", + "license_ids": [ + "ISC" + ], + "license_file": "LICENSE" + }, + "libloading 0.9.0": { + "name": "libloading", + "version": "0.9.0", + "package_url": "https://github.com/nagisa/rust_libloading/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/libloading/0.9.0/download", + "sha256": "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" + } + }, + "targets": [ + { + "Library": { + "crate_name": "libloading", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "libloading", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [], + "selects": { + "cfg(unix)": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + } + ], + "cfg(windows)": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ] + } + }, + "edition": "2021", + "version": "0.9.0" + }, + "license": "ISC", + "license_ids": [ + "ISC" + ], + "license_file": "LICENSE" + }, + "libm 0.2.16": { + "name": "libm", + "version": "0.2.16", + "package_url": "https://github.com/rust-lang/compiler-builtins", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/libm/0.2.16/download", + "sha256": "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + } + }, + "targets": [ + { + "Library": { + "crate_name": "libm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "libm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "arch", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "libm 0.2.16", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.16" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "libredox 0.1.18": { + "name": "libredox", + "version": "0.1.18", + "package_url": "https://gitlab.redox-os.org/redox-os/libredox.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/libredox/0.1.18/download", + "sha256": "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" + } + }, + "targets": [ + { + "Library": { + "crate_name": "libredox", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "libredox", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.1.18" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "libspa 0.9.2": { + "name": "libspa", + "version": "0.9.2", + "package_url": "https://gitlab.freedesktop.org/pipewire/pipewire-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/libspa/0.9.2/download", + "sha256": "b6b8cfa2a7656627b4c92c6b9ef929433acd673d5ab3708cda1b18478ac00df4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "libspa", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "libspa", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "convert_case 0.8.0", + "target": "convert_case" + }, + { + "id": "cookie-factory 0.3.3", + "target": "cookie_factory" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "libspa 0.9.2", + "target": "build_script_build" + }, + { + "id": "libspa-sys 0.9.2", + "target": "libspa_sys", + "alias": "spa_sys" + }, + { + "id": "nix 0.30.1", + "target": "nix" + }, + { + "id": "nom 8.0.0", + "target": "nom" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + }, + { + "id": "system-deps 7.0.8", + "target": "system_deps" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "libspa-sys 0.9.2", + "target": "libspa_sys", + "alias": "spa_sys" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "libspa-sys 0.9.2": { + "name": "libspa-sys", + "version": "0.9.2", + "package_url": "https://gitlab.freedesktop.org/pipewire/pipewire-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/libspa-sys/0.9.2/download", + "sha256": "901049455d2eb6decf9058235d745237952f4804bc584c5fcb41412e6adcc6e0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "libspa_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "libspa_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libspa-sys 0.9.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bindgen 0.72.1", + "target": "bindgen" + }, + { + "id": "cc 1.2.67", + "target": "cc" + }, + { + "id": "system-deps 7.0.8", + "target": "system_deps" + } + ], + "selects": {} + }, + "links": "libspa-0.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "libwayshot-xcap 0.3.3": { + "name": "libwayshot-xcap", + "version": "0.3.3", + "package_url": "https://github.com/nashaofu/wayshot", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/libwayshot-xcap/0.3.3/download", + "sha256": "ea8a46e4d016ef464e386e4970f5415fe0939c2d63abe0c2f539c05ef88c5fe5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "libwayshot_xcap", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "libwayshot_xcap", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "drm 0.15.0", + "target": "drm" + }, + { + "id": "gbm 0.18.0", + "target": "gbm" + }, + { + "id": "gl 0.14.0", + "target": "gl" + }, + { + "id": "image 0.25.10", + "target": "image" + }, + { + "id": "khronos-egl 6.0.0", + "target": "khronos_egl" + }, + { + "id": "memmap2 0.9.11", + "target": "memmap2" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "tracing 0.1.44", + "target": "tracing" + }, + { + "id": "wayland-backend 0.3.16", + "target": "wayland_backend" + }, + { + "id": "wayland-client 0.31.15", + "target": "wayland_client" + }, + { + "id": "wayland-protocols 0.32.13", + "target": "wayland_protocols" + }, + { + "id": "wayland-protocols-wlr 0.3.12", + "target": "wayland_protocols_wlr" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.3.3" + }, + "license": "BSD-2-Clause", + "license_ids": [ + "BSD-2-Clause" + ], + "license_file": null + }, + "linked-hash-map 0.5.6": { + "name": "linked-hash-map", + "version": "0.5.6", + "package_url": "https://github.com/contain-rs/linked-hash-map", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/linked-hash-map/0.5.6/download", + "sha256": "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "linked_hash_map", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "linked_hash_map", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "0.5.6" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "linux-raw-sys 0.4.15": { + "name": "linux-raw-sys", + "version": "0.4.15", + "package_url": "https://github.com/sunfishcode/linux-raw-sys", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/linux-raw-sys/0.4.15/download", + "sha256": "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + } + }, + "targets": [ + { + "Library": { + "crate_name": "linux_raw_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "linux_raw_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.4.15" + }, + "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "linux-raw-sys 0.9.4": { + "name": "linux-raw-sys", + "version": "0.9.4", + "package_url": "https://github.com/sunfishcode/linux-raw-sys", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/linux-raw-sys/0.9.4/download", + "sha256": "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + } + }, + "targets": [ + { + "Library": { + "crate_name": "linux_raw_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "linux_raw_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.9.4" + }, + "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "linux-raw-sys 0.12.1": { + "name": "linux-raw-sys", + "version": "0.12.1", + "package_url": "https://github.com/sunfishcode/linux-raw-sys", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/linux-raw-sys/0.12.1/download", + "sha256": "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + } + }, + "targets": [ + { + "Library": { + "crate_name": "linux_raw_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "linux_raw_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "auxvec", + "elf", + "errno", + "general", + "if_ether", + "ioctl", + "net", + "netlink", + "no_std", + "prctl", + "system", + "xdp" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.12.1" + }, + "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "litemap 0.8.2": { + "name": "litemap", + "version": "0.8.2", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/litemap/0.8.2/download", + "sha256": "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "litemap", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "litemap", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.2" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "lock_api 0.4.14": { + "name": "lock_api", + "version": "0.4.14", + "package_url": "https://github.com/Amanieu/parking_lot", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/lock_api/0.4.14/download", + "sha256": "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" + } + }, + "targets": [ + { + "Library": { + "crate_name": "lock_api", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "lock_api", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "atomic_usize", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "scopeguard 1.2.0", + "target": "scopeguard" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.14" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "log 0.4.33": { + "name": "log", + "version": "0.4.33", + "package_url": "https://github.com/rust-lang/log", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/log/0.4.33/download", + "sha256": "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" + } + }, + "targets": [ + { + "Library": { + "crate_name": "log", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "log", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.4.33" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "lru 0.16.4": { + "name": "lru", + "version": "0.16.4", + "package_url": "https://github.com/jeromefroe/lru-rs.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/lru/0.16.4/download", + "sha256": "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" + } + }, + "targets": [ + { + "Library": { + "crate_name": "lru", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "lru", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "hashbrown" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "hashbrown 0.16.1", + "target": "hashbrown" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.16.4" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "lscolors 0.21.0": { + "name": "lscolors", + "version": "0.21.0", + "package_url": "https://github.com/sharkdp/lscolors", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/lscolors/0.21.0/download", + "sha256": "d60e266dfb1426eb2d24792602e041131fdc0236bb7007abc0e589acafd60929" + } + }, + "targets": [ + { + "Library": { + "crate_name": "lscolors", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "lscolors", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "gnu_legacy", + "nu-ansi-term" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "aho-corasick 1.1.4", + "target": "aho_corasick" + }, + { + "id": "nu-ansi-term 0.50.3", + "target": "nu_ansi_term" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.21.0" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "markup5ever 0.39.0": { + "name": "markup5ever", + "version": "0.39.0", + "package_url": "https://github.com/servo/html5ever", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/markup5ever/0.39.0/download", + "sha256": "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de" + } + }, + "targets": [ + { + "Library": { + "crate_name": "markup5ever", + "crate_root": "lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "markup5ever", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "tendril 0.5.1", + "target": "tendril" + }, + { + "id": "web_atoms 0.2.5", + "target": "web_atoms" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.39.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "maudio 0.1.6": { + "name": "maudio", + "version": "0.1.6", + "package_url": "https://github.com/someotherself/maudio", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/maudio/0.1.6/download", + "sha256": "c6ab2d47a7b24f4cf6ab85d335b4a6cc932f650080dfe0819b22bc553aada602" + } + }, + "targets": [ + { + "Library": { + "crate_name": "maudio", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "maudio", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "maudio-sys 0.1.3", + "target": "maudio_sys" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.6" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "maudio-sys 0.1.3": { + "name": "maudio-sys", + "version": "0.1.3", + "package_url": "https://github.com/someotherself/maudio", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/maudio-sys/0.1.3/download", + "sha256": "f00ae1969d0a389937161b834623e5cba2d8449752a0970d71382cf9a905bb35" + } + }, + "targets": [ + { + "Library": { + "crate_name": "maudio_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "maudio_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "maudio-sys 0.1.3", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.3" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "md-5 0.10.6": { + "name": "md-5", + "version": "0.10.6", + "package_url": "https://github.com/RustCrypto/hashes", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/md-5/0.10.6/download", + "sha256": "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" + } + }, + "targets": [ + { + "Library": { + "crate_name": "md5", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "md5", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "digest 0.10.7", + "target": "digest" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.10.6" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "memchr 2.8.3": { + "name": "memchr", + "version": "2.8.3", + "package_url": "https://github.com/BurntSushi/memchr", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/memchr/2.8.3/download", + "sha256": "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + } + }, + "targets": [ + { + "Library": { + "crate_name": "memchr", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "memchr", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "2.8.3" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "memmap2 0.9.11": { + "name": "memmap2", + "version": "0.9.11", + "package_url": "https://github.com/RazrFalcon/memmap2-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/memmap2/0.9.11/download", + "sha256": "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "memmap2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "memmap2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2021", + "version": "0.9.11" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "memoffset 0.7.1": { + "name": "memoffset", + "version": "0.7.1", + "package_url": "https://github.com/Gilnaa/memoffset", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/memoffset/0.7.1/download", + "sha256": "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "memoffset", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "memoffset", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "memoffset 0.7.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.7.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "autocfg 1.5.1", + "target": "autocfg" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "memoffset 0.9.1": { + "name": "memoffset", + "version": "0.9.1", + "package_url": "https://github.com/Gilnaa/memoffset", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/memoffset/0.9.1/download", + "sha256": "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "memoffset", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "memoffset", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "memoffset 0.9.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.9.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "autocfg 1.5.1", + "target": "autocfg" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "minimal-lexical 0.2.1": { + "name": "minimal-lexical", + "version": "0.2.1", + "package_url": "https://github.com/Alexhuszagh/minimal-lexical", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/minimal-lexical/0.2.1/download", + "sha256": "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "minimal_lexical", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "minimal_lexical", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "miniz_oxide 0.8.9": { + "name": "miniz_oxide", + "version": "0.8.9", + "package_url": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/miniz_oxide/0.8.9/download", + "sha256": "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" + } + }, + "targets": [ + { + "Library": { + "crate_name": "miniz_oxide", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "miniz_oxide", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "simd", + "simd-adler32", + "with-alloc" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "adler2 2.0.1", + "target": "adler2" + }, + { + "id": "simd-adler32 0.3.10", + "target": "simd_adler32" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.9" + }, + "license": "MIT OR Zlib OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": "LICENSE" + }, + "mio 1.2.2": { + "name": "mio", + "version": "1.2.2", + "package_url": "https://github.com/tokio-rs/mio", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/mio/1.2.2/download", + "sha256": "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" + } + }, + "targets": [ + { + "Library": { + "crate_name": "mio", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "mio", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "net", + "os-ext", + "os-poll" + ], + "selects": { + "aarch64-apple-darwin": [ + "default", + "log" + ], + "aarch64-unknown-linux-gnu": [ + "default", + "log" + ], + "aarch64-unknown-linux-musl": [ + "default", + "log" + ], + "x86_64-apple-darwin": [ + "default", + "log" + ], + "x86_64-unknown-linux-gnu": [ + "default", + "log" + ], + "x86_64-unknown-linux-musl": [ + "default", + "log" + ] + } + }, + "deps": { + "common": [], + "selects": { + "aarch64-apple-darwin": [ + { + "id": "log 0.4.33", + "target": "log" + } + ], + "aarch64-unknown-linux-gnu": [ + { + "id": "log 0.4.33", + "target": "log" + } + ], + "aarch64-unknown-linux-musl": [ + { + "id": "log 0.4.33", + "target": "log" + } + ], + "cfg(any(unix, target_os = \"hermit\", target_os = \"wasi\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(target_os = \"wasi\")": [ + { + "id": "wasi 0.11.1+wasi-snapshot-preview1", + "target": "wasi" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ], + "x86_64-apple-darwin": [ + { + "id": "log 0.4.33", + "target": "log" + } + ], + "x86_64-unknown-linux-gnu": [ + { + "id": "log 0.4.33", + "target": "log" + } + ], + "x86_64-unknown-linux-musl": [ + { + "id": "log 0.4.33", + "target": "log" + } + ] + } + }, + "edition": "2021", + "version": "1.2.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "moxcms 0.8.1": { + "name": "moxcms", + "version": "0.8.1", + "package_url": "https://github.com/awxkee/moxcms.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/moxcms/0.8.1/download", + "sha256": "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "moxcms", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "moxcms", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "avx", + "avx_luts", + "avx_shaper_fixed_point_paths", + "avx_shaper_paths", + "default", + "lut", + "neon", + "neon_luts", + "neon_shaper_fixed_point_paths", + "neon_shaper_paths", + "sse", + "sse_luts", + "sse_shaper_fixed_point_paths", + "sse_shaper_paths" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "num-traits 0.2.19", + "target": "num_traits" + }, + { + "id": "pxfm 0.1.30", + "target": "pxfm" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.1" + }, + "license": "BSD-3-Clause OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "BSD-3-Clause" + ], + "license_file": "LICENSE-APACHE.md" + }, + "munge 0.4.7": { + "name": "munge", + "version": "0.4.7", + "package_url": "https://github.com/djkoloski/munge", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/munge/0.4.7/download", + "sha256": "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "munge", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "munge", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "munge_macro 0.4.7", + "target": "munge_macro" + } + ], + "selects": {} + }, + "version": "0.4.7" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "munge_macro 0.4.7": { + "name": "munge_macro", + "version": "0.4.7", + "package_url": "https://github.com/djkoloski/munge", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/munge_macro/0.4.7/download", + "sha256": "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "munge_macro", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "munge_macro", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.7" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "nanorand 0.7.0": { + "name": "nanorand", + "version": "0.7.0", + "package_url": "https://github.com/Absolucy/nanorand-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/nanorand/0.7.0/download", + "sha256": "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "nanorand", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "nanorand", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "chacha", + "default", + "getrandom", + "pcg64", + "std", + "tls", + "wyrand" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "getrandom 0.2.17", + "target": "getrandom" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.0" + }, + "license": "Zlib", + "license_ids": [ + "Zlib" + ], + "license_file": "LICENSE.md" + }, + "napi 3.11.0": { + "name": "napi", + "version": "3.11.0", + "package_url": "https://github.com/napi-rs/napi-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/napi/3.11.0/download", + "sha256": "de33522036981030a75c231829566bc63414e08101a6f5ff4ac6cef19c8e0941" + } + }, + "targets": [ + { + "Library": { + "crate_name": "napi", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "napi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "dyn-symbols", + "napi1", + "napi10", + "napi2", + "napi3", + "napi4", + "napi5", + "napi6", + "napi7", + "napi8", + "napi9", + "tokio", + "tokio_rt", + "tokio_time" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "ctor 1.0.11", + "target": "ctor" + }, + { + "id": "futures 0.3.33", + "target": "futures" + }, + { + "id": "napi 3.11.0", + "target": "build_script_build" + }, + { + "id": "napi-sys 3.3.0", + "target": "napi_sys" + }, + { + "id": "nohash-hasher 0.2.0", + "target": "nohash_hasher" + }, + { + "id": "rustc-hash 2.1.3", + "target": "rustc_hash" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "3.11.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "napi-build 2.3.2", + "target": "napi_build" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "napi-build 2.3.2": { + "name": "napi-build", + "version": "2.3.2", + "package_url": "https://github.com/napi-rs/napi-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/napi-build/2.3.2/download", + "sha256": "c9c366d2c8c60b86fa632df75f745509b52f9128f91a6bad4c796e44abb505e1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "napi_build", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "napi_build", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "2.3.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "napi-derive 3.6.0": { + "name": "napi-derive", + "version": "3.6.0", + "package_url": "https://github.com/napi-rs/napi-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/napi-derive/3.6.0/download", + "sha256": "a49c513341a61a16a10af6efcce46b30d0822ba2d4fb197d24d33dfc199c78d5" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "napi_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "napi_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "ctor", + "default", + "strict", + "type-def" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "convert_case 0.11.0", + "target": "convert_case" + }, + { + "id": "ctor 1.0.11", + "target": "ctor" + }, + { + "id": "napi-derive-backend 6.0.0", + "target": "napi_derive_backend" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "3.6.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "napi-derive-backend 6.0.0": { + "name": "napi-derive-backend", + "version": "6.0.0", + "package_url": "https://github.com/napi-rs/napi-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/napi-derive-backend/6.0.0/download", + "sha256": "4747005fa3e2c9989ac45a723a514c5db2411238b72981a3cda4c701a9dfea17" + } + }, + "targets": [ + { + "Library": { + "crate_name": "napi_derive_backend", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "napi_derive_backend", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "semver", + "strict", + "type-def" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "convert_case 0.11.0", + "target": "convert_case" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "semver 1.0.28", + "target": "semver" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "6.0.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "napi-sys 3.3.0": { + "name": "napi-sys", + "version": "3.3.0", + "package_url": "https://github.com/napi-rs/napi-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/napi-sys/3.3.0/download", + "sha256": "85fbf1fa9f1babfe396d74bbbf52b3643770243e8f5b0b46715d4caf7f0dfc9a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "napi_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "napi_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "dyn-symbols", + "napi1", + "napi10", + "napi2", + "napi3", + "napi4", + "napi5", + "napi6", + "napi7", + "napi8", + "napi9" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "libloading 0.9.0", + "target": "libloading" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "3.3.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "new_debug_unreachable 1.0.6": { + "name": "new_debug_unreachable", + "version": "1.0.6", + "package_url": "https://github.com/mbrubeck/rust-debug-unreachable", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/new_debug_unreachable/1.0.6/download", + "sha256": "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + } + }, + "targets": [ + { + "Library": { + "crate_name": "debug_unreachable", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "debug_unreachable", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "1.0.6" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE-MIT" + }, + "nix 0.24.3": { + "name": "nix", + "version": "0.24.3", + "package_url": "https://github.com/nix-rust/nix", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/nix/0.24.3/download", + "sha256": "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" + } + }, + "targets": [ + { + "Library": { + "crate_name": "nix", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "nix", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "feature" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 1.3.2", + "target": "bitflags" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.24.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "nix 0.26.4": { + "name": "nix", + "version": "0.26.4", + "package_url": "https://github.com/nix-rust/nix", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/nix/0.26.4/download", + "sha256": "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "nix", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "nix", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "acct", + "aio", + "default", + "dir", + "env", + "event", + "feature", + "fs", + "hostname", + "inotify", + "ioctl", + "kmod", + "memoffset", + "mman", + "mount", + "mqueue", + "net", + "personality", + "pin-utils", + "poll", + "process", + "pthread", + "ptrace", + "quota", + "reboot", + "resource", + "sched", + "signal", + "socket", + "term", + "time", + "ucontext", + "uio", + "user", + "zerocopy" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 1.3.2", + "target": "bitflags" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "memoffset 0.7.1", + "target": "memoffset" + }, + { + "id": "pin-utils 0.1.0", + "target": "pin_utils" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.26.4" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "nix 0.28.0": { + "name": "nix", + "version": "0.28.0", + "package_url": "https://github.com/nix-rust/nix", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/nix/0.28.0/download", + "sha256": "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "nix", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "nix", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "fs", + "term" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "nix 0.28.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.28.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg_aliases 0.1.1", + "target": "cfg_aliases" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "nix 0.29.0": { + "name": "nix", + "version": "0.29.0", + "package_url": "https://github.com/nix-rust/nix", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/nix/0.29.0/download", + "sha256": "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" + } + }, + "targets": [ + { + "Library": { + "crate_name": "nix", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "nix", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "feature", + "fs", + "user" + ], + "selects": { + "aarch64-apple-darwin": [ + "process", + "signal", + "uio", + "zerocopy" + ], + "aarch64-unknown-linux-gnu": [ + "process", + "signal", + "uio", + "zerocopy" + ], + "aarch64-unknown-linux-musl": [ + "process", + "signal", + "uio", + "zerocopy" + ], + "x86_64-apple-darwin": [ + "process", + "signal", + "uio", + "zerocopy" + ], + "x86_64-unknown-linux-gnu": [ + "process", + "signal", + "uio", + "zerocopy" + ], + "x86_64-unknown-linux-musl": [ + "process", + "signal", + "uio", + "zerocopy" + ] + } + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "nix 0.29.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.29.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg_aliases 0.2.2", + "target": "cfg_aliases" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "nix 0.30.1": { + "name": "nix", + "version": "0.30.1", + "package_url": "https://github.com/nix-rust/nix", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/nix/0.30.1/download", + "sha256": "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "nix", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "nix", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "nix 0.30.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.30.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg_aliases 0.2.2", + "target": "cfg_aliases" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "nix 0.31.3": { + "name": "nix", + "version": "0.31.3", + "package_url": "https://github.com/nix-rust/nix", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/nix/0.31.3/download", + "sha256": "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "nix", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "nix", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "dir", + "feature", + "fs", + "poll", + "process", + "resource", + "signal", + "term", + "uio", + "user", + "zerocopy" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "nix 0.31.3", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.31.3" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg_aliases 0.2.2", + "target": "cfg_aliases" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "nohash-hasher 0.2.0": { + "name": "nohash-hasher", + "version": "0.2.0", + "package_url": "https://github.com/paritytech/nohash-hasher", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/nohash-hasher/0.2.0/download", + "sha256": "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + } + }, + "targets": [ + { + "Library": { + "crate_name": "nohash_hasher", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "nohash_hasher", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "nom 7.1.3": { + "name": "nom", + "version": "7.1.3", + "package_url": "https://github.com/Geal/nom", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/nom/7.1.3/download", + "sha256": "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "nom", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "nom", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "minimal-lexical 0.2.1", + "target": "minimal_lexical" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "7.1.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "nom 8.0.0": { + "name": "nom", + "version": "8.0.0", + "package_url": "https://github.com/rust-bakery/nom", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/nom/8.0.0/download", + "sha256": "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" + } + }, + "targets": [ + { + "Library": { + "crate_name": "nom", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "nom", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "memchr 2.8.3", + "target": "memchr" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "8.0.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "normalize-path 0.2.1": { + "name": "normalize-path", + "version": "0.2.1", + "package_url": "https://github.com/cargo-bins/cargo-binstall", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/normalize-path/0.2.1/download", + "sha256": "f5438dd2b2ff4c6df6e1ce22d825ed2fa93ee2922235cc45186991717f0a892d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "normalize_path", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "normalize_path", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.2.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "notify 8.2.0": { + "name": "notify", + "version": "8.2.0", + "package_url": "https://github.com/notify-rs/notify.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/notify/8.2.0/download", + "sha256": "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "notify", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "notify", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "fsevent-sys", + "kqueue", + "macos_fsevent", + "macos_kqueue", + "mio" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "notify-types 2.1.0", + "target": "notify_types" + }, + { + "id": "walkdir 2.5.0", + "target": "walkdir" + } + ], + "selects": { + "aarch64-apple-darwin": [ + { + "id": "fsevent-sys 4.1.0", + "target": "fsevent_sys" + }, + { + "id": "kqueue 1.2.0", + "target": "kqueue" + }, + { + "id": "mio 1.2.2", + "target": "mio" + } + ], + "aarch64-unknown-linux-gnu": [ + { + "id": "mio 1.2.2", + "target": "mio" + } + ], + "aarch64-unknown-linux-musl": [ + { + "id": "mio 1.2.2", + "target": "mio" + } + ], + "cfg(any(target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\", target_os = \"dragonflybsd\", target_os = \"ios\"))": [ + { + "id": "kqueue 1.2.0", + "target": "kqueue" + }, + { + "id": "mio 1.2.2", + "target": "mio" + } + ], + "cfg(any(target_os = \"linux\", target_os = \"android\"))": [ + { + "id": "inotify 0.11.4", + "target": "inotify" + }, + { + "id": "mio 1.2.2", + "target": "mio" + } + ], + "cfg(target_os = \"macos\")": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.60.2", + "target": "windows_sys" + } + ], + "x86_64-apple-darwin": [ + { + "id": "fsevent-sys 4.1.0", + "target": "fsevent_sys" + }, + { + "id": "kqueue 1.2.0", + "target": "kqueue" + }, + { + "id": "mio 1.2.2", + "target": "mio" + } + ], + "x86_64-unknown-linux-gnu": [ + { + "id": "mio 1.2.2", + "target": "mio" + } + ], + "x86_64-unknown-linux-musl": [ + { + "id": "mio 1.2.2", + "target": "mio" + } + ] + } + }, + "edition": "2021", + "version": "8.2.0" + }, + "license": "CC0-1.0", + "license_ids": [ + "CC0-1.0" + ], + "license_file": "LICENSE-CC0" + }, + "notify-types 2.1.0": { + "name": "notify-types", + "version": "2.1.0", + "package_url": "https://github.com/notify-rs/notify.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/notify-types/2.1.0/download", + "sha256": "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "notify_types", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "notify_types", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.1.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "nu-ansi-term 0.50.3": { + "name": "nu-ansi-term", + "version": "0.50.3", + "package_url": "https://github.com/nushell/nu-ansi-term", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/nu-ansi-term/0.50.3/download", + "sha256": "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "nu_ansi_term", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "nu_ansi_term", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "gnu_legacy", + "std" + ], + "selects": {} + }, + "deps": { + "common": [], + "selects": { + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys", + "alias": "windows" + } + ] + } + }, + "edition": "2021", + "version": "0.50.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "num-bigint 0.4.8": { + "name": "num-bigint", + "version": "0.4.8", + "package_url": "https://github.com/rust-num/num-bigint", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/num-bigint/0.4.8/download", + "sha256": "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" + } + }, + "targets": [ + { + "Library": { + "crate_name": "num_bigint", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "num_bigint", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "num-integer 0.1.46", + "target": "num_integer" + }, + { + "id": "num-traits 0.2.19", + "target": "num_traits" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.8" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "num-conv 0.2.2": { + "name": "num-conv", + "version": "0.2.2", + "package_url": "https://github.com/jhpratt/num-conv", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/num-conv/0.2.2/download", + "sha256": "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" + } + }, + "targets": [ + { + "Library": { + "crate_name": "num_conv", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "num_conv", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.2.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-Apache" + }, + "num-format 0.4.4": { + "name": "num-format", + "version": "0.4.4", + "package_url": "https://github.com/bcmyers/num-format", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/num-format/0.4.4/download", + "sha256": "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "num_format", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "num_format", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "arrayvec 0.7.8", + "target": "arrayvec" + }, + { + "id": "itoa 1.0.18", + "target": "itoa" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.4" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "num-integer 0.1.46": { + "name": "num-integer", + "version": "0.1.46", + "package_url": "https://github.com/rust-num/num-integer", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/num-integer/0.1.46/download", + "sha256": "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "num_integer", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "num_integer", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "i128", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "num-traits 0.2.19", + "target": "num_traits" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.46" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "num-traits 0.2.19": { + "name": "num-traits", + "version": "0.2.19", + "package_url": "https://github.com/rust-num/num-traits", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/num-traits/0.2.19/download", + "sha256": "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" + } + }, + "targets": [ + { + "Library": { + "crate_name": "num_traits", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "num_traits", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "i128", + "libm", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "libm 0.2.16", + "target": "libm" + }, + { + "id": "num-traits 0.2.19", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.19" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "autocfg 1.5.1", + "target": "autocfg" + } + ], + "selects": {} + } + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "number_prefix 0.4.0": { + "name": "number_prefix", + "version": "0.4.0", + "package_url": "https://github.com/ogham/rust-number-prefix", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/number_prefix/0.4.0/download", + "sha256": "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "number_prefix", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "number_prefix", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2015", + "version": "0.4.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "objc2 0.6.4": { + "name": "objc2", + "version": "0.6.4", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2/0.6.4/download", + "sha256": "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "relax-void-encoding", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "objc2 0.6.4", + "target": "build_script_build" + }, + { + "id": "objc2-encode 4.1.0", + "target": "objc2_encode" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.6.4" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "objc2-app-kit 0.3.2": { + "name": "objc2-app-kit", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-app-kit/0.3.2/download", + "sha256": "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_app_kit", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_app_kit", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "AppKitDefines", + "AppKitErrors", + "NSATSTypesetter", + "NSAccessibility", + "NSAccessibilityColor", + "NSAccessibilityConstants", + "NSAccessibilityCustomAction", + "NSAccessibilityCustomRotor", + "NSAccessibilityElement", + "NSAccessibilityProtocols", + "NSActionCell", + "NSAdaptiveImageGlyph", + "NSAffineTransform", + "NSAlert", + "NSAlignmentFeedbackFilter", + "NSAnimation", + "NSAnimationContext", + "NSAppearance", + "NSAppleScriptExtensions", + "NSApplication", + "NSApplicationScripting", + "NSArrayController", + "NSAttributedString", + "NSBackgroundExtensionView", + "NSBezierPath", + "NSBitmapImageRep", + "NSBox", + "NSBrowser", + "NSBrowserCell", + "NSButton", + "NSButtonCell", + "NSButtonTouchBarItem", + "NSCIImageRep", + "NSCachedImageRep", + "NSCandidateListTouchBarItem", + "NSCell", + "NSClickGestureRecognizer", + "NSClipView", + "NSCollectionView", + "NSCollectionViewCompositionalLayout", + "NSCollectionViewFlowLayout", + "NSCollectionViewGridLayout", + "NSCollectionViewLayout", + "NSCollectionViewTransitionLayout", + "NSColor", + "NSColorList", + "NSColorPanel", + "NSColorPicker", + "NSColorPickerTouchBarItem", + "NSColorPicking", + "NSColorSampler", + "NSColorSpace", + "NSColorWell", + "NSComboBox", + "NSComboBoxCell", + "NSComboButton", + "NSControl", + "NSController", + "NSCursor", + "NSCustomImageRep", + "NSCustomTouchBarItem", + "NSDataAsset", + "NSDatePicker", + "NSDatePickerCell", + "NSDictionaryController", + "NSDiffableDataSource", + "NSDirection", + "NSDockTile", + "NSDocument", + "NSDocumentController", + "NSDocumentScripting", + "NSDragging", + "NSDraggingItem", + "NSDraggingSession", + "NSDrawer", + "NSEPSImageRep", + "NSErrors", + "NSEvent", + "NSFilePromiseProvider", + "NSFilePromiseReceiver", + "NSFileWrapperExtensions", + "NSFont", + "NSFontAssetRequest", + "NSFontCollection", + "NSFontDescriptor", + "NSFontManager", + "NSFontPanel", + "NSForm", + "NSFormCell", + "NSGestureRecognizer", + "NSGlassEffectView", + "NSGlyphGenerator", + "NSGlyphInfo", + "NSGradient", + "NSGraphics", + "NSGraphicsContext", + "NSGridView", + "NSGroupTouchBarItem", + "NSHapticFeedback", + "NSHelpManager", + "NSImage", + "NSImageCell", + "NSImageRep", + "NSImageView", + "NSInputManager", + "NSInputServer", + "NSInterfaceStyle", + "NSItemBadge", + "NSItemProvider", + "NSKeyValueBinding", + "NSLayoutAnchor", + "NSLayoutConstraint", + "NSLayoutGuide", + "NSLayoutManager", + "NSLevelIndicator", + "NSLevelIndicatorCell", + "NSMagnificationGestureRecognizer", + "NSMatrix", + "NSMediaLibraryBrowserController", + "NSMenu", + "NSMenuItem", + "NSMenuItemBadge", + "NSMenuItemCell", + "NSMenuToolbarItem", + "NSMovie", + "NSNib", + "NSNibConnector", + "NSNibControlConnector", + "NSNibDeclarations", + "NSNibLoading", + "NSNibOutletConnector", + "NSObjectController", + "NSOpenGL", + "NSOpenGLLayer", + "NSOpenGLView", + "NSOpenPanel", + "NSOutlineView", + "NSPDFImageRep", + "NSPDFInfo", + "NSPDFPanel", + "NSPICTImageRep", + "NSPageController", + "NSPageLayout", + "NSPanGestureRecognizer", + "NSPanel", + "NSParagraphStyle", + "NSPasteboard", + "NSPasteboardItem", + "NSPathCell", + "NSPathComponentCell", + "NSPathControl", + "NSPathControlItem", + "NSPersistentDocument", + "NSPickerTouchBarItem", + "NSPopUpButton", + "NSPopUpButtonCell", + "NSPopover", + "NSPopoverTouchBarItem", + "NSPredicateEditor", + "NSPredicateEditorRowTemplate", + "NSPressGestureRecognizer", + "NSPressureConfiguration", + "NSPreviewRepresentingActivityItem", + "NSPrintInfo", + "NSPrintOperation", + "NSPrintPanel", + "NSPrinter", + "NSProgressIndicator", + "NSResponder", + "NSRotationGestureRecognizer", + "NSRuleEditor", + "NSRulerMarker", + "NSRulerView", + "NSRunningApplication", + "NSSavePanel", + "NSScreen", + "NSScrollView", + "NSScroller", + "NSScrubber", + "NSScrubberItemView", + "NSScrubberLayout", + "NSSearchField", + "NSSearchFieldCell", + "NSSearchToolbarItem", + "NSSecureTextField", + "NSSegmentedCell", + "NSSegmentedControl", + "NSShadow", + "NSSharingCollaborationModeRestriction", + "NSSharingService", + "NSSharingServicePickerToolbarItem", + "NSSharingServicePickerTouchBarItem", + "NSSlider", + "NSSliderAccessory", + "NSSliderCell", + "NSSliderTouchBarItem", + "NSSound", + "NSSpeechRecognizer", + "NSSpeechSynthesizer", + "NSSpellChecker", + "NSSpellProtocol", + "NSSplitView", + "NSSplitViewController", + "NSSplitViewItem", + "NSSplitViewItemAccessoryViewController", + "NSStackView", + "NSStatusBar", + "NSStatusBarButton", + "NSStatusItem", + "NSStepper", + "NSStepperCell", + "NSStepperTouchBarItem", + "NSStoryboard", + "NSStoryboardSegue", + "NSStringDrawing", + "NSSwitch", + "NSTabView", + "NSTabViewController", + "NSTabViewItem", + "NSTableCellView", + "NSTableColumn", + "NSTableHeaderCell", + "NSTableHeaderView", + "NSTableRowView", + "NSTableView", + "NSTableViewDiffableDataSource", + "NSTableViewRowAction", + "NSText", + "NSTextAlternatives", + "NSTextAttachment", + "NSTextAttachmentCell", + "NSTextCheckingClient", + "NSTextCheckingController", + "NSTextContainer", + "NSTextContent", + "NSTextContentManager", + "NSTextElement", + "NSTextField", + "NSTextFieldCell", + "NSTextFinder", + "NSTextInputClient", + "NSTextInputContext", + "NSTextInsertionIndicator", + "NSTextLayoutFragment", + "NSTextLayoutManager", + "NSTextLineFragment", + "NSTextList", + "NSTextListElement", + "NSTextRange", + "NSTextSelection", + "NSTextSelectionNavigation", + "NSTextStorage", + "NSTextStorageScripting", + "NSTextTable", + "NSTextView", + "NSTextViewportLayoutController", + "NSTintConfiguration", + "NSTintProminence", + "NSTitlebarAccessoryViewController", + "NSTokenField", + "NSTokenFieldCell", + "NSToolbar", + "NSToolbarItem", + "NSToolbarItemGroup", + "NSTouch", + "NSTouchBar", + "NSTouchBarItem", + "NSTrackingArea", + "NSTrackingSeparatorToolbarItem", + "NSTreeController", + "NSTreeNode", + "NSTypesetter", + "NSUserActivity", + "NSUserDefaultsController", + "NSUserInterfaceCompression", + "NSUserInterfaceItemIdentification", + "NSUserInterfaceItemSearching", + "NSUserInterfaceLayout", + "NSUserInterfaceValidation", + "NSView", + "NSViewController", + "NSViewLayoutRegion", + "NSVisualEffectView", + "NSWindow", + "NSWindowController", + "NSWindowRestoration", + "NSWindowScripting", + "NSWindowTab", + "NSWindowTabGroup", + "NSWorkspace", + "NSWritingToolsCoordinator", + "NSWritingToolsCoordinatorAnimationParameters", + "NSWritingToolsCoordinatorContext", + "alloc", + "bitflags", + "block2", + "default", + "libc", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-text", + "objc2-core-video", + "objc2-quartz-core", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "block2 0.6.2", + "target": "block2" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-cloud-kit 0.3.2", + "target": "objc2_cloud_kit" + }, + { + "id": "objc2-core-data 0.3.2", + "target": "objc2_core_data" + }, + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + }, + { + "id": "objc2-core-graphics 0.3.2", + "target": "objc2_core_graphics" + }, + { + "id": "objc2-core-image 0.3.2", + "target": "objc2_core_image" + }, + { + "id": "objc2-core-text 0.3.2", + "target": "objc2_core_text" + }, + { + "id": "objc2-core-video 0.3.2", + "target": "objc2_core_video" + }, + { + "id": "objc2-foundation 0.3.2", + "target": "objc2_foundation" + }, + { + "id": "objc2-quartz-core 0.3.2", + "target": "objc2_quartz_core" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-av-foundation 0.3.2": { + "name": "objc2-av-foundation", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-av-foundation/0.3.2/download", + "sha256": "478ae33fcac9df0a18db8302387c666b8ef08a3e2d62b510ca4fc278a384b6c0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_av_foundation", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_av_foundation", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "AVAnimation", + "AVAsset", + "AVAssetCache", + "AVAssetDownloadStorageManager", + "AVAssetDownloadTask", + "AVAssetExportSession", + "AVAssetImageGenerator", + "AVAssetPlaybackAssistant", + "AVAssetReader", + "AVAssetReaderOutput", + "AVAssetResourceLoader", + "AVAssetSegmentReport", + "AVAssetTrack", + "AVAssetTrackGroup", + "AVAssetTrackSegment", + "AVAssetVariant", + "AVAssetWriter", + "AVAssetWriterInput", + "AVAsynchronousKeyValueLoading", + "AVAudioBuffer", + "AVAudioChannelLayout", + "AVAudioConnectionPoint", + "AVAudioConverter", + "AVAudioEngine", + "AVAudioEnvironmentNode", + "AVAudioFile", + "AVAudioFormat", + "AVAudioIONode", + "AVAudioMix", + "AVAudioMixerNode", + "AVAudioMixing", + "AVAudioNode", + "AVAudioPlayer", + "AVAudioPlayerNode", + "AVAudioProcessingSettings", + "AVAudioRecorder", + "AVAudioRoutingArbiter", + "AVAudioSequencer", + "AVAudioSession", + "AVAudioSessionDeprecated", + "AVAudioSessionRoute", + "AVAudioSessionTypes", + "AVAudioSettings", + "AVAudioTime", + "AVAudioTypes", + "AVAudioUnit", + "AVAudioUnitComponent", + "AVAudioUnitDelay", + "AVAudioUnitDistortion", + "AVAudioUnitEQ", + "AVAudioUnitEffect", + "AVAudioUnitGenerator", + "AVAudioUnitMIDIInstrument", + "AVAudioUnitReverb", + "AVAudioUnitSampler", + "AVAudioUnitTimeEffect", + "AVAudioUnitTimePitch", + "AVAudioUnitVarispeed", + "AVBase", + "AVCameraCalibrationData", + "AVCaption", + "AVCaptionConversionValidator", + "AVCaptionFormatConformer", + "AVCaptionGroup", + "AVCaptionGrouper", + "AVCaptionRenderer", + "AVCaptionSettings", + "AVCaptureAudioDataOutput", + "AVCaptureAudioPreviewOutput", + "AVCaptureControl", + "AVCaptureDataOutputSynchronizer", + "AVCaptureDepthDataOutput", + "AVCaptureDeskViewApplication", + "AVCaptureDevice", + "AVCaptureExternalDisplayConfigurator", + "AVCaptureFileOutput", + "AVCaptureIndexPicker", + "AVCaptureInput", + "AVCaptureMetadataOutput", + "AVCaptureOutput", + "AVCaptureOutputBase", + "AVCapturePhotoOutput", + "AVCaptureReactions", + "AVCaptureSession", + "AVCaptureSessionPreset", + "AVCaptureSlider", + "AVCaptureSpatialAudioMetadataSampleGenerator", + "AVCaptureStillImageOutput", + "AVCaptureSystemExposureBiasSlider", + "AVCaptureSystemPressure", + "AVCaptureSystemZoomSlider", + "AVCaptureTimecodeGenerator", + "AVCaptureVideoDataOutput", + "AVCaptureVideoPreviewLayer", + "AVComposition", + "AVCompositionTrack", + "AVCompositionTrackSegment", + "AVContentKeySession", + "AVContinuityDevice", + "AVDepthData", + "AVError", + "AVExternalStorageDevice", + "AVExternalSyncDevice", + "AVFAudio", + "AVFCapture", + "AVFCore", + "AVGeometry", + "AVMIDIPlayer", + "AVMediaFormat", + "AVMediaSelection", + "AVMediaSelectionGroup", + "AVMetadataFormat", + "AVMetadataIdentifiers", + "AVMetadataItem", + "AVMetadataObject", + "AVMetrics", + "AVMovie", + "AVMovieTrack", + "AVOutputSettingsAssistant", + "AVPlaybackCoordinationMedium", + "AVPlaybackCoordinator", + "AVPlayer", + "AVPlayerInterstitialEventController", + "AVPlayerItem", + "AVPlayerItemIntegratedTimeline", + "AVPlayerItemMediaDataCollector", + "AVPlayerItemOutput", + "AVPlayerItemProtectedContentAdditions", + "AVPlayerItemTrack", + "AVPlayerLayer", + "AVPlayerLooper", + "AVPlayerMediaSelectionCriteria", + "AVPlayerOutput", + "AVPortraitEffectsMatte", + "AVQueuedSampleBufferRendering", + "AVRenderedCaptionImage", + "AVRouteDetector", + "AVSampleBufferAudioRenderer", + "AVSampleBufferDisplayLayer", + "AVSampleBufferGenerator", + "AVSampleBufferRenderSynchronizer", + "AVSampleBufferVideoRenderer", + "AVSampleCursor", + "AVSemanticSegmentationMatte", + "AVSpatialVideoConfiguration", + "AVSynchronizedLayer", + "AVTextStyleRule", + "AVTime", + "AVTimedMetadataGroup", + "AVUtilities", + "AVVideoCompositing", + "AVVideoComposition", + "AVVideoPerformanceMetrics", + "AVVideoSettings", + "alloc", + "bitflags", + "block2", + "default", + "dispatch2", + "objc2-avf-audio", + "objc2-core-audio-types", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-video", + "objc2-image-io", + "objc2-media-toolbox", + "objc2-quartz-core", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "block2 0.6.2", + "target": "block2" + }, + { + "id": "dispatch2 0.3.1", + "target": "dispatch2" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-avf-audio 0.3.2", + "target": "objc2_avf_audio" + }, + { + "id": "objc2-core-audio-types 0.3.2", + "target": "objc2_core_audio_types" + }, + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + }, + { + "id": "objc2-core-graphics 0.3.2", + "target": "objc2_core_graphics" + }, + { + "id": "objc2-core-image 0.3.2", + "target": "objc2_core_image" + }, + { + "id": "objc2-core-video 0.3.2", + "target": "objc2_core_video" + }, + { + "id": "objc2-foundation 0.3.2", + "target": "objc2_foundation" + }, + { + "id": "objc2-image-io 0.3.2", + "target": "objc2_image_io" + }, + { + "id": "objc2-media-toolbox 0.3.2", + "target": "objc2_media_toolbox" + }, + { + "id": "objc2-quartz-core 0.3.2", + "target": "objc2_quartz_core" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-avf-audio 0.3.2": { + "name": "objc2-avf-audio", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-avf-audio/0.3.2/download", + "sha256": "13a380031deed8e99db00065c45937da434ca987c034e13b87e4441f9e4090be" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_avf_audio", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_avf_audio", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "AVAudioSessionRoute" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-foundation 0.3.2", + "target": "objc2_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-cloud-kit 0.3.2": { + "name": "objc2-cloud-kit", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-cloud-kit/0.3.2/download", + "sha256": "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_cloud_kit", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_cloud_kit", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "CKContainer", + "CKRecord", + "CKShare", + "CKShareMetadata", + "bitflags" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-foundation 0.3.2", + "target": "objc2_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-core-audio 0.3.2": { + "name": "objc2-core-audio", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-core-audio/0.3.2/download", + "sha256": "e1eebcea8b0dbff5f7c8504f3107c68fc061a3eb44932051c8cf8a68d969c3b2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_core_audio", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_core_audio", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "AudioHardware", + "AudioHardwareDeprecated", + "objc2" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-core-audio-types 0.3.2": { + "name": "objc2-core-audio-types", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-core-audio-types/0.3.2/download", + "sha256": "5a89f2ec274a0cf4a32642b2991e8b351a404d290da87bb6a9a9d8632490bd1c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_core_audio_types", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_core_audio_types", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "CoreAudioBaseTypes", + "bitflags", + "objc2" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-core-data 0.3.2": { + "name": "objc2-core-data", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-core-data/0.3.2/download", + "sha256": "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_core_data", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_core_data", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "NSAttributeDescription", + "NSEntityDescription", + "NSFetchRequest", + "NSManagedObjectContext", + "NSManagedObjectModel", + "NSPersistentStoreRequest", + "NSPropertyDescription", + "bitflags" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-foundation 0.3.2", + "target": "objc2_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-core-foundation 0.3.2": { + "name": "objc2-core-foundation", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-core-foundation/0.3.2/download", + "sha256": "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_core_foundation", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_core_foundation", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "CFArray", + "CFAttributedString", + "CFAvailability", + "CFBag", + "CFBinaryHeap", + "CFBitVector", + "CFBundle", + "CFByteOrder", + "CFCGTypes", + "CFCalendar", + "CFCharacterSet", + "CFData", + "CFDate", + "CFDateFormatter", + "CFDictionary", + "CFError", + "CFFileDescriptor", + "CFFileSecurity", + "CFLocale", + "CFMachPort", + "CFMessagePort", + "CFNotificationCenter", + "CFNumber", + "CFNumberFormatter", + "CFPlugIn", + "CFPlugInCOM", + "CFPreferences", + "CFPropertyList", + "CFRunLoop", + "CFSet", + "CFSocket", + "CFStream", + "CFString", + "CFStringEncodingExt", + "CFStringTokenizer", + "CFTimeZone", + "CFTree", + "CFURL", + "CFURLAccess", + "CFURLEnumerator", + "CFUUID", + "CFUserNotification", + "CFUtilities", + "CFXMLNode", + "CFXMLParser", + "alloc", + "bitflags", + "block2", + "default", + "dispatch2", + "libc", + "objc2", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "block2 0.6.2", + "target": "block2" + }, + { + "id": "dispatch2 0.3.1", + "target": "dispatch2" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-core-graphics 0.3.2": { + "name": "objc2-core-graphics", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-core-graphics/0.3.2/download", + "sha256": "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_core_graphics", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_core_graphics", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "CGAffineTransform", + "CGBase", + "CGBitmapContext", + "CGColor", + "CGColorConversionInfo", + "CGColorSpace", + "CGContext", + "CGConvertColorDataWithFormat", + "CGDataConsumer", + "CGDataProvider", + "CGDirectDisplay", + "CGDirectDisplayMetal", + "CGDirectPalette", + "CGDisplayConfiguration", + "CGDisplayFade", + "CGDisplayStream", + "CGEXRToneMappingGamma", + "CGError", + "CGEvent", + "CGEventSource", + "CGEventTypes", + "CGFont", + "CGFunction", + "CGGeometry", + "CGGradient", + "CGITUToneMapping", + "CGImage", + "CGLayer", + "CGPDFArray", + "CGPDFContentStream", + "CGPDFContext", + "CGPDFDictionary", + "CGPDFDocument", + "CGPDFObject", + "CGPDFOperatorTable", + "CGPDFPage", + "CGPDFScanner", + "CGPDFStream", + "CGPDFString", + "CGPSConverter", + "CGPath", + "CGPattern", + "CGRemoteOperation", + "CGRenderingBufferProvider", + "CGSession", + "CGShading", + "CGToneMapping", + "CGWindow", + "CGWindowLevel", + "alloc", + "bitflags", + "block2", + "default", + "dispatch2", + "libc", + "objc2", + "objc2-metal", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "block2 0.6.2", + "target": "block2" + }, + { + "id": "dispatch2 0.3.1", + "target": "dispatch2" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + }, + { + "id": "objc2-metal 0.3.2", + "target": "objc2_metal" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-core-image 0.3.2": { + "name": "objc2-core-image", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-core-image/0.3.2/download", + "sha256": "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_core_image", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_core_image", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "CIBarcodeDescriptor", + "CIColor", + "CIContext", + "CIFilter", + "CIImage" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-foundation 0.3.2", + "target": "objc2_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-core-media 0.3.2": { + "name": "objc2-core-media", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-core-media/0.3.2/download", + "sha256": "05ec576860167a15dd9fce7fbee7512beb4e31f532159d3482d1f9c6caedf31d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_core_media", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_core_media", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "CMAttachment", + "CMAudioClock", + "CMAudioDeviceClock", + "CMBase", + "CMBlockBuffer", + "CMBufferQueue", + "CMFormatDescription", + "CMFormatDescriptionBridge", + "CMMemoryPool", + "CMMetadata", + "CMSampleBuffer", + "CMSimpleQueue", + "CMSync", + "CMTag", + "CMTagCollection", + "CMTaggedBufferGroup", + "CMTextMarkup", + "CMTime", + "CMTimeRange", + "alloc", + "bitflags", + "block2", + "default", + "dispatch2", + "objc2", + "objc2-core-audio", + "objc2-core-audio-types", + "objc2-core-video", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "block2 0.6.2", + "target": "block2" + }, + { + "id": "dispatch2 0.3.1", + "target": "dispatch2" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-core-audio 0.3.2", + "target": "objc2_core_audio" + }, + { + "id": "objc2-core-audio-types 0.3.2", + "target": "objc2_core_audio_types" + }, + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + }, + { + "id": "objc2-core-video 0.3.2", + "target": "objc2_core_video" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-core-text 0.3.2": { + "name": "objc2-core-text", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-core-text/0.3.2/download", + "sha256": "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_core_text", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_core_text", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "CTFont", + "CTFontCollection", + "CTFontDescriptor", + "CTGlyphInfo", + "bitflags", + "objc2" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-core-video 0.3.2": { + "name": "objc2-core-video", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-core-video/0.3.2/download", + "sha256": "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_core_video", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_core_video", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "CVBase", + "CVBuffer", + "CVDisplayLink", + "CVHostTime", + "CVImageBuffer", + "CVMetalBuffer", + "CVMetalBufferCache", + "CVMetalTexture", + "CVMetalTextureCache", + "CVOpenGLBuffer", + "CVOpenGLBufferPool", + "CVOpenGLTexture", + "CVOpenGLTextureCache", + "CVPixelBuffer", + "CVPixelBufferIOSurface", + "CVPixelBufferPool", + "CVPixelFormatDescription", + "CVReturn", + "alloc", + "bitflags", + "block2", + "default", + "objc2", + "objc2-core-graphics", + "objc2-metal", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "block2 0.6.2", + "target": "block2" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + }, + { + "id": "objc2-core-graphics 0.3.2", + "target": "objc2_core_graphics" + }, + { + "id": "objc2-metal 0.3.2", + "target": "objc2_metal" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-encode 4.1.0": { + "name": "objc2-encode", + "version": "4.1.0", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-encode/4.1.0/download", + "sha256": "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_encode", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_encode", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "4.1.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "objc2-foundation 0.3.2": { + "name": "objc2-foundation", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-foundation/0.3.2/download", + "sha256": "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_foundation", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_foundation", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "FoundationErrors", + "FoundationLegacySwiftCompatibility", + "NSAffineTransform", + "NSAppleEventDescriptor", + "NSAppleEventManager", + "NSAppleScript", + "NSArchiver", + "NSArray", + "NSAttributedString", + "NSAutoreleasePool", + "NSBackgroundActivityScheduler", + "NSBundle", + "NSByteCountFormatter", + "NSByteOrder", + "NSCache", + "NSCalendar", + "NSCalendarDate", + "NSCharacterSet", + "NSClassDescription", + "NSCoder", + "NSComparisonPredicate", + "NSCompoundPredicate", + "NSConnection", + "NSData", + "NSDate", + "NSDateComponentsFormatter", + "NSDateFormatter", + "NSDateInterval", + "NSDateIntervalFormatter", + "NSDebug", + "NSDecimal", + "NSDecimalNumber", + "NSDictionary", + "NSDistantObject", + "NSDistributedLock", + "NSDistributedNotificationCenter", + "NSEnergyFormatter", + "NSEnumerator", + "NSError", + "NSException", + "NSExpression", + "NSExtensionContext", + "NSExtensionItem", + "NSExtensionRequestHandling", + "NSFileCoordinator", + "NSFileHandle", + "NSFileManager", + "NSFilePresenter", + "NSFileVersion", + "NSFileWrapper", + "NSFormatter", + "NSGarbageCollector", + "NSGeometry", + "NSHFSFileTypes", + "NSHTTPCookie", + "NSHTTPCookieStorage", + "NSHashTable", + "NSHost", + "NSISO8601DateFormatter", + "NSIndexPath", + "NSIndexSet", + "NSInflectionRule", + "NSInvocation", + "NSItemProvider", + "NSJSONSerialization", + "NSKeyValueCoding", + "NSKeyValueObserving", + "NSKeyValueSharedObservers", + "NSKeyedArchiver", + "NSLengthFormatter", + "NSLinguisticTagger", + "NSListFormatter", + "NSLocale", + "NSLocalizedNumberFormatRule", + "NSLock", + "NSMapTable", + "NSMassFormatter", + "NSMeasurement", + "NSMeasurementFormatter", + "NSMetadata", + "NSMetadataAttributes", + "NSMethodSignature", + "NSMorphology", + "NSNetServices", + "NSNotification", + "NSNotificationQueue", + "NSNull", + "NSNumberFormatter", + "NSObjCRuntime", + "NSObject", + "NSObjectScripting", + "NSOperation", + "NSOrderedCollectionChange", + "NSOrderedCollectionDifference", + "NSOrderedSet", + "NSOrthography", + "NSPathUtilities", + "NSPersonNameComponents", + "NSPersonNameComponentsFormatter", + "NSPointerArray", + "NSPointerFunctions", + "NSPort", + "NSPortCoder", + "NSPortMessage", + "NSPortNameServer", + "NSPredicate", + "NSProcessInfo", + "NSProgress", + "NSPropertyList", + "NSProtocolChecker", + "NSProxy", + "NSRange", + "NSRegularExpression", + "NSRelativeDateTimeFormatter", + "NSRunLoop", + "NSScanner", + "NSScriptClassDescription", + "NSScriptCoercionHandler", + "NSScriptCommand", + "NSScriptCommandDescription", + "NSScriptExecutionContext", + "NSScriptKeyValueCoding", + "NSScriptObjectSpecifiers", + "NSScriptStandardSuiteCommands", + "NSScriptSuiteRegistry", + "NSScriptWhoseTests", + "NSSet", + "NSSortDescriptor", + "NSSpellServer", + "NSStream", + "NSString", + "NSTask", + "NSTermOfAddress", + "NSTextCheckingResult", + "NSThread", + "NSTimeZone", + "NSTimer", + "NSURL", + "NSURLAuthenticationChallenge", + "NSURLCache", + "NSURLConnection", + "NSURLCredential", + "NSURLCredentialStorage", + "NSURLDownload", + "NSURLError", + "NSURLHandle", + "NSURLProtectionSpace", + "NSURLProtocol", + "NSURLRequest", + "NSURLResponse", + "NSURLSession", + "NSUUID", + "NSUbiquitousKeyValueStore", + "NSUndoManager", + "NSUnit", + "NSUserActivity", + "NSUserDefaults", + "NSUserNotification", + "NSUserScriptTask", + "NSValue", + "NSValueTransformer", + "NSXMLDTD", + "NSXMLDTDNode", + "NSXMLDocument", + "NSXMLElement", + "NSXMLNode", + "NSXMLNodeOptions", + "NSXMLParser", + "NSXPCConnection", + "NSZone", + "alloc", + "bitflags", + "block2", + "default", + "libc", + "objc2-core-foundation", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "block2 0.6.2", + "target": "block2" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "objc2-image-io 0.3.2": { + "name": "objc2-image-io", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-image-io/0.3.2/download", + "sha256": "32b0446e98cf4a784cc7a0177715ff317eeaa8463841c616cfc78aa4f953c4ea" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_image_io", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_image_io", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "CGImageProperties", + "objc2" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-io-surface 0.3.2": { + "name": "objc2-io-surface", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-io-surface/0.3.2/download", + "sha256": "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_io_surface", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_io_surface", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-media-toolbox 0.3.2": { + "name": "objc2-media-toolbox", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-media-toolbox/0.3.2/download", + "sha256": "edd9fdde720df3da7046bb9097811000c1e7ab5cd579fa89d96b27d56781fb30" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_media_toolbox", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_media_toolbox", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "MTAudioProcessingTap", + "objc2" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-metal 0.3.2": { + "name": "objc2-metal", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-metal/0.3.2/download", + "sha256": "a0125f776a10d00af4152d74616409f0d4a2053a6f57fa5b7d6aa2854ac04794" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_metal", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_metal", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "MTLAllocation", + "MTLBuffer", + "MTLDevice", + "MTLGPUAddress", + "MTLLibrary", + "MTLPixelFormat", + "MTLResource", + "MTLTexture", + "bitflags" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-foundation 0.3.2", + "target": "objc2_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-quartz-core 0.3.2": { + "name": "objc2-quartz-core", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-quartz-core/0.3.2/download", + "sha256": "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_quartz_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_quartz_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "CADisplayLink", + "CALayer", + "CAMediaTiming", + "CAMediaTimingFunction", + "CAOpenGLLayer", + "bitflags" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-foundation 0.3.2", + "target": "objc2_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "objc2-system-configuration 0.3.2": { + "name": "objc2-system-configuration", + "version": "0.3.2", + "package_url": "https://github.com/madsmtm/objc2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/objc2-system-configuration/0.3.2/download", + "sha256": "7216bd11cbda54ccabcab84d523dc93b858ec75ecfb3a7d89513fa22464da396" + } + }, + "targets": [ + { + "Library": { + "crate_name": "objc2_system_configuration", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "objc2_system_configuration", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": null + }, + "oid-registry 0.7.1": { + "name": "oid-registry", + "version": "0.7.1", + "package_url": "https://github.com/rusticata/oid-registry.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/oid-registry/0.7.1/download", + "sha256": "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" + } + }, + "targets": [ + { + "Library": { + "crate_name": "oid_registry", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "oid_registry", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "crypto", + "default", + "kdf", + "nist_algs", + "pkcs1", + "pkcs12", + "pkcs7", + "pkcs9", + "registry", + "x509", + "x962" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "asn1-rs 0.6.2", + "target": "asn1_rs" + }, + { + "id": "oid-registry 0.7.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.7.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "once_cell 1.21.4": { + "name": "once_cell", + "version": "1.21.4", + "package_url": "https://github.com/matklad/once_cell", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/once_cell/1.21.4/download", + "sha256": "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + } + }, + "targets": [ + { + "Library": { + "crate_name": "once_cell", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "once_cell", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "race", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.21.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "once_cell_polyfill 1.70.2": { + "name": "once_cell_polyfill", + "version": "1.70.2", + "package_url": "https://github.com/polyfill-rs/once_cell_polyfill", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/once_cell_polyfill/1.70.2/download", + "sha256": "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + } + }, + "targets": [ + { + "Library": { + "crate_name": "once_cell_polyfill", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "once_cell_polyfill", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.70.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "onig 6.5.3": { + "name": "onig", + "version": "6.5.3", + "package_url": "https://github.com/iwillspeak/rust-onig", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/onig/6.5.3/download", + "sha256": "0cc3cbf698f9438986c11a880c90a6d04b9de27575afd28bbf45b154b6c709e2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "onig", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "onig", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "onig_sys 69.9.3", + "target": "onig_sys" + } + ], + "selects": { + "cfg(windows)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2021", + "version": "6.5.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.md" + }, + "onig_sys 69.9.3": { + "name": "onig_sys", + "version": "69.9.3", + "package_url": "https://github.com/rust-onig/rust-onig", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/onig_sys/69.9.3/download", + "sha256": "1e68317604e77e53b85896388e1a803c1d21b74c899ec9e5e1112db90735edd7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "onig_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "onig_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "onig_sys 69.9.3", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "69.9.3" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + }, + { + "id": "pkg-config 0.3.33", + "target": "pkg_config" + } + ], + "selects": {} + }, + "links": "onig" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.md" + }, + "opaque-debug 0.3.1": { + "name": "opaque-debug", + "version": "0.3.1", + "package_url": "https://github.com/RustCrypto/utils", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/opaque-debug/0.3.1/download", + "sha256": "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + } + }, + "targets": [ + { + "Library": { + "crate_name": "opaque_debug", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "opaque_debug", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.3.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "opus 0.3.1": { + "name": "opus", + "version": "0.3.1", + "package_url": "https://github.com/SpaceManiac/opus-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/opus/0.3.1/download", + "sha256": "4d3809943dff6fbad5f0484449ea26bdb9cb7d8efdf26ed50d3c7f227f69eb5c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "opus", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "opus", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "audiopus_sys 0.2.2", + "target": "audiopus_sys" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.3.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ordered-float 5.3.0": { + "name": "ordered-float", + "version": "5.3.0", + "package_url": "https://github.com/reem/rust-ordered-float", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ordered-float/5.3.0/download", + "sha256": "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ordered_float", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ordered_float", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "num-traits 0.2.19", + "target": "num_traits" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "5.3.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE-MIT" + }, + "ordered-stream 0.2.0": { + "name": "ordered-stream", + "version": "0.2.0", + "package_url": "https://github.com/danieldg/ordered-stream", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ordered-stream/0.2.0/download", + "sha256": "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ordered_stream", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ordered_stream", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "futures-core 0.3.33", + "target": "futures_core" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "os_display 0.1.4": { + "name": "os_display", + "version": "0.1.4", + "package_url": "https://github.com/blyxxyz/os_display", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/os_display/0.1.4/download", + "sha256": "ad5fd71b79026fb918650dde6d125000a233764f1c2f1659a1c71118e33ea08f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "os_display", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "os_display", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "native", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "unicode-width 0.2.2", + "target": "unicode_width" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.4" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "os_pipe 1.2.3": { + "name": "os_pipe", + "version": "1.2.3", + "package_url": "https://github.com/oconnor663/os_pipe.rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/os_pipe/1.2.3/download", + "sha256": "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" + } + }, + "targets": [ + { + "Library": { + "crate_name": "os_pipe", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "os_pipe", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [], + "selects": { + "aarch64-unknown-linux-gnu": [ + "io_safety" + ], + "aarch64-unknown-linux-musl": [ + "io_safety" + ], + "x86_64-unknown-linux-gnu": [ + "io_safety" + ], + "x86_64-unknown-linux-musl": [ + "io_safety" + ] + } + }, + "deps": { + "common": [], + "selects": { + "cfg(not(windows))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "1.2.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "outref 0.5.2": { + "name": "outref", + "version": "0.5.2", + "package_url": "https://github.com/Nugine/outref", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/outref/0.5.2/download", + "sha256": "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "outref", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "outref", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.5.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "p256 0.13.2": { + "name": "p256", + "version": "0.13.2", + "package_url": "https://github.com/RustCrypto/elliptic-curves/tree/master/p256", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/p256/0.13.2/download", + "sha256": "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "p256", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "p256", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "arithmetic", + "default", + "digest", + "ecdh", + "ecdsa", + "ecdsa-core", + "pem", + "pkcs8", + "sha2", + "sha256", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "ecdsa 0.16.9", + "target": "ecdsa", + "alias": "ecdsa_core" + }, + { + "id": "elliptic-curve 0.13.8", + "target": "elliptic_curve" + }, + { + "id": "primeorder 0.13.6", + "target": "primeorder" + }, + { + "id": "sha2 0.10.9", + "target": "sha2" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.2" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "p384 0.13.1": { + "name": "p384", + "version": "0.13.1", + "package_url": "https://github.com/RustCrypto/elliptic-curves/tree/master/p384", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/p384/0.13.1/download", + "sha256": "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "p384", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "p384", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "arithmetic", + "default", + "digest", + "ecdh", + "ecdsa", + "ecdsa-core", + "pem", + "pkcs8", + "sha2", + "sha384", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "ecdsa 0.16.9", + "target": "ecdsa", + "alias": "ecdsa_core" + }, + { + "id": "elliptic-curve 0.13.8", + "target": "elliptic_curve" + }, + { + "id": "primeorder 0.13.6", + "target": "primeorder" + }, + { + "id": "sha2 0.10.9", + "target": "sha2" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "palette 0.7.6": { + "name": "palette", + "version": "0.7.6", + "package_url": "https://github.com/Ogeon/palette", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/palette/0.7.6/download", + "sha256": "4cbf71184cc5ecc2e4e1baccdb21026c20e5fc3dcf63028a086131b3ab00b6e6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "palette", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_main", + "crate_root": "build/main.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "palette", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "bytemuck", + "libm" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bytemuck 1.25.2", + "target": "bytemuck" + }, + { + "id": "fast-srgb8 1.0.0", + "target": "fast_srgb8" + }, + { + "id": "libm 0.2.16", + "target": "libm" + }, + { + "id": "palette 0.7.6", + "target": "build_script_main" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "palette_derive 0.7.6", + "target": "palette_derive" + } + ], + "selects": {} + }, + "version": "0.7.6" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "palette_derive 0.7.6": { + "name": "palette_derive", + "version": "0.7.6", + "package_url": "https://github.com/Ogeon/palette", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/palette_derive/0.7.6/download", + "sha256": "f5030daf005bface118c096f510ffb781fc28f9ab6a32ab224d8631be6851d30" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "palette_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "palette_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "by_address 1.2.1", + "target": "by_address" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.7.6" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "parking 2.2.1": { + "name": "parking", + "version": "2.2.1", + "package_url": "https://github.com/smol-rs/parking", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/parking/2.2.1/download", + "sha256": "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + } + }, + "targets": [ + { + "Library": { + "crate_name": "parking", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "parking", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "2.2.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "parking_lot 0.12.5": { + "name": "parking_lot", + "version": "0.12.5", + "package_url": "https://github.com/Amanieu/parking_lot", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/parking_lot/0.12.5/download", + "sha256": "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "parking_lot", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "parking_lot", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "lock_api 0.4.14", + "target": "lock_api" + }, + { + "id": "parking_lot_core 0.9.12", + "target": "parking_lot_core" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.12.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "parking_lot_core 0.9.12": { + "name": "parking_lot_core", + "version": "0.9.12", + "package_url": "https://github.com/Amanieu/parking_lot", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/parking_lot_core/0.9.12/download", + "sha256": "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "parking_lot_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "parking_lot_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "parking_lot_core 0.9.12", + "target": "build_script_build" + }, + { + "id": "smallvec 1.15.2", + "target": "smallvec" + } + ], + "selects": { + "cfg(target_os = \"redox\")": [ + { + "id": "redox_syscall 0.5.18", + "target": "syscall" + } + ], + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ] + } + }, + "edition": "2021", + "version": "0.9.12" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "parse_datetime 0.14.0": { + "name": "parse_datetime", + "version": "0.14.0", + "package_url": "https://github.com/uutils/parse_datetime", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/parse_datetime/0.14.0/download", + "sha256": "413775a7eac2261d2211a79d10ef275e5b6f7b527eec42ad09adce2ffa92b6e5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "parse_datetime", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "parse_datetime", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "jiff 0.2.35", + "target": "jiff" + }, + { + "id": "num-traits 0.2.19", + "target": "num_traits" + }, + { + "id": "winnow 0.7.15", + "target": "winnow" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.14.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "pcre2 0.2.11": { + "name": "pcre2", + "version": "0.2.11", + "package_url": "https://github.com/BurntSushi/rust-pcre2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pcre2/0.2.11/download", + "sha256": "9e970b0fcce0c7ee6ef662744ff711f21ccd6f11b7cf03cd187a80e89797fc67" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pcre2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pcre2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "pcre2-sys 0.2.10", + "target": "pcre2_sys" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.2.11" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "pcre2-sys 0.2.10": { + "name": "pcre2-sys", + "version": "0.2.10", + "package_url": "https://github.com/BurntSushi/rust-pcre2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pcre2-sys/0.2.10/download", + "sha256": "18b9073c1a2549bd409bf4a32c94d903bb1a09bf845bc306ae148897fa0760a4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pcre2_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pcre2_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "pcre2-sys 0.2.10", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.2.10" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + }, + { + "id": "pkg-config 0.3.33", + "target": "pkg_config" + } + ], + "selects": {} + }, + "build_script_env": { + "common": { + "PCRE2_SYS_STATIC": "1" + }, + "selects": {} + } + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "peg 0.8.6": { + "name": "peg", + "version": "0.8.6", + "package_url": "https://github.com/kevinmehall/rust-peg", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/peg/0.8.6/download", + "sha256": "0aad070be5b63aa72103f2fcdd70a83adbd5e90112ce5b574171ff1c65501773" + } + }, + "targets": [ + { + "Library": { + "crate_name": "peg", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "peg", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "peg-runtime 0.8.6", + "target": "peg_runtime" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "peg-macros 0.8.6", + "target": "peg_macros" + } + ], + "selects": {} + }, + "version": "0.8.6" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "peg-macros 0.8.6": { + "name": "peg-macros", + "version": "0.8.6", + "package_url": "https://github.com/kevinmehall/rust-peg", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/peg-macros/0.8.6/download", + "sha256": "ddd8ef6825cae95355031ae26a99b616a2a21f22ba2de0197c43dfb05acbe7ee" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "peg_macros", + "crate_root": "lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "peg_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "peg-runtime 0.8.6", + "target": "peg_runtime" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.6" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "peg-runtime 0.8.6": { + "name": "peg-runtime", + "version": "0.8.6", + "package_url": "https://github.com/kevinmehall/rust-peg", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/peg-runtime/0.8.6/download", + "sha256": "7011d97b484a5ebdc4b1fdb3b12d5e4bbbea56e9d22b688f2e79e04b65a7d8a6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "peg_runtime", + "crate_root": "lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "peg_runtime", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.6" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "pem 3.0.6": { + "name": "pem", + "version": "3.0.6", + "package_url": "https://github.com/jcreekmore/pem-rs.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pem/3.0.6/download", + "sha256": "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pem", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pem", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "base64 0.22.1", + "target": "base64" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "3.0.6" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.md" + }, + "pem-rfc7468 0.7.0": { + "name": "pem-rfc7468", + "version": "0.7.0", + "package_url": "https://github.com/RustCrypto/formats/tree/master/pem-rfc7468", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pem-rfc7468/0.7.0/download", + "sha256": "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pem_rfc7468", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pem_rfc7468", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "base64ct 1.8.3", + "target": "base64ct" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "percent-encoding 2.3.2": { + "name": "percent-encoding", + "version": "2.3.2", + "package_url": "https://github.com/servo/rust-url/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/percent-encoding/2.3.2/download", + "sha256": "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + } + }, + "targets": [ + { + "Library": { + "crate_name": "percent_encoding", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "percent_encoding", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "std" + ], + "selects": { + "aarch64-unknown-linux-gnu": [ + "default" + ], + "aarch64-unknown-linux-musl": [ + "default" + ], + "x86_64-unknown-linux-gnu": [ + "default" + ], + "x86_64-unknown-linux-musl": [ + "default" + ] + } + }, + "edition": "2018", + "version": "2.3.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "pest 2.8.8": { + "name": "pest", + "version": "2.8.8", + "package_url": "https://github.com/pest-parser/pest", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pest/2.8.8/download", + "sha256": "7df728be843c7070fab6ab7c328c4e9e9d78e23bf749c0669c86ee7ebfa050a2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pest", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pest", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "memchr", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "ucd-trie 0.1.7", + "target": "ucd_trie" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.8.8" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "pest_derive 2.8.8": { + "name": "pest_derive", + "version": "2.8.8", + "package_url": "https://github.com/pest-parser/pest", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pest_derive/2.8.8/download", + "sha256": "9e2dd6fc3b26b3462ee188aac870f5a41d398f1cd5e2408d16531bd71c9591fd" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "pest_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pest_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "pest 2.8.8", + "target": "pest" + }, + { + "id": "pest_generator 2.8.8", + "target": "pest_generator" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.8.8" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "pest_generator 2.8.8": { + "name": "pest_generator", + "version": "2.8.8", + "package_url": "https://github.com/pest-parser/pest", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pest_generator/2.8.8/download", + "sha256": "6a7a9205cfb6f596a9e8b689c0a15f9ceb7a1aafae7aaf788150ac65b29975b6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pest_generator", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pest_generator", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "pest 2.8.8", + "target": "pest" + }, + { + "id": "pest_meta 2.8.8", + "target": "pest_meta" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.8.8" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "pest_meta 2.8.8": { + "name": "pest_meta", + "version": "2.8.8", + "package_url": "https://github.com/pest-parser/pest", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pest_meta/2.8.8/download", + "sha256": "85abd351c0de1e8384fc791a0737111a350394937e92b956b743dac12429f57c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pest_meta", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pest_meta", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "pest 2.8.8", + "target": "pest" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.8.8" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "petgraph 0.8.3": { + "name": "petgraph", + "version": "0.8.3", + "package_url": "https://github.com/petgraph/petgraph", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/petgraph/0.8.3/download", + "sha256": "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" + } + }, + "targets": [ + { + "Library": { + "crate_name": "petgraph", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "petgraph", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "fixedbitset 0.5.7", + "target": "fixedbitset" + }, + { + "id": "hashbrown 0.15.5", + "target": "hashbrown" + }, + { + "id": "indexmap 2.14.0", + "target": "indexmap" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "phf 0.11.3": { + "name": "phf", + "version": "0.11.3", + "package_url": "https://github.com/rust-phf/rust-phf", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/phf/0.11.3/download", + "sha256": "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" + } + }, + "targets": [ + { + "Library": { + "crate_name": "phf", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "phf", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "phf_shared 0.11.3", + "target": "phf_shared" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.11.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "phf 0.12.1": { + "name": "phf", + "version": "0.12.1", + "package_url": "https://github.com/rust-phf/rust-phf", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/phf/0.12.1/download", + "sha256": "913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "phf", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "phf", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "phf_shared 0.12.1", + "target": "phf_shared" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.12.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "phf 0.13.1": { + "name": "phf", + "version": "0.13.1", + "package_url": "https://github.com/rust-phf/rust-phf", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/phf/0.13.1/download", + "sha256": "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" + } + }, + "targets": [ + { + "Library": { + "crate_name": "phf", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "phf", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "macros", + "phf_macros", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "phf_shared 0.13.1", + "target": "phf_shared" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "phf_macros 0.13.1", + "target": "phf_macros" + } + ], + "selects": {} + }, + "version": "0.13.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "phf_codegen 0.11.3": { + "name": "phf_codegen", + "version": "0.11.3", + "package_url": "https://github.com/rust-phf/rust-phf", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/phf_codegen/0.11.3/download", + "sha256": "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "phf_codegen", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "phf_codegen", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "phf_generator 0.11.3", + "target": "phf_generator" + }, + { + "id": "phf_shared 0.11.3", + "target": "phf_shared" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.11.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "phf_codegen 0.13.1": { + "name": "phf_codegen", + "version": "0.13.1", + "package_url": "https://github.com/rust-phf/rust-phf", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/phf_codegen/0.13.1/download", + "sha256": "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "phf_codegen", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "phf_codegen", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "phf_generator 0.13.1", + "target": "phf_generator" + }, + { + "id": "phf_shared 0.13.1", + "target": "phf_shared" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "phf_generator 0.11.3": { + "name": "phf_generator", + "version": "0.11.3", + "package_url": "https://github.com/rust-phf/rust-phf", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/phf_generator/0.11.3/download", + "sha256": "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "phf_generator", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "phf_generator", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "phf_shared 0.11.3", + "target": "phf_shared" + }, + { + "id": "rand 0.8.7", + "target": "rand" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.11.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "phf_generator 0.13.1": { + "name": "phf_generator", + "version": "0.13.1", + "package_url": "https://github.com/rust-phf/rust-phf", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/phf_generator/0.13.1/download", + "sha256": "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" + } + }, + "targets": [ + { + "Library": { + "crate_name": "phf_generator", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "phf_generator", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "fastrand 2.5.0", + "target": "fastrand" + }, + { + "id": "phf_shared 0.13.1", + "target": "phf_shared" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "phf_macros 0.13.1": { + "name": "phf_macros", + "version": "0.13.1", + "package_url": "https://github.com/rust-phf/rust-phf", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/phf_macros/0.13.1/download", + "sha256": "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "phf_macros", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "phf_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "phf_generator 0.13.1", + "target": "phf_generator" + }, + { + "id": "phf_shared 0.13.1", + "target": "phf_shared" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "phf_shared 0.11.3": { + "name": "phf_shared", + "version": "0.11.3", + "package_url": "https://github.com/rust-phf/rust-phf", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/phf_shared/0.11.3/download", + "sha256": "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "phf_shared", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "phf_shared", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "siphasher 1.0.3", + "target": "siphasher" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.11.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "phf_shared 0.12.1": { + "name": "phf_shared", + "version": "0.12.1", + "package_url": "https://github.com/rust-phf/rust-phf", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/phf_shared/0.12.1/download", + "sha256": "06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981" + } + }, + "targets": [ + { + "Library": { + "crate_name": "phf_shared", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "phf_shared", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "siphasher 1.0.3", + "target": "siphasher" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.12.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "phf_shared 0.13.1": { + "name": "phf_shared", + "version": "0.13.1", + "package_url": "https://github.com/rust-phf/rust-phf", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/phf_shared/0.13.1/download", + "sha256": "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" + } + }, + "targets": [ + { + "Library": { + "crate_name": "phf_shared", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "phf_shared", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "siphasher 1.0.3", + "target": "siphasher" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "pi-ast 17.1.5": { + "name": "pi-ast", + "version": "17.1.5", + "package_url": "https://github.com/can1357/oh-my-pi", + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "pi_ast", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pi_ast", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "anyhow 1.0.104", + "target": "anyhow" + }, + { + "id": "ast-grep-core 0.39.9", + "target": "ast_grep_core" + }, + { + "id": "globset 0.4.19", + "target": "globset" + }, + { + "id": "ignore 0.4.31", + "target": "ignore" + }, + { + "id": "phf 0.13.1", + "target": "phf" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "tree-sitter 0.25.10", + "target": "tree_sitter" + }, + { + "id": "tree-sitter-astro-next 0.1.1", + "target": "tree_sitter_astro_next", + "alias": "tree_sitter_astro" + }, + { + "id": "tree-sitter-bash 0.25.1", + "target": "tree_sitter_bash" + }, + { + "id": "tree-sitter-c 0.24.2", + "target": "tree_sitter_c" + }, + { + "id": "tree-sitter-c-sharp 0.23.5", + "target": "tree_sitter_c_sharp" + }, + { + "id": "tree-sitter-clojure 0.1.0", + "target": "tree_sitter_clojure" + }, + { + "id": "tree-sitter-cmake 0.7.4", + "target": "tree_sitter_cmake" + }, + { + "id": "tree-sitter-cpp 0.23.4", + "target": "tree_sitter_cpp" + }, + { + "id": "tree-sitter-css 0.25.0", + "target": "tree_sitter_css" + }, + { + "id": "tree-sitter-dart 0.2.0", + "target": "tree_sitter_dart" + }, + { + "id": "tree-sitter-diff 0.1.0", + "target": "tree_sitter_diff" + }, + { + "id": "tree-sitter-dockerfile-updated 0.2.0", + "target": "tree_sitter_dockerfile_updated", + "alias": "tree_sitter_dockerfile" + }, + { + "id": "tree-sitter-elisp 1.6.1", + "target": "tree_sitter_elisp" + }, + { + "id": "tree-sitter-elixir 0.3.5", + "target": "tree_sitter_elixir" + }, + { + "id": "tree-sitter-erlang 0.16.0", + "target": "tree_sitter_erlang" + }, + { + "id": "tree-sitter-fortran 0.6.0", + "target": "tree_sitter_fortran" + }, + { + "id": "tree-sitter-go 0.25.0", + "target": "tree_sitter_go" + }, + { + "id": "tree-sitter-graphql 0.1.0", + "target": "tree_sitter_graphql" + }, + { + "id": "tree-sitter-haskell 0.23.1", + "target": "tree_sitter_haskell" + }, + { + "id": "tree-sitter-hcl 1.1.0", + "target": "tree_sitter_hcl" + }, + { + "id": "tree-sitter-html 0.23.2", + "target": "tree_sitter_html" + }, + { + "id": "tree-sitter-ini 1.4.0", + "target": "tree_sitter_ini" + }, + { + "id": "tree-sitter-java 0.23.5", + "target": "tree_sitter_java" + }, + { + "id": "tree-sitter-javascript 0.25.0", + "target": "tree_sitter_javascript" + }, + { + "id": "tree-sitter-json 0.24.8", + "target": "tree_sitter_json" + }, + { + "id": "tree-sitter-julia 0.23.1", + "target": "tree_sitter_julia" + }, + { + "id": "tree-sitter-just 0.2.0", + "target": "tree_sitter_just" + }, + { + "id": "tree-sitter-kotlin-sg 0.4.1", + "target": "tree_sitter_kotlin_sg", + "alias": "tree_sitter_kotlin" + }, + { + "id": "tree-sitter-lua 0.5.0", + "target": "tree_sitter_lua" + }, + { + "id": "tree-sitter-make 1.1.1", + "target": "tree_sitter_make" + }, + { + "id": "tree-sitter-md 0.5.3", + "target": "tree_sitter_md" + }, + { + "id": "tree-sitter-nix 0.3.0", + "target": "tree_sitter_nix" + }, + { + "id": "tree-sitter-objc 3.0.2", + "target": "tree_sitter_objc" + }, + { + "id": "tree-sitter-ocaml 0.24.2", + "target": "tree_sitter_ocaml" + }, + { + "id": "tree-sitter-odin 1.3.0", + "target": "tree_sitter_odin" + }, + { + "id": "tree-sitter-php 0.24.2", + "target": "tree_sitter_php" + }, + { + "id": "tree-sitter-powershell 0.26.4", + "target": "tree_sitter_powershell" + }, + { + "id": "tree-sitter-proto 0.4.0", + "target": "tree_sitter_proto" + }, + { + "id": "tree-sitter-python 0.25.0", + "target": "tree_sitter_python" + }, + { + "id": "tree-sitter-r 1.3.0", + "target": "tree_sitter_r" + }, + { + "id": "tree-sitter-regex 0.25.0", + "target": "tree_sitter_regex" + }, + { + "id": "tree-sitter-ruby 0.23.1", + "target": "tree_sitter_ruby" + }, + { + "id": "tree-sitter-rust 0.24.2", + "target": "tree_sitter_rust" + }, + { + "id": "tree-sitter-scala 0.26.0", + "target": "tree_sitter_scala" + }, + { + "id": "tree-sitter-sequel 0.3.11", + "target": "tree_sitter_sequel", + "alias": "tree_sitter_sql" + }, + { + "id": "tree-sitter-solidity 1.2.13", + "target": "tree_sitter_solidity" + }, + { + "id": "tree-sitter-starlark 1.3.0", + "target": "tree_sitter_starlark" + }, + { + "id": "tree-sitter-svelte-next 0.1.1", + "target": "tree_sitter_svelte_next", + "alias": "tree_sitter_svelte" + }, + { + "id": "tree-sitter-swift 0.7.3", + "target": "tree_sitter_swift" + }, + { + "id": "tree-sitter-tlaplus 1.5.0", + "target": "tree_sitter_tlaplus" + }, + { + "id": "tree-sitter-toml-ng 0.7.0", + "target": "tree_sitter_toml_ng" + }, + { + "id": "tree-sitter-typescript 0.23.2", + "target": "tree_sitter_typescript" + }, + { + "id": "tree-sitter-verilog 1.0.3", + "target": "tree_sitter_verilog" + }, + { + "id": "tree-sitter-vue-next 0.1.0", + "target": "tree_sitter_vue_next", + "alias": "tree_sitter_vue" + }, + { + "id": "tree-sitter-xml 0.7.0", + "target": "tree_sitter_xml" + }, + { + "id": "tree-sitter-yaml 0.7.2", + "target": "tree_sitter_yaml" + }, + { + "id": "tree-sitter-zig 1.1.2", + "target": "tree_sitter_zig" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "17.1.5" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "pi-iso 17.1.5": { + "name": "pi-iso", + "version": "17.1.5", + "package_url": "https://github.com/can1357/oh-my-pi", + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "pi_iso", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pi_iso", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "similar 3.1.1", + "target": "similar" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + } + ], + "selects": { + "cfg(target_os = \"linux\")": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "async-trait 0.1.91", + "target": "async_trait" + } + ], + "selects": {} + }, + "version": "17.1.5" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "pi-natives 17.1.5": { + "name": "pi-natives", + "version": "17.1.5", + "package_url": "https://github.com/can1357/oh-my-pi", + "repository": null, + "targets": [ + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": null, + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "anyhow 1.0.104", + "target": "anyhow" + }, + { + "id": "arboard 3.6.1", + "target": "arboard" + }, + { + "id": "ast-grep-core 0.39.9", + "target": "ast_grep_core" + }, + { + "id": "audiopus_sys 0.2.2", + "target": "audiopus_sys" + }, + { + "id": "base64 0.22.1", + "target": "base64" + }, + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "flume 0.11.1", + "target": "flume" + }, + { + "id": "fontdue 0.9.3", + "target": "fontdue" + }, + { + "id": "globset 0.4.19", + "target": "globset" + }, + { + "id": "grep-matcher 0.1.9", + "target": "grep_matcher" + }, + { + "id": "grep-pcre2 0.1.10", + "target": "grep_pcre2" + }, + { + "id": "grep-regex 0.1.14", + "target": "grep_regex" + }, + { + "id": "grep-searcher 0.1.17", + "target": "grep_searcher" + }, + { + "id": "html-to-markdown-rs 2.30.0", + "target": "html_to_markdown_rs" + }, + { + "id": "icy_sixel 0.5.0", + "target": "icy_sixel" + }, + { + "id": "ignore 0.4.31", + "target": "ignore" + }, + { + "id": "image 0.25.10", + "target": "image" + }, + { + "id": "inferno 0.12.8", + "target": "inferno" + }, + { + "id": "maudio 0.1.6", + "target": "maudio" + }, + { + "id": "napi 3.11.0", + "target": "napi" + }, + { + "id": "opus 0.3.1", + "target": "opus" + }, + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "phf 0.13.1", + "target": "phf" + }, + { + "id": "pi-natives 17.1.5", + "target": "build_script_build" + }, + { + "id": "png 0.18.1", + "target": "png" + }, + { + "id": "portable-pty 0.9.0", + "target": "portable_pty" + }, + { + "id": "rayon 1.12.0", + "target": "rayon" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "serde_json 1.0.151", + "target": "serde_json" + }, + { + "id": "smallvec 1.15.2", + "target": "smallvec" + }, + { + "id": "syntect 5.3.0", + "target": "syntect" + }, + { + "id": "tiktoken-rs 0.11.0", + "target": "tiktoken_rs" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "tokio-util 0.7.19", + "target": "tokio_util" + }, + { + "id": "toml 1.1.3+spec-1.1.0", + "target": "toml" + }, + { + "id": "unicode-segmentation 1.13.3", + "target": "unicode_segmentation" + }, + { + "id": "unicode-width 0.2.2", + "target": "unicode_width" + }, + { + "id": "webrtc 0.17.2", + "target": "webrtc" + }, + { + "id": "xxhash-rust 0.8.18", + "target": "xxhash_rust" + } + ], + "selects": { + "cfg(any(target_os = \"macos\", target_os = \"windows\"))": [ + { + "id": "enigo 0.6.1", + "target": "enigo" + }, + { + "id": "xcap 0.9.6", + "target": "xcap" + } + ], + "cfg(target_os = \"linux\")": [ + { + "id": "x11rb 0.13.2", + "target": "x11rb" + }, + { + "id": "xkeysym 0.2.1", + "target": "xkeysym" + } + ], + "cfg(target_os = \"macos\")": [ + { + "id": "core-graphics 0.25.0", + "target": "core_graphics" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "clipboard-win 5.4.1", + "target": "clipboard_win" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + }, + { + "id": "winreg 0.56.0", + "target": "winreg" + } + ] + } + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "napi-derive 3.6.0", + "target": "napi_derive" + } + ], + "selects": {} + }, + "version": "17.1.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "napi-build 2.3.2", + "target": "napi_build" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "serde_json 1.0.151", + "target": "serde_json" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "pi-shell 17.1.5": { + "name": "pi-shell", + "version": "17.1.5", + "package_url": "https://github.com/can1357/oh-my-pi", + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "pi_shell", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pi_shell", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "anyhow 1.0.104", + "target": "anyhow" + }, + { + "id": "brush-parser 0.3.0", + "target": "brush_parser" + }, + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "flume 0.11.1", + "target": "flume" + }, + { + "id": "globset 0.4.19", + "target": "globset" + }, + { + "id": "ignore 0.4.31", + "target": "ignore" + }, + { + "id": "jiff 0.2.35", + "target": "jiff" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "os_pipe 1.2.3", + "target": "os_pipe" + }, + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "pi-shell 17.1.5", + "target": "build_script_build" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "serde_json 1.0.151", + "target": "serde_json" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "tokio-util 0.7.19", + "target": "tokio_util" + }, + { + "id": "toml 1.1.3+spec-1.1.0", + "target": "toml" + }, + { + "id": "xxhash-rust 0.8.18", + "target": "xxhash_rust" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "smallvec 1.15.2", + "target": "smallvec" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + }, + { + "id": "winreg 0.56.0", + "target": "winreg" + } + ] + } + }, + "deps_dev": { + "common": [ + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "17.1.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "pi-uutils-ctx 0.1.0": { + "name": "pi-uutils-ctx", + "version": "0.1.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "pi_uutils_ctx", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pi_uutils_ctx", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2024", + "version": "0.1.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "pi-walker 17.1.5": { + "name": "pi-walker", + "version": "17.1.5", + "package_url": "https://github.com/can1357/oh-my-pi", + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "pi_walker", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pi_walker", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "dashmap 6.2.1", + "target": "dashmap" + }, + { + "id": "globset 0.4.19", + "target": "globset" + }, + { + "id": "ignore 0.4.31", + "target": "ignore" + }, + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "rayon 1.12.0", + "target": "rayon" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2024", + "version": "17.1.5" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "pi_uu_diff 0.8.0": { + "name": "pi_uu_diff", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "pi_uu_diff", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pi_uu_diff", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "similar 3.1.1", + "target": "similar" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "pi_uu_grep 0.8.0": { + "name": "pi_uu_grep", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "pi_uu_grep", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pi_uu_grep", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "globset 0.4.19", + "target": "globset" + }, + { + "id": "grep-cli 0.1.12", + "target": "grep_cli" + }, + { + "id": "grep-matcher 0.1.9", + "target": "grep_matcher" + }, + { + "id": "grep-pcre2 0.1.10", + "target": "grep_pcre2" + }, + { + "id": "grep-printer 0.3.1", + "target": "grep_printer" + }, + { + "id": "grep-regex 0.1.14", + "target": "grep_regex" + }, + { + "id": "grep-searcher 0.1.17", + "target": "grep_searcher" + }, + { + "id": "ignore 0.4.31", + "target": "ignore" + }, + { + "id": "serde_json 1.0.151", + "target": "serde_json" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "pin-project-lite 0.2.17": { + "name": "pin-project-lite", + "version": "0.2.17", + "package_url": "https://github.com/taiki-e/pin-project-lite", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pin-project-lite/0.2.17/download", + "sha256": "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pin_project_lite", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pin_project_lite", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.2.17" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "pin-utils 0.1.0": { + "name": "pin-utils", + "version": "0.1.0", + "package_url": "https://github.com/rust-lang-nursery/pin-utils", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pin-utils/0.1.0/download", + "sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pin_utils", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pin_utils", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.1.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "piper 0.2.5": { + "name": "piper", + "version": "0.2.5", + "package_url": "https://github.com/smol-rs/piper", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/piper/0.2.5/download", + "sha256": "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "piper", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "piper", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "atomic-waker 1.1.2", + "target": "atomic_waker" + }, + { + "id": "fastrand 2.5.0", + "target": "fastrand" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "pipewire 0.9.2": { + "name": "pipewire", + "version": "0.9.2", + "package_url": "https://gitlab.freedesktop.org/pipewire/pipewire-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pipewire/0.9.2/download", + "sha256": "9688b89abf11d756499f7c6190711d6dbe5a3acdb30c8fbf001d6596d06a8d44" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pipewire", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pipewire", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "anyhow 1.0.104", + "target": "anyhow" + }, + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "libspa 0.9.2", + "target": "libspa", + "alias": "spa" + }, + { + "id": "libspa-sys 0.9.2", + "target": "libspa_sys", + "alias": "spa_sys" + }, + { + "id": "nix 0.30.1", + "target": "nix" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "pipewire-sys 0.9.2", + "target": "pipewire_sys", + "alias": "pw_sys" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "pipewire-sys 0.9.2": { + "name": "pipewire-sys", + "version": "0.9.2", + "package_url": "https://gitlab.freedesktop.org/pipewire/pipewire-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pipewire-sys/0.9.2/download", + "sha256": "cb028afee0d6ca17020b090e3b8fa2d7de23305aef975c7e5192a5050246ea36" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pipewire_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pipewire_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libspa-sys 0.9.2", + "target": "libspa_sys", + "alias": "spa_sys" + }, + { + "id": "pipewire-sys 0.9.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bindgen 0.72.1", + "target": "bindgen" + }, + { + "id": "system-deps 7.0.8", + "target": "system_deps" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "libspa-sys 0.9.2", + "target": "libspa_sys", + "alias": "spa_sys" + } + ], + "selects": {} + }, + "links": "pipewire-0.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "pkcs8 0.10.2": { + "name": "pkcs8", + "version": "0.10.2", + "package_url": "https://github.com/RustCrypto/formats/tree/master/pkcs8", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pkcs8/0.10.2/download", + "sha256": "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pkcs8", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pkcs8", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "pem", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "der 0.7.10", + "target": "der" + }, + { + "id": "spki 0.7.3", + "target": "spki" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.10.2" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "pkg-config 0.3.33": { + "name": "pkg-config", + "version": "0.3.33", + "package_url": "https://github.com/rust-lang/pkg-config-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pkg-config/0.3.33/download", + "sha256": "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pkg_config", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pkg_config", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.3.33" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "platform-info 2.1.0": { + "name": "platform-info", + "version": "2.1.0", + "package_url": "https://github.com/uutils/platform-info", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/platform-info/2.1.0/download", + "sha256": "9368d62437c8cbb7c31ee37fd8c08a7d390e09a3ff75698a674953f46705ffcb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "platform_info", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "platform_info", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(not(target_os = \"windows\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(target_os = \"windows\")": [ + { + "id": "windows-sys 0.59.0", + "target": "windows_sys" + } + ] + } + }, + "edition": "2018", + "version": "2.1.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "png 0.18.1": { + "name": "png", + "version": "0.18.1", + "package_url": "https://github.com/image-rs/image-png", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/png/0.18.1/download", + "sha256": "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" + } + }, + "targets": [ + { + "Library": { + "crate_name": "png", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "png", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "crc32fast 1.5.0", + "target": "crc32fast" + }, + { + "id": "fdeflate 0.3.7", + "target": "fdeflate" + }, + { + "id": "flate2 1.1.9", + "target": "flate2" + }, + { + "id": "miniz_oxide 0.8.9", + "target": "miniz_oxide" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.18.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "polling 3.11.0": { + "name": "polling", + "version": "3.11.0", + "package_url": "https://github.com/smol-rs/polling", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/polling/3.11.0/download", + "sha256": "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" + } + }, + "targets": [ + { + "Library": { + "crate_name": "polling", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "polling", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + } + ], + "selects": { + "cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))": [ + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "cfg(target_os = \"hermit\")": [ + { + "id": "hermit-abi 0.5.2", + "target": "hermit_abi" + } + ], + "cfg(windows)": [ + { + "id": "concurrent-queue 2.5.0", + "target": "concurrent_queue" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "3.11.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "poly1305 0.8.0": { + "name": "poly1305", + "version": "0.8.0", + "package_url": "https://github.com/RustCrypto/universal-hashes", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/poly1305/0.8.0/download", + "sha256": "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" + } + }, + "targets": [ + { + "Library": { + "crate_name": "poly1305", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "poly1305", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "opaque-debug 0.3.1", + "target": "opaque_debug" + }, + { + "id": "universal-hash 0.5.1", + "target": "universal_hash" + } + ], + "selects": { + "cfg(any(target_arch = \"x86_64\", target_arch = \"x86\"))": [ + { + "id": "cpufeatures 0.2.17", + "target": "cpufeatures" + } + ] + } + }, + "edition": "2021", + "version": "0.8.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "polyval 0.6.2": { + "name": "polyval", + "version": "0.6.2", + "package_url": "https://github.com/RustCrypto/universal-hashes", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/polyval/0.6.2/download", + "sha256": "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" + } + }, + "targets": [ + { + "Library": { + "crate_name": "polyval", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "polyval", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "opaque-debug 0.3.1", + "target": "opaque_debug" + }, + { + "id": "universal-hash 0.5.1", + "target": "universal_hash" + } + ], + "selects": { + "cfg(any(target_arch = \"aarch64\", target_arch = \"x86_64\", target_arch = \"x86\"))": [ + { + "id": "cpufeatures 0.2.17", + "target": "cpufeatures" + } + ] + } + }, + "edition": "2021", + "version": "0.6.2" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "portable-atomic 1.14.0": { + "name": "portable-atomic", + "version": "1.14.0", + "package_url": "https://github.com/taiki-e/portable-atomic", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/portable-atomic/1.14.0/download", + "sha256": "3d20d5497ef88037a52ff98267d066e7f11fcc5e99bbfbd58a42336193aacec3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "portable_atomic", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "portable_atomic", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "fallback" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "portable-atomic 1.14.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.14.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "portable-atomic-util 0.2.7": { + "name": "portable-atomic-util", + "version": "0.2.7", + "package_url": "https://github.com/taiki-e/portable-atomic-util", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/portable-atomic-util/0.2.7/download", + "sha256": "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" + } + }, + "targets": [ + { + "Library": { + "crate_name": "portable_atomic_util", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "portable_atomic_util", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "portable-atomic-util 0.2.7", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.7" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "portable-pty 0.9.0": { + "name": "portable-pty", + "version": "0.9.0", + "package_url": "https://github.com/wezterm/wezterm", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/portable-pty/0.9.0/download", + "sha256": "b4a596a2b3d2752d94f51fac2d4a96737b8705dddd311a32b9af47211f08671e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "portable_pty", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "portable_pty", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "anyhow 1.0.104", + "target": "anyhow" + }, + { + "id": "downcast-rs 1.2.1", + "target": "downcast_rs" + }, + { + "id": "filedescriptor 0.8.3", + "target": "filedescriptor" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "nix 0.28.0", + "target": "nix" + }, + { + "id": "serial2 0.2.37", + "target": "serial2" + }, + { + "id": "shell-words 1.1.1", + "target": "shell_words" + } + ], + "selects": { + "cfg(windows)": [ + { + "id": "bitflags 1.3.2", + "target": "bitflags" + }, + { + "id": "lazy_static 1.5.0", + "target": "lazy_static" + }, + { + "id": "shared_library 0.1.9", + "target": "shared_library" + }, + { + "id": "winapi 0.3.9", + "target": "winapi" + }, + { + "id": "winreg 0.10.1", + "target": "winreg" + } + ] + } + }, + "edition": "2018", + "version": "0.9.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.md" + }, + "potential_utf 0.1.5": { + "name": "potential_utf", + "version": "0.1.5", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/potential_utf/0.1.5/download", + "sha256": "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" + } + }, + "targets": [ + { + "Library": { + "crate_name": "potential_utf", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "potential_utf", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "writeable", + "zerovec" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "writeable 0.6.3", + "target": "writeable" + }, + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.5" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "powerfmt 0.2.0": { + "name": "powerfmt", + "version": "0.2.0", + "package_url": "https://github.com/jhpratt/powerfmt", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/powerfmt/0.2.0/download", + "sha256": "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + } + }, + "targets": [ + { + "Library": { + "crate_name": "powerfmt", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "powerfmt", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.2.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-Apache" + }, + "ppv-lite86 0.2.21": { + "name": "ppv-lite86", + "version": "0.2.21", + "package_url": "https://github.com/cryptocorrosion/cryptocorrosion", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ppv-lite86/0.2.21/download", + "sha256": "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ppv_lite86", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ppv_lite86", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "simd", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "zerocopy 0.8.55", + "target": "zerocopy" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.21" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "precomputed-hash 0.1.1": { + "name": "precomputed-hash", + "version": "0.1.1", + "package_url": "https://github.com/emilio/precomputed-hash", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/precomputed-hash/0.1.1/download", + "sha256": "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "precomputed_hash", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "precomputed_hash", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "0.1.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "pretty_assertions 1.4.1": { + "name": "pretty_assertions", + "version": "1.4.1", + "package_url": "https://github.com/rust-pretty-assertions/rust-pretty-assertions", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pretty_assertions/1.4.1/download", + "sha256": "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pretty_assertions", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pretty_assertions", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std", + "unstable" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "diff 0.1.13", + "target": "diff" + }, + { + "id": "yansi 1.0.1", + "target": "yansi" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.4.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "prettyplease 0.2.37": { + "name": "prettyplease", + "version": "0.2.37", + "package_url": "https://github.com/dtolnay/prettyplease", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/prettyplease/0.2.37/download", + "sha256": "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "prettyplease", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "prettyplease", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "prettyplease 0.2.37", + "target": "build_script_build" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.37" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "links": "prettyplease02" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "primeorder 0.13.6": { + "name": "primeorder", + "version": "0.13.6", + "package_url": "https://github.com/RustCrypto/elliptic-curves/tree/master/primeorder", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/primeorder/0.13.6/download", + "sha256": "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "primeorder", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "primeorder", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "elliptic-curve 0.13.8", + "target": "elliptic_curve" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.6" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "proc-macro-crate 3.5.0": { + "name": "proc-macro-crate", + "version": "3.5.0", + "package_url": "https://github.com/bkchr/proc-macro-crate", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/proc-macro-crate/3.5.0/download", + "sha256": "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "proc_macro_crate", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "proc_macro_crate", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "toml_edit 0.25.13+spec-1.1.0", + "target": "toml_edit" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "3.5.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "proc-macro2 1.0.107": { + "name": "proc-macro2", + "version": "1.0.107", + "package_url": "https://github.com/dtolnay/proc-macro2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/proc-macro2/1.0.107/download", + "sha256": "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" + } + }, + "targets": [ + { + "Library": { + "crate_name": "proc_macro2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "proc_macro2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "proc-macro" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "build_script_build" + }, + { + "id": "unicode-ident 1.0.24", + "target": "unicode_ident" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.107" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "procfs 0.18.0": { + "name": "procfs", + "version": "0.18.0", + "package_url": "https://github.com/eminence/procfs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/procfs/0.18.0/download", + "sha256": "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "procfs", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "procfs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "chrono", + "default", + "flate2" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "chrono 0.4.45", + "target": "chrono" + }, + { + "id": "flate2 1.1.9", + "target": "flate2" + }, + { + "id": "procfs 0.18.0", + "target": "build_script_build" + }, + { + "id": "procfs-core 0.18.0", + "target": "procfs_core" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.18.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "procfs-core 0.18.0": { + "name": "procfs-core", + "version": "0.18.0", + "package_url": "https://github.com/eminence/procfs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/procfs-core/0.18.0/download", + "sha256": "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" + } + }, + "targets": [ + { + "Library": { + "crate_name": "procfs_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "procfs_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "chrono", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "chrono 0.4.45", + "target": "chrono" + }, + { + "id": "hex 0.4.3", + "target": "hex" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.18.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ptr_meta 0.3.1": { + "name": "ptr_meta", + "version": "0.3.1", + "package_url": "https://github.com/rkyv/ptr_meta", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ptr_meta/0.3.1/download", + "sha256": "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ptr_meta", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ptr_meta", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "derive", + "ptr_meta_derive", + "std" + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "ptr_meta_derive 0.3.1", + "target": "ptr_meta_derive" + } + ], + "selects": {} + }, + "version": "0.3.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "ptr_meta_derive 0.3.1": { + "name": "ptr_meta_derive", + "version": "0.3.1", + "package_url": "https://github.com/rkyv/ptr_meta", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ptr_meta_derive/0.3.1/download", + "sha256": "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "ptr_meta_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ptr_meta_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "pxfm 0.1.30": { + "name": "pxfm", + "version": "0.1.30", + "package_url": "https://github.com/awxkee/pxfm", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/pxfm/0.1.30/download", + "sha256": "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea" + } + }, + "targets": [ + { + "Library": { + "crate_name": "pxfm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "pxfm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2024", + "version": "0.1.30" + }, + "license": "BSD-3-Clause OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "BSD-3-Clause" + ], + "license_file": "LICENSE-APACHE.md" + }, + "quantette 0.5.1": { + "name": "quantette", + "version": "0.5.1", + "package_url": "https://github.com/IanManske/quantette", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/quantette/0.5.1/download", + "sha256": "c98fecda8b16396ff9adac67644a523dd1778c42b58606a29df5c31ca925d174" + } + }, + "targets": [ + { + "Library": { + "crate_name": "quantette", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "quantette", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "image", + "kmeans", + "rand", + "rand_xoshiro", + "rayon", + "std", + "threads" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitvec 1.1.1", + "target": "bitvec" + }, + { + "id": "bytemuck 1.25.2", + "target": "bytemuck" + }, + { + "id": "image 0.25.10", + "target": "image" + }, + { + "id": "libm 0.2.16", + "target": "libm" + }, + { + "id": "num-traits 0.2.19", + "target": "num_traits" + }, + { + "id": "ordered-float 5.3.0", + "target": "ordered_float" + }, + { + "id": "palette 0.7.6", + "target": "palette" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "rand_xoshiro 0.7.0", + "target": "rand_xoshiro" + }, + { + "id": "rayon 1.12.0", + "target": "rayon" + }, + { + "id": "ref-cast 1.0.26", + "target": "ref_cast" + }, + { + "id": "wide 0.8.3", + "target": "wide" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.5.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "quick-error 2.0.1": { + "name": "quick-error", + "version": "2.0.1", + "package_url": "http://github.com/tailhook/quick-error", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/quick-error/2.0.1/download", + "sha256": "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "quick_error", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "quick_error", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "2.0.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "quick-xml 0.30.0": { + "name": "quick-xml", + "version": "0.30.0", + "package_url": "https://github.com/tafia/quick-xml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/quick-xml/0.30.0/download", + "sha256": "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" + } + }, + "targets": [ + { + "Library": { + "crate_name": "quick_xml", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "quick_xml", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "memchr 2.8.3", + "target": "memchr" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.30.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE-MIT.md" + }, + "quick-xml 0.41.0": { + "name": "quick-xml", + "version": "0.41.0", + "package_url": "https://github.com/tafia/quick-xml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/quick-xml/0.41.0/download", + "sha256": "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "quick_xml", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "quick_xml", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "memchr 2.8.3", + "target": "memchr" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.41.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE-MIT.md" + }, + "quote 1.0.47": { + "name": "quote", + "version": "1.0.47", + "package_url": "https://github.com/dtolnay/quote", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/quote/1.0.47/download", + "sha256": "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" + } + }, + "targets": [ + { + "Library": { + "crate_name": "quote", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "quote", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "proc-macro" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.47" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "r-efi 5.3.0": { + "name": "r-efi", + "version": "5.3.0", + "package_url": "https://github.com/r-efi/r-efi", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/r-efi/5.3.0/download", + "sha256": "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "r_efi", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "r_efi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "5.3.0" + }, + "license": "MIT OR Apache-2.0 OR LGPL-2.1-or-later", + "license_ids": [ + "Apache-2.0", + "LGPL-2.1", + "MIT" + ], + "license_file": null + }, + "r-efi 6.0.0": { + "name": "r-efi", + "version": "6.0.0", + "package_url": "https://github.com/r-efi/r-efi", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/r-efi/6.0.0/download", + "sha256": "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + } + }, + "targets": [ + { + "Library": { + "crate_name": "r_efi", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "r_efi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "6.0.0" + }, + "license": "MIT OR Apache-2.0 OR LGPL-2.1-or-later", + "license_ids": [ + "Apache-2.0", + "LGPL-2.1", + "MIT" + ], + "license_file": null + }, + "radium 0.7.0": { + "name": "radium", + "version": "0.7.0", + "package_url": "https://github.com/bitvecto-rs/radium", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/radium/0.7.0/download", + "sha256": "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + } + }, + "targets": [ + { + "Library": { + "crate_name": "radium", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "radium", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "radium 0.7.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.7.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "rancor 0.1.2": { + "name": "rancor", + "version": "0.1.2", + "package_url": "https://github.com/rkyv/rancor", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rancor/0.1.2/download", + "sha256": "daff8b7b3ccf5f7ba270b3e7a0a4d4c701c5797e38dec27c7e2c3dbb830fed1c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rancor", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rancor", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "ptr_meta 0.3.1", + "target": "ptr_meta" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "rand 0.8.7": { + "name": "rand", + "version": "0.8.7", + "package_url": "https://github.com/rust-random/rand", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rand/0.8.7/download", + "sha256": "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rand", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "small_rng" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "rand_core 0.6.4", + "target": "rand_core" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.8.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rand 0.9.5": { + "name": "rand", + "version": "0.9.5", + "package_url": "https://github.com/rust-random/rand", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rand/0.9.5/download", + "sha256": "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rand", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "os_rng", + "small_rng", + "std", + "std_rng", + "thread_rng" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "rand_chacha 0.9.0", + "target": "rand_chacha" + }, + { + "id": "rand_core 0.9.5", + "target": "rand_core" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rand 0.10.2": { + "name": "rand", + "version": "0.10.2", + "package_url": "https://github.com/rust-random/rand", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rand/0.10.2/download", + "sha256": "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rand", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std", + "std_rng", + "sys_rng", + "thread_rng" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "chacha20 0.10.1", + "target": "chacha20" + }, + { + "id": "getrandom 0.4.3", + "target": "getrandom" + }, + { + "id": "rand_core 0.10.1", + "target": "rand_core" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.10.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rand_chacha 0.9.0": { + "name": "rand_chacha", + "version": "0.9.0", + "package_url": "https://github.com/rust-random/rand", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rand_chacha/0.9.0/download", + "sha256": "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand_chacha", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rand_chacha", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "ppv-lite86 0.2.21", + "target": "ppv_lite86" + }, + { + "id": "rand_core 0.9.5", + "target": "rand_core" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rand_core 0.6.4": { + "name": "rand_core", + "version": "0.6.4", + "package_url": "https://github.com/rust-random/rand", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rand_core/0.6.4/download", + "sha256": "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rand_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "getrandom", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "getrandom 0.2.17", + "target": "getrandom" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.6.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rand_core 0.9.5": { + "name": "rand_core", + "version": "0.9.5", + "package_url": "https://github.com/rust-random/rand", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rand_core/0.9.5/download", + "sha256": "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rand_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "os_rng", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "getrandom 0.3.4", + "target": "getrandom" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rand_core 0.10.1": { + "name": "rand_core", + "version": "0.10.1", + "package_url": "https://github.com/rust-random/rand_core", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rand_core/0.10.1/download", + "sha256": "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rand_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2024", + "version": "0.10.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rand_xoshiro 0.7.0": { + "name": "rand_xoshiro", + "version": "0.7.0", + "package_url": "https://github.com/rust-random/rngs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rand_xoshiro/0.7.0/download", + "sha256": "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rand_xoshiro", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rand_xoshiro", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "rand_core 0.9.5", + "target": "rand_core" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rayon 1.12.0": { + "name": "rayon", + "version": "1.12.0", + "package_url": "https://github.com/rayon-rs/rayon", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rayon/1.12.0/download", + "sha256": "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rayon", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rayon", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "either 1.17.0", + "target": "either" + }, + { + "id": "rayon-core 1.13.0", + "target": "rayon_core" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.12.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rayon-core 1.13.0": { + "name": "rayon-core", + "version": "1.13.0", + "package_url": "https://github.com/rayon-rs/rayon", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rayon-core/1.13.0/download", + "sha256": "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rayon_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rayon_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "crossbeam-deque 0.8.7", + "target": "crossbeam_deque" + }, + { + "id": "crossbeam-utils 0.8.22", + "target": "crossbeam_utils" + }, + { + "id": "rayon-core 1.13.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.13.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "links": "rayon-core" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rcgen 0.13.2": { + "name": "rcgen", + "version": "0.13.2", + "package_url": "https://github.com/rustls/rcgen", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rcgen/0.13.2/download", + "sha256": "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rcgen", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rcgen", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "crypto", + "default", + "pem", + "ring", + "x509-parser" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "pem 3.0.6", + "target": "pem" + }, + { + "id": "ring 0.17.14", + "target": "ring" + }, + { + "id": "rustls-pki-types 1.15.1", + "target": "rustls_pki_types", + "alias": "pki_types" + }, + { + "id": "time 0.3.54", + "target": "time" + }, + { + "id": "x509-parser 0.16.0", + "target": "x509_parser" + }, + { + "id": "yasna 0.5.2", + "target": "yasna" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE" + }, + "redox_syscall 0.5.18": { + "name": "redox_syscall", + "version": "0.5.18", + "package_url": "https://gitlab.redox-os.org/redox-os/syscall", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/redox_syscall/0.5.18/download", + "sha256": "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "syscall", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "syscall", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.18" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "ref-cast 1.0.26": { + "name": "ref-cast", + "version": "1.0.26", + "package_url": "https://github.com/dtolnay/ref-cast", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ref-cast/1.0.26/download", + "sha256": "216e8f773d7923bcba9ceb86a86c93cabb3903a11872fc3f138c49630e50b96d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ref_cast", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ref_cast", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "ref-cast 1.0.26", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "ref-cast-impl 1.0.26", + "target": "ref_cast_impl" + } + ], + "selects": {} + }, + "version": "1.0.26" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ref-cast-impl 1.0.26": { + "name": "ref-cast-impl", + "version": "1.0.26", + "package_url": "https://github.com/dtolnay/ref-cast", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ref-cast-impl/1.0.26/download", + "sha256": "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "ref_cast_impl", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ref_cast_impl", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 3.0.3", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.26" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "regex 1.13.1": { + "name": "regex", + "version": "1.13.1", + "package_url": "https://github.com/rust-lang/regex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/regex/1.13.1/download", + "sha256": "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "regex", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "regex", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "perf", + "perf-backtrack", + "perf-cache", + "perf-dfa", + "perf-inline", + "perf-literal", + "perf-onepass", + "std", + "unicode", + "unicode-age", + "unicode-bool", + "unicode-case", + "unicode-gencat", + "unicode-perl", + "unicode-script", + "unicode-segment" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "aho-corasick 1.1.4", + "target": "aho_corasick" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "regex-automata 0.4.16", + "target": "regex_automata" + }, + { + "id": "regex-syntax 0.8.11", + "target": "regex_syntax" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.13.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "regex-automata 0.4.16": { + "name": "regex-automata", + "version": "0.4.16", + "package_url": "https://github.com/rust-lang/regex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/regex-automata/0.4.16/download", + "sha256": "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" + } + }, + "targets": [ + { + "Library": { + "crate_name": "regex_automata", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "regex_automata", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "dfa", + "dfa-build", + "dfa-onepass", + "dfa-search", + "hybrid", + "meta", + "nfa", + "nfa-backtrack", + "nfa-pikevm", + "nfa-thompson", + "perf", + "perf-inline", + "perf-literal", + "perf-literal-multisubstring", + "perf-literal-substring", + "std", + "syntax", + "unicode", + "unicode-age", + "unicode-bool", + "unicode-case", + "unicode-gencat", + "unicode-perl", + "unicode-script", + "unicode-segment", + "unicode-word-boundary" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "aho-corasick 1.1.4", + "target": "aho_corasick" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "regex-syntax 0.8.11", + "target": "regex_syntax" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.16" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "regex-lite 0.1.9": { + "name": "regex-lite", + "version": "0.1.9", + "package_url": "https://github.com/rust-lang/regex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/regex-lite/0.1.9/download", + "sha256": "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973" + } + }, + "targets": [ + { + "Library": { + "crate_name": "regex_lite", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "regex_lite", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std", + "string" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.9" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "regex-syntax 0.8.11": { + "name": "regex-syntax", + "version": "0.8.11", + "package_url": "https://github.com/rust-lang/regex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/regex-syntax/0.8.11/download", + "sha256": "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "regex_syntax", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "regex_syntax", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std", + "unicode", + "unicode-age", + "unicode-bool", + "unicode-case", + "unicode-gencat", + "unicode-perl", + "unicode-script", + "unicode-segment" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.11" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "relative-path 1.9.3": { + "name": "relative-path", + "version": "1.9.3", + "package_url": "https://github.com/udoprog/relative-path", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/relative-path/1.9.3/download", + "sha256": "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "relative_path", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "relative_path", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.9.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "rend 0.5.4": { + "name": "rend", + "version": "0.5.4", + "package_url": "https://github.com/djkoloski/rend", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rend/0.5.4/download", + "sha256": "663ba70707f96e871406fe10d68128412e619b06d1d47cb91c3a4c6501176240" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rend", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rend", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "bytecheck" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bytecheck 0.8.2", + "target": "bytecheck" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.4" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "rfc6979 0.4.0": { + "name": "rfc6979", + "version": "0.4.0", + "package_url": "https://github.com/RustCrypto/signatures/tree/master/rfc6979", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rfc6979/0.4.0/download", + "sha256": "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rfc6979", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rfc6979", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "hmac 0.12.1", + "target": "hmac" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rgb 0.8.53": { + "name": "rgb", + "version": "0.8.53", + "package_url": "https://github.com/kornelski/rust-rgb", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rgb/0.8.53/download", + "sha256": "47b34b781b31e5d73e9fbc8689c70551fd1ade9a19e3e28cfec8580a79290cc4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rgb", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rgb", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "argb", + "as-bytes", + "bytemuck", + "default", + "grb" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bytemuck 1.25.2", + "target": "bytemuck" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.53" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "ring 0.17.14": { + "name": "ring", + "version": "0.17.14", + "package_url": "https://github.com/briansmith/ring", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ring/0.17.14/download", + "sha256": "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ring", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ring", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "dev_urandom_fallback" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "getrandom 0.2.17", + "target": "getrandom" + }, + { + "id": "ring 0.17.14", + "target": "build_script_build" + }, + { + "id": "untrusted 0.9.0", + "target": "untrusted" + } + ], + "selects": { + "cfg(all(all(target_arch = \"aarch64\", target_endian = \"little\"), target_os = \"windows\"))": [ + { + "id": "windows-sys 0.52.0", + "target": "windows_sys" + } + ], + "cfg(all(all(target_arch = \"aarch64\", target_endian = \"little\"), target_vendor = \"apple\", any(target_os = \"ios\", target_os = \"macos\", target_os = \"tvos\", target_os = \"visionos\", target_os = \"watchos\")))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(all(any(all(target_arch = \"aarch64\", target_endian = \"little\"), all(target_arch = \"arm\", target_endian = \"little\")), any(target_os = \"android\", target_os = \"linux\")))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2021", + "version": "0.17.14" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "links": "ring_core_0_17_14_" + }, + "license": "Apache-2.0 AND ISC", + "license_ids": [ + "Apache-2.0", + "ISC" + ], + "license_file": "LICENSE" + }, + "rkyv 0.8.17": { + "name": "rkyv", + "version": "0.8.17", + "package_url": "https://github.com/rkyv/rkyv", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rkyv/0.8.17/download", + "sha256": "815cc8a37159a463064825246cadb07961e25cd9885908606f6d08a98d8f8874" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rkyv", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rkyv", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "bytecheck", + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bytecheck 0.8.2", + "target": "bytecheck" + }, + { + "id": "hashbrown 0.17.1", + "target": "hashbrown" + }, + { + "id": "munge 0.4.7", + "target": "munge" + }, + { + "id": "ptr_meta 0.3.1", + "target": "ptr_meta" + }, + { + "id": "rancor 0.1.2", + "target": "rancor" + }, + { + "id": "rend 0.5.4", + "target": "rend" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "rkyv_derive 0.8.17", + "target": "rkyv_derive" + } + ], + "selects": {} + }, + "version": "0.8.17" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "rkyv_derive 0.8.17": { + "name": "rkyv_derive", + "version": "0.8.17", + "package_url": "https://github.com/rkyv/rkyv", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rkyv_derive/0.8.17/download", + "sha256": "c0ed1a78a1b19d184b0daa629dd9a024573173ec7d485b287cb369fb3607cc1c" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "rkyv_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rkyv_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "bytecheck" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.17" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "rlimit 0.11.0": { + "name": "rlimit", + "version": "0.11.0", + "package_url": "https://github.com/Nugine/rlimit/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rlimit/0.11.0/download", + "sha256": "f35ee2729c56bb610f6dba436bf78135f728b7373bdffae2ec815b2d3eb98cc3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rlimit", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rlimit", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "rlimit 0.11.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.11.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "rpds 1.2.1": { + "name": "rpds", + "version": "1.2.1", + "package_url": "https://github.com/orium/rpds", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rpds/1.2.1/download", + "sha256": "e025feb26210bc196b908e72deb063b1b4000754304341cbc168a1e72c857ebc" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rpds", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rpds", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "archery 1.2.2", + "target": "archery" + }, + { + "id": "smallvec 1.15.2", + "target": "smallvec" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "1.2.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.md" + }, + "rstest 0.26.1": { + "name": "rstest", + "version": "0.26.1", + "package_url": "https://github.com/la10736/rstest", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rstest/0.26.1/download", + "sha256": "f5a3193c063baaa2a95a33f03035c8a72b83d97a54916055ba22d35ed3839d49" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rstest", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rstest", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "async-timeout", + "crate-name", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "futures-timer 3.0.4", + "target": "futures_timer" + }, + { + "id": "futures-util 0.3.33", + "target": "futures_util" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "rstest_macros 0.26.1", + "target": "rstest_macros" + } + ], + "selects": {} + }, + "version": "0.26.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rstest_macros 0.26.1": { + "name": "rstest_macros", + "version": "0.26.1", + "package_url": "https://github.com/la10736/rstest", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rstest_macros/0.26.1/download", + "sha256": "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "rstest_macros", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rstest_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "async-timeout", + "crate-name" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "glob 0.3.4", + "target": "glob" + }, + { + "id": "proc-macro-crate 3.5.0", + "target": "proc_macro_crate" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "relative-path 1.9.3", + "target": "relative_path" + }, + { + "id": "rstest_macros 0.26.1", + "target": "build_script_build" + }, + { + "id": "syn 2.0.119", + "target": "syn" + }, + { + "id": "unicode-ident 1.0.24", + "target": "unicode_ident" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.26.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "rustc_version 0.4.1", + "target": "rustc_version" + } + ], + "selects": {} + } + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rtcp 0.17.2": { + "name": "rtcp", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/rtcp", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rtcp/0.17.2/download", + "sha256": "adad7f6a501162881032fc84b4bc78ae11f1b30748180b9f5cbe8810bf613aab" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rtcp", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rtcp", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rtp 0.17.2": { + "name": "rtp", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/rtp", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rtp/0.17.2/download", + "sha256": "149329e78ada26b5e174a4c281a7a7e5c8bda6008adc90daddd6f98fce56db29" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rtp", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rtp", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rustc-hash 1.1.0": { + "name": "rustc-hash", + "version": "1.1.0", + "package_url": "https://github.com/rust-lang-nursery/rustc-hash", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rustc-hash/1.1.0/download", + "sha256": "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rustc_hash", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rustc_hash", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2015", + "version": "1.1.0" + }, + "license": "Apache-2.0/MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rustc-hash 2.1.3": { + "name": "rustc-hash", + "version": "2.1.3", + "package_url": "https://github.com/rust-lang/rustc-hash", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rustc-hash/2.1.3/download", + "sha256": "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rustc_hash", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rustc_hash", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "2.1.3" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rustc_version 0.4.1": { + "name": "rustc_version", + "version": "0.4.1", + "package_url": "https://github.com/djc/rustc-version-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rustc_version/0.4.1/download", + "sha256": "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rustc_version", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rustc_version", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "semver 1.0.28", + "target": "semver" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.4.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rusticata-macros 4.1.0": { + "name": "rusticata-macros", + "version": "4.1.0", + "package_url": "https://github.com/rusticata/rusticata-macros.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rusticata-macros/4.1.0/download", + "sha256": "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rusticata_macros", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rusticata_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "nom 7.1.3", + "target": "nom" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "4.1.0" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rustix 0.38.44": { + "name": "rustix", + "version": "0.38.44", + "package_url": "https://github.com/bytecodealliance/rustix", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rustix/0.38.44/download", + "sha256": "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rustix", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rustix", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "rustix 0.38.44", + "target": "build_script_build" + } + ], + "selects": { + "cfg(all(any(target_os = \"android\", target_os = \"linux\"), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_endian = \"little\", target_arch = \"s390x\"), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))": [ + { + "id": "linux-raw-sys 0.4.15", + "target": "linux_raw_sys" + } + ], + "cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_endian = \"little\", target_arch = \"s390x\"), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"))))": [ + { + "id": "linux-raw-sys 0.4.15", + "target": "linux_raw_sys" + } + ], + "cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_endian = \"little\", target_arch = \"s390x\"), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))": [ + { + "id": "errno 0.3.14", + "target": "errno", + "alias": "libc_errno" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "errno 0.3.14", + "target": "errno", + "alias": "libc_errno" + }, + { + "id": "windows-sys 0.59.0", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "0.38.44" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rustix 1.1.4": { + "name": "rustix", + "version": "1.1.4", + "package_url": "https://github.com/bytecodealliance/rustix", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rustix/1.1.4/download", + "sha256": "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rustix", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rustix", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "fs", + "net", + "param", + "pipe", + "process", + "std", + "use-libc-auxv" + ], + "selects": { + "aarch64-apple-darwin": [ + "termios", + "time" + ], + "aarch64-unknown-linux-gnu": [ + "event", + "system", + "termios", + "thread", + "time" + ], + "aarch64-unknown-linux-musl": [ + "event", + "system", + "termios", + "thread", + "time" + ], + "x86_64-apple-darwin": [ + "termios", + "time" + ], + "x86_64-unknown-linux-gnu": [ + "event", + "system", + "termios", + "thread", + "time" + ], + "x86_64-unknown-linux-musl": [ + "event", + "system", + "termios", + "thread", + "time" + ] + } + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "rustix 1.1.4", + "target": "build_script_build" + } + ], + "selects": { + "aarch64-apple-darwin": [ + { + "id": "errno 0.3.14", + "target": "errno", + "alias": "libc_errno" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(all(any(target_os = \"linux\", target_os = \"android\"), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_endian = \"little\", any(target_arch = \"s390x\", target_arch = \"powerpc\")), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc\"), all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))": [ + { + "id": "linux-raw-sys 0.12.1", + "target": "linux_raw_sys" + } + ], + "cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_endian = \"little\", any(target_arch = \"s390x\", target_arch = \"powerpc\")), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc\"), all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"))))": [ + { + "id": "linux-raw-sys 0.12.1", + "target": "linux_raw_sys" + } + ], + "cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_endian = \"little\", any(target_arch = \"s390x\", target_arch = \"powerpc\")), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc\"), all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))": [ + { + "id": "errno 0.3.14", + "target": "errno", + "alias": "libc_errno" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "errno 0.3.14", + "target": "errno", + "alias": "libc_errno" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ], + "x86_64-apple-darwin": [ + { + "id": "errno 0.3.14", + "target": "errno", + "alias": "libc_errno" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "x86_64-pc-windows-msvc": [ + { + "id": "errno 0.3.14", + "target": "errno", + "alias": "libc_errno" + } + ] + } + }, + "edition": "2021", + "version": "1.1.4" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rustls 0.23.42": { + "name": "rustls", + "version": "0.23.42", + "package_url": "https://github.com/rustls/rustls", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rustls/0.23.42/download", + "sha256": "3c54fcab019b409d04215d3a17cb438fd7fbf192ee61461f20f4fe18704bc138" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rustls", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rustls", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "ring", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "ring 0.17.14", + "target": "ring" + }, + { + "id": "rustls 0.23.42", + "target": "build_script_build" + }, + { + "id": "rustls-pki-types 1.15.1", + "target": "rustls_pki_types", + "alias": "pki_types" + }, + { + "id": "rustls-webpki 0.103.13", + "target": "webpki" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + }, + { + "id": "zeroize 1.9.0", + "target": "zeroize" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.23.42" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "link_deps": { + "common": [ + { + "id": "ring 0.17.14", + "target": "ring" + } + ], + "selects": {} + } + }, + "license": "Apache-2.0 OR ISC OR MIT", + "license_ids": [ + "Apache-2.0", + "ISC", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rustls-pki-types 1.15.1": { + "name": "rustls-pki-types", + "version": "1.15.1", + "package_url": "https://github.com/rustls/pki-types", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rustls-pki-types/1.15.1/download", + "sha256": "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96" + } + }, + "targets": [ + { + "Library": { + "crate_name": "rustls_pki_types", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rustls_pki_types", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "zeroize 1.9.0", + "target": "zeroize" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.15.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "rustls-webpki 0.103.13": { + "name": "rustls-webpki", + "version": "0.103.13", + "package_url": "https://github.com/rustls/webpki", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rustls-webpki/0.103.13/download", + "sha256": "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "webpki", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "webpki", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "ring", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "ring 0.17.14", + "target": "ring" + }, + { + "id": "rustls-pki-types 1.15.1", + "target": "rustls_pki_types", + "alias": "pki_types" + }, + { + "id": "untrusted 0.9.0", + "target": "untrusted" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.103.13" + }, + "license": "ISC", + "license_ids": [ + "ISC" + ], + "license_file": "LICENSE" + }, + "rustversion 1.0.23": { + "name": "rustversion", + "version": "1.0.23", + "package_url": "https://github.com/dtolnay/rustversion", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/rustversion/1.0.23/download", + "sha256": "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "rustversion", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "rustversion", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "rustversion 1.0.23", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.0.23" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "safe_arch 0.9.3": { + "name": "safe_arch", + "version": "0.9.3", + "package_url": "https://github.com/Lokathor/safe_arch", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/safe_arch/0.9.3/download", + "sha256": "629516c85c29fe757770fa03f2074cf1eac43d44c02a3de9fc2ef7b0e207dfdd" + } + }, + "targets": [ + { + "Library": { + "crate_name": "safe_arch", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "safe_arch", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "bytemuck", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bytemuck 1.25.2", + "target": "bytemuck" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.9.3" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": "LICENSE-APACHE.md" + }, + "same-file 1.0.6": { + "name": "same-file", + "version": "1.0.6", + "package_url": "https://github.com/BurntSushi/same-file", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/same-file/1.0.6/download", + "sha256": "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" + } + }, + "targets": [ + { + "Library": { + "crate_name": "same_file", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "same_file", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(windows)": [ + { + "id": "winapi-util 0.1.11", + "target": "winapi_util" + } + ] + } + }, + "edition": "2018", + "version": "1.0.6" + }, + "license": "Unlicense/MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "scoped-tls 1.0.1": { + "name": "scoped-tls", + "version": "1.0.1", + "package_url": "https://github.com/alexcrichton/scoped-tls", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/scoped-tls/1.0.1/download", + "sha256": "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + } + }, + "targets": [ + { + "Library": { + "crate_name": "scoped_tls", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "scoped_tls", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "1.0.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "scopeguard 1.2.0": { + "name": "scopeguard", + "version": "1.2.0", + "package_url": "https://github.com/bluss/scopeguard", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/scopeguard/1.2.0/download", + "sha256": "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + } + }, + "targets": [ + { + "Library": { + "crate_name": "scopeguard", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "scopeguard", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [], + "selects": { + "aarch64-apple-darwin": [ + "default", + "use_std" + ], + "x86_64-apple-darwin": [ + "default", + "use_std" + ], + "x86_64-pc-windows-msvc": [ + "default", + "use_std" + ] + } + }, + "edition": "2015", + "version": "1.2.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "sdp 0.17.2": { + "name": "sdp", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/sdp", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/sdp/0.17.2/download", + "sha256": "66b6eecfa5151edef84d544ff3885dff98e5b5fe97586757a4b5118bde51c958" + } + }, + "targets": [ + { + "Library": { + "crate_name": "sdp", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "sdp", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "substring 1.4.5", + "target": "substring" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "url 2.5.8", + "target": "url" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "sec1 0.7.3": { + "name": "sec1", + "version": "0.7.3", + "package_url": "https://github.com/RustCrypto/formats/tree/master/sec1", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/sec1/0.7.3/download", + "sha256": "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" + } + }, + "targets": [ + { + "Library": { + "crate_name": "sec1", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "sec1", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "der", + "pem", + "pkcs8", + "point", + "std", + "subtle", + "zeroize" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "base16ct 0.2.0", + "target": "base16ct" + }, + { + "id": "der 0.7.10", + "target": "der" + }, + { + "id": "generic-array 0.14.7", + "target": "generic_array" + }, + { + "id": "pkcs8 0.10.2", + "target": "pkcs8" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + }, + { + "id": "zeroize 1.9.0", + "target": "zeroize" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.3" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "self_cell 1.3.0": { + "name": "self_cell", + "version": "1.3.0", + "package_url": "https://github.com/Voultapher/self_cell", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/self_cell/1.3.0/download", + "sha256": "2ab42ca02749e120097e328d91d415325bdf43b1c72c4c8badf37375fe40a813" + } + }, + "targets": [ + { + "Library": { + "crate_name": "self_cell", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "self_cell", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "1.3.0" + }, + "license": "Apache-2.0 OR GPL-2.0-only", + "license_ids": [ + "Apache-2.0", + "GPL-2.0" + ], + "license_file": "LICENSE-APACHE" + }, + "semver 1.0.28": { + "name": "semver", + "version": "1.0.28", + "package_url": "https://github.com/dtolnay/semver", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/semver/1.0.28/download", + "sha256": "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + } + }, + "targets": [ + { + "Library": { + "crate_name": "semver", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "semver", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.28" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "serde 1.0.229": { + "name": "serde", + "version": "1.0.229", + "package_url": "https://github.com/serde-rs/serde", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/serde/1.0.229/download", + "sha256": "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" + } + }, + "targets": [ + { + "Library": { + "crate_name": "serde", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "serde", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "derive", + "serde_derive", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "serde 1.0.229", + "target": "build_script_build" + }, + { + "id": "serde_core 1.0.229", + "target": "serde_core" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "serde_derive 1.0.229", + "target": "serde_derive" + } + ], + "selects": {} + }, + "version": "1.0.229" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "serde_core 1.0.229": { + "name": "serde_core", + "version": "1.0.229", + "package_url": "https://github.com/serde-rs/serde", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/serde_core/1.0.229/download", + "sha256": "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" + } + }, + "targets": [ + { + "Library": { + "crate_name": "serde_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "serde_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "result", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "serde_core 1.0.229", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [], + "selects": { + "cfg(any())": [ + { + "id": "serde_derive 1.0.229", + "target": "serde_derive" + } + ] + } + }, + "version": "1.0.229" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "serde_derive 1.0.229": { + "name": "serde_derive", + "version": "1.0.229", + "package_url": "https://github.com/serde-rs/serde", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/serde_derive/1.0.229/download", + "sha256": "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "serde_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "serde_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 3.0.3", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.229" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "serde_json 1.0.151": { + "name": "serde_json", + "version": "1.0.151", + "package_url": "https://github.com/serde-rs/json", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/serde_json/1.0.151/download", + "sha256": "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" + } + }, + "targets": [ + { + "Library": { + "crate_name": "serde_json", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "serde_json", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "indexmap", + "preserve_order", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "indexmap 2.14.0", + "target": "indexmap" + }, + { + "id": "itoa 1.0.18", + "target": "itoa" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "serde_core 1.0.229", + "target": "serde_core" + }, + { + "id": "serde_json 1.0.151", + "target": "build_script_build" + }, + { + "id": "zmij 1.0.23", + "target": "zmij" + } + ], + "selects": { + "cfg(any())": [ + { + "id": "serde 1.0.229", + "target": "serde" + } + ] + } + }, + "edition": "2021", + "version": "1.0.151" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "serde_repr 0.1.21": { + "name": "serde_repr", + "version": "0.1.21", + "package_url": "https://github.com/dtolnay/serde-repr", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/serde_repr/0.1.21/download", + "sha256": "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "serde_repr", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "serde_repr", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 3.0.3", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.21" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "serde_spanned 1.1.1": { + "name": "serde_spanned", + "version": "1.1.1", + "package_url": "https://github.com/toml-rs/toml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/serde_spanned/1.1.1/download", + "sha256": "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" + } + }, + "targets": [ + { + "Library": { + "crate_name": "serde_spanned", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "serde_spanned", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "serde", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "serde_core 1.0.229", + "target": "serde_core" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "1.1.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "serial2 0.2.37": { + "name": "serial2", + "version": "0.2.37", + "package_url": "https://github.com/de-vri-es/serial2-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/serial2/0.2.37/download", + "sha256": "9eb6ea5562eeaed6936b8b54e086aa0f88b9e5b1bef45beb038e2519fa1185b1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "serial2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "serial2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(unix)": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "0.2.37" + }, + "license": "BSD-2-Clause OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "BSD-2-Clause" + ], + "license_file": "LICENSE-APACHE" + }, + "sha1 0.10.7": { + "name": "sha1", + "version": "0.10.7", + "package_url": "https://github.com/RustCrypto/hashes", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/sha1/0.10.7/download", + "sha256": "a978451301f4db1d02937a4ab3ccce137717b81826e79b7d49ffe3244a13c3b8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "sha1", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "sha1", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "digest 0.10.7", + "target": "digest" + } + ], + "selects": { + "cfg(any(target_arch = \"aarch64\", target_arch = \"x86\", target_arch = \"x86_64\"))": [ + { + "id": "cpufeatures 0.2.17", + "target": "cpufeatures" + } + ] + } + }, + "edition": "2018", + "version": "0.10.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "sha2 0.10.9": { + "name": "sha2", + "version": "0.10.9", + "package_url": "https://github.com/RustCrypto/hashes", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/sha2/0.10.9/download", + "sha256": "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" + } + }, + "targets": [ + { + "Library": { + "crate_name": "sha2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "sha2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "digest 0.10.7", + "target": "digest" + } + ], + "selects": { + "cfg(any(target_arch = \"aarch64\", target_arch = \"x86_64\", target_arch = \"x86\"))": [ + { + "id": "cpufeatures 0.2.17", + "target": "cpufeatures" + } + ] + } + }, + "edition": "2018", + "version": "0.10.9" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "sha3 0.10.9": { + "name": "sha3", + "version": "0.10.9", + "package_url": "https://github.com/RustCrypto/hashes", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/sha3/0.10.9/download", + "sha256": "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" + } + }, + "targets": [ + { + "Library": { + "crate_name": "sha3", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "sha3", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "digest 0.10.7", + "target": "digest" + }, + { + "id": "keccak 0.1.6", + "target": "keccak" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.10.9" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "shared_library 0.1.9": { + "name": "shared_library", + "version": "0.1.9", + "package_url": "https://github.com/tomaka/shared_library/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/shared_library/0.1.9/download", + "sha256": "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" + } + }, + "targets": [ + { + "Library": { + "crate_name": "shared_library", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "shared_library", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "lazy_static 1.5.0", + "target": "lazy_static" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.1.9" + }, + "license": "Apache-2.0/MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "shell-words 1.1.1": { + "name": "shell-words", + "version": "1.1.1", + "package_url": "https://github.com/tmiasko/shell-words", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/shell-words/1.1.1/download", + "sha256": "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" + } + }, + "targets": [ + { + "Library": { + "crate_name": "shell_words", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "shell_words", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2015", + "version": "1.1.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "shlex 1.3.0": { + "name": "shlex", + "version": "1.3.0", + "package_url": "https://github.com/comex/rust-shlex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/shlex/1.3.0/download", + "sha256": "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + } + }, + "targets": [ + { + "Library": { + "crate_name": "shlex", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "shlex", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "1.3.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "shlex 2.0.1": { + "name": "shlex", + "version": "2.0.1", + "package_url": "https://github.com/comex/rust-shlex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/shlex/2.0.1/download", + "sha256": "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + } + }, + "targets": [ + { + "Library": { + "crate_name": "shlex", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "shlex", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "2.0.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "signal-hook-registry 1.4.8": { + "name": "signal-hook-registry", + "version": "1.4.8", + "package_url": "https://github.com/vorner/signal-hook", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/signal-hook-registry/1.4.8/download", + "sha256": "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "signal_hook_registry", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "signal_hook_registry", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "errno 0.3.14", + "target": "errno" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "1.4.8" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "signature 2.2.0": { + "name": "signature", + "version": "2.2.0", + "package_url": "https://github.com/RustCrypto/traits/tree/master/signature", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/signature/2.2.0/download", + "sha256": "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" + } + }, + "targets": [ + { + "Library": { + "crate_name": "signature", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "signature", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "digest", + "rand_core", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "digest 0.10.7", + "target": "digest" + }, + { + "id": "rand_core 0.6.4", + "target": "rand_core" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.2.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "simd-adler32 0.3.10": { + "name": "simd-adler32", + "version": "0.3.10", + "package_url": "https://github.com/mcountryman/simd-adler32", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/simd-adler32/0.3.10/download", + "sha256": "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + } + }, + "targets": [ + { + "Library": { + "crate_name": "simd_adler32", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "simd_adler32", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "const-generics", + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.10" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.md" + }, + "simdutf8 0.1.5": { + "name": "simdutf8", + "version": "0.1.5", + "package_url": "https://github.com/rusticstuff/simdutf8", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/simdutf8/0.1.5/download", + "sha256": "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "simdutf8", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "simdutf8", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.1.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-Apache" + }, + "similar 2.7.0": { + "name": "similar", + "version": "2.7.0", + "package_url": "https://github.com/mitsuhiko/similar", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/similar/2.7.0/download", + "sha256": "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" + } + }, + "targets": [ + { + "Library": { + "crate_name": "similar", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "similar", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "inline", + "text" + ], + "selects": {} + }, + "edition": "2018", + "version": "2.7.0" + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "similar 3.1.1": { + "name": "similar", + "version": "3.1.1", + "package_url": "https://github.com/mitsuhiko/similar", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/similar/3.1.1/download", + "sha256": "e6505efef05804732ed8a3f2d4f279429eb485bd69d5b0cc6b19cc02005cda16" + } + }, + "targets": [ + { + "Library": { + "crate_name": "similar", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "similar", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std", + "text" + ], + "selects": {} + }, + "edition": "2024", + "version": "3.1.1" + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "siphasher 1.0.3": { + "name": "siphasher", + "version": "1.0.3", + "package_url": "https://github.com/jedisct1/rust-siphash", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/siphasher/1.0.3/download", + "sha256": "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + } + }, + "targets": [ + { + "Library": { + "crate_name": "siphasher", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "siphasher", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "1.0.3" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "slab 0.4.12": { + "name": "slab", + "version": "0.4.12", + "package_url": "https://github.com/tokio-rs/slab", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/slab/0.4.12/download", + "sha256": "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "slab", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "slab", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.4.12" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "sm3 0.5.0": { + "name": "sm3", + "version": "0.5.0", + "package_url": "https://github.com/RustCrypto/hashes", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/sm3/0.5.0/download", + "sha256": "da6a89ba31723d185fd7413b98c576a575f356d9b84729d8ecb6ead60000a5b6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "sm3", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "sm3", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "oid" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "digest 0.11.3", + "target": "digest" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.5.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "smallvec 1.15.2": { + "name": "smallvec", + "version": "1.15.2", + "package_url": "https://github.com/servo/rust-smallvec", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/smallvec/1.15.2/download", + "sha256": "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" + } + }, + "targets": [ + { + "Library": { + "crate_name": "smallvec", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "smallvec", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "const_generics", + "const_new", + "serde", + "union", + "write" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "serde 1.0.229", + "target": "serde" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.15.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "smol_str 0.2.2": { + "name": "smol_str", + "version": "0.2.2", + "package_url": "https://github.com/rust-analyzer/smol_str", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/smol_str/0.2.2/download", + "sha256": "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" + } + }, + "targets": [ + { + "Library": { + "crate_name": "smol_str", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "smol_str", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "serde", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "serde 1.0.229", + "target": "serde" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "socket2 0.5.10": { + "name": "socket2", + "version": "0.5.10", + "package_url": "https://github.com/rust-lang/socket2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/socket2/0.5.10/download", + "sha256": "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" + } + }, + "targets": [ + { + "Library": { + "crate_name": "socket2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "socket2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "all" + ], + "selects": {} + }, + "deps": { + "common": [], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.52.0", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "0.5.10" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "socket2 0.6.5": { + "name": "socket2", + "version": "0.6.5", + "package_url": "https://github.com/rust-lang/socket2", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/socket2/0.6.5/download", + "sha256": "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "socket2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "socket2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "all" + ], + "selects": {} + }, + "deps": { + "common": [], + "selects": { + "cfg(any(unix, target_os = \"wasi\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "0.6.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "spin 0.9.9": { + "name": "spin", + "version": "0.9.9", + "package_url": "https://github.com/mvdnes/spin-rs.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/spin/0.9.9/download", + "sha256": "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "spin", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "spin", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "barrier", + "default", + "lazy", + "lock_api", + "lock_api_crate", + "mutex", + "once", + "rwlock", + "spin_mutex" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "lock_api 0.4.14", + "target": "lock_api", + "alias": "lock_api_crate" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.9.9" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "spin 0.10.1": { + "name": "spin", + "version": "0.10.1", + "package_url": "https://github.com/mvdnes/spin-rs.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/spin/0.10.1/download", + "sha256": "023a211cb3138dbc438680b32560ad89f699977624c9f8dbb95a47d5b4c07dd3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "spin", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "spin", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "mutex", + "once", + "rwlock", + "spin_mutex" + ], + "selects": {} + }, + "edition": "2015", + "version": "0.10.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "spki 0.7.3": { + "name": "spki", + "version": "0.7.3", + "package_url": "https://github.com/RustCrypto/formats/tree/master/spki", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/spki/0.7.3/download", + "sha256": "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "spki", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "spki", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "pem", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "der 0.7.10", + "target": "der" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.3" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "stable_deref_trait 1.2.1": { + "name": "stable_deref_trait", + "version": "1.2.1", + "package_url": "https://github.com/storyyeller/stable_deref_trait", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/stable_deref_trait/1.2.1/download", + "sha256": "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + } + }, + "targets": [ + { + "Library": { + "crate_name": "stable_deref_trait", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "stable_deref_trait", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "edition": "2015", + "version": "1.2.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "str_stack 0.1.1": { + "name": "str_stack", + "version": "0.1.1", + "package_url": "https://github.com/Stebalien/str_stack", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/str_stack/0.1.1/download", + "sha256": "7f446288b699d66d0fd2e30d1cfe7869194312524b3b9252594868ed26ef056a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "str_stack", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "str_stack", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "0.1.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "streaming-iterator 0.1.9": { + "name": "streaming-iterator", + "version": "0.1.9", + "package_url": "https://github.com/sfackler/streaming-iterator", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/streaming-iterator/0.1.9/download", + "sha256": "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520" + } + }, + "targets": [ + { + "Library": { + "crate_name": "streaming_iterator", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "streaming_iterator", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.1.9" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "string_cache 0.9.0": { + "name": "string_cache", + "version": "0.9.0", + "package_url": "https://github.com/servo/string-cache", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/string_cache/0.9.0/download", + "sha256": "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" + } + }, + "targets": [ + { + "Library": { + "crate_name": "string_cache", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "string_cache", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "new_debug_unreachable 1.0.6", + "target": "debug_unreachable" + }, + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "phf_shared 0.13.1", + "target": "phf_shared" + }, + { + "id": "precomputed-hash 0.1.1", + "target": "precomputed_hash" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.9.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "string_cache_codegen 0.6.1": { + "name": "string_cache_codegen", + "version": "0.6.1", + "package_url": "https://github.com/servo/string-cache", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/string_cache_codegen/0.6.1/download", + "sha256": "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" + } + }, + "targets": [ + { + "Library": { + "crate_name": "string_cache_codegen", + "crate_root": "lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "string_cache_codegen", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "phf_generator 0.13.1", + "target": "phf_generator" + }, + { + "id": "phf_shared 0.13.1", + "target": "phf_shared" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.6.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "strsim 0.11.1": { + "name": "strsim", + "version": "0.11.1", + "package_url": "https://github.com/rapidfuzz/strsim-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/strsim/0.11.1/download", + "sha256": "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "strsim", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "strsim", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "0.11.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "strum 0.28.0": { + "name": "strum", + "version": "0.28.0", + "package_url": "https://github.com/Peternator7/strum", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/strum/0.28.0/download", + "sha256": "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" + } + }, + "targets": [ + { + "Library": { + "crate_name": "strum", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "strum", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.28.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "strum_macros 0.28.0": { + "name": "strum_macros", + "version": "0.28.0", + "package_url": "https://github.com/Peternator7/strum", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/strum_macros/0.28.0/download", + "sha256": "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "strum_macros", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "strum_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "heck 0.5.0", + "target": "heck" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.28.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "stun 0.17.2": { + "name": "stun", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/stun", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/stun/0.17.2/download", + "sha256": "2e3b8d5ad1dd4c8cd0595440f26521a71dd593cb5873ee8e06b91510b7d97269" + } + }, + "targets": [ + { + "Library": { + "crate_name": "stun", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "stun", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "base64 0.22.1", + "target": "base64" + }, + { + "id": "crc 3.4.0", + "target": "crc" + }, + { + "id": "lazy_static 1.5.0", + "target": "lazy_static" + }, + { + "id": "md-5 0.10.6", + "target": "md5" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "ring 0.17.14", + "target": "ring" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "url 2.5.8", + "target": "url" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "substring 1.4.5": { + "name": "substring", + "version": "1.4.5", + "package_url": "https://github.com/Anders429/substring", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/substring/1.4.5/download", + "sha256": "42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86" + } + }, + "targets": [ + { + "Library": { + "crate_name": "substring", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "substring", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "substring 1.4.5", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "1.4.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "autocfg 1.5.1", + "target": "autocfg" + } + ], + "selects": {} + } + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "subtle 2.6.1": { + "name": "subtle", + "version": "2.6.1", + "package_url": "https://github.com/dalek-cryptography/subtle", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/subtle/2.6.1/download", + "sha256": "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + } + }, + "targets": [ + { + "Library": { + "crate_name": "subtle", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "subtle", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "i128", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "2.6.1" + }, + "license": "BSD-3-Clause", + "license_ids": [ + "BSD-3-Clause" + ], + "license_file": "LICENSE" + }, + "syn 2.0.119": { + "name": "syn", + "version": "2.0.119", + "package_url": "https://github.com/dtolnay/syn", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/syn/2.0.119/download", + "sha256": "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" + } + }, + "targets": [ + { + "Library": { + "crate_name": "syn", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "syn", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "clone-impls", + "default", + "derive", + "extra-traits", + "fold", + "full", + "parsing", + "printing", + "proc-macro", + "visit", + "visit-mut" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "unicode-ident 1.0.24", + "target": "unicode_ident" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.0.119" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "syn 3.0.3": { + "name": "syn", + "version": "3.0.3", + "package_url": "https://github.com/dtolnay/syn", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/syn/3.0.3/download", + "sha256": "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "syn", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "syn", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "clone-impls", + "default", + "derive", + "full", + "parsing", + "printing", + "proc-macro", + "visit-mut" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "unicode-ident 1.0.24", + "target": "unicode_ident" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "3.0.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "synstructure 0.13.2": { + "name": "synstructure", + "version": "0.13.2", + "package_url": "https://github.com/mystor/synstructure", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/synstructure/0.13.2/download", + "sha256": "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "synstructure", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "synstructure", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "proc-macro" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.13.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "syntect 5.3.0": { + "name": "syntect", + "version": "5.3.0", + "package_url": "https://github.com/trishume/syntect", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/syntect/5.3.0/download", + "sha256": "656b45c05d95a5704399aeef6bd0ddec7b2b3531b7c9e900abbf7c4d2190c925" + } + }, + "targets": [ + { + "Library": { + "crate_name": "syntect", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "syntect", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "bincode", + "default-syntaxes", + "default-themes", + "dump-create", + "dump-load", + "fancy-regex", + "flate2", + "fnv", + "parsing", + "regex-fancy", + "regex-syntax", + "yaml-load", + "yaml-rust" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bincode 1.3.3", + "target": "bincode" + }, + { + "id": "fancy-regex 0.16.2", + "target": "fancy_regex" + }, + { + "id": "flate2 1.1.9", + "target": "flate2" + }, + { + "id": "fnv 1.0.7", + "target": "fnv" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "regex-syntax 0.8.11", + "target": "regex_syntax" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "walkdir 2.5.0", + "target": "walkdir" + }, + { + "id": "yaml-rust 0.4.5", + "target": "yaml_rust" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "serde_derive 1.0.229", + "target": "serde_derive" + } + ], + "selects": {} + }, + "version": "5.3.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "system-deps 7.0.8": { + "name": "system-deps", + "version": "7.0.8", + "package_url": "https://github.com/gdesmott/system-deps", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/system-deps/7.0.8/download", + "sha256": "396a35feb67335377e0251fcbc1092fc85c484bd4e3a7a54319399da127796e7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "system_deps", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "system_deps", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-expr 0.20.8", + "target": "cfg_expr" + }, + { + "id": "heck 0.5.0", + "target": "heck" + }, + { + "id": "pkg-config 0.3.33", + "target": "pkg_config" + }, + { + "id": "toml 1.1.3+spec-1.1.0", + "target": "toml" + }, + { + "id": "version-compare 0.2.1", + "target": "version_compare" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "7.0.8" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "tap 1.0.1": { + "name": "tap", + "version": "1.0.1", + "package_url": "https://github.com/myrrlyn/tap", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tap/1.0.1/download", + "sha256": "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tap", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tap", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "1.0.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "target-lexicon 0.13.5": { + "name": "target-lexicon", + "version": "0.13.5", + "package_url": "https://github.com/bytecodealliance/target-lexicon", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/target-lexicon/0.13.5/download", + "sha256": "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" + } + }, + "targets": [ + { + "Library": { + "crate_name": "target_lexicon", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "target_lexicon", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "target-lexicon 0.13.5", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.13.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Apache-2.0 WITH LLVM-exception", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "tempfile 3.27.0": { + "name": "tempfile", + "version": "3.27.0", + "package_url": "https://github.com/Stebalien/tempfile", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tempfile/3.27.0/download", + "sha256": "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tempfile", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tempfile", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "getrandom" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "fastrand 2.5.0", + "target": "fastrand" + }, + { + "id": "getrandom 0.4.3", + "target": "getrandom" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + } + ], + "selects": { + "cfg(any(unix, target_os = \"wasi\"))": [ + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "3.27.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "tendril 0.5.1": { + "name": "tendril", + "version": "0.5.1", + "package_url": "https://github.com/servo/html5ever", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tendril/0.5.1/download", + "sha256": "5fed54709c5b3a53d09bb1c113ea4f5ceafd1e772ddcb0030a82e1d56c087b08" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tendril", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tendril", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "new_debug_unreachable 1.0.6", + "target": "debug_unreachable" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "termcolor 1.4.1": { + "name": "termcolor", + "version": "1.4.1", + "package_url": "https://github.com/BurntSushi/termcolor", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/termcolor/1.4.1/download", + "sha256": "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" + } + }, + "targets": [ + { + "Library": { + "crate_name": "termcolor", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "termcolor", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(windows)": [ + { + "id": "winapi-util 0.1.11", + "target": "winapi_util" + } + ] + } + }, + "edition": "2018", + "version": "1.4.1" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "terminal_size 0.4.4": { + "name": "terminal_size", + "version": "0.4.4", + "package_url": "https://github.com/eminence/terminal-size", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/terminal_size/0.4.4/download", + "sha256": "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" + } + }, + "targets": [ + { + "Library": { + "crate_name": "terminal_size", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "terminal_size", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(unix)": [ + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "0.4.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "terminfo 0.9.0": { + "name": "terminfo", + "version": "0.9.0", + "package_url": "https://github.com/meh/rust-terminfo", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/terminfo/0.9.0/download", + "sha256": "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662" + } + }, + "targets": [ + { + "Library": { + "crate_name": "terminfo", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "terminfo", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "fnv 1.0.7", + "target": "fnv" + }, + { + "id": "nom 7.1.3", + "target": "nom" + }, + { + "id": "phf 0.11.3", + "target": "phf" + }, + { + "id": "terminfo 0.9.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "phf_codegen 0.11.3", + "target": "phf_codegen" + } + ], + "selects": {} + } + }, + "license": "WTFPL", + "license_ids": [ + "WTFPL" + ], + "license_file": "LICENSE" + }, + "thiserror 1.0.69": { + "name": "thiserror", + "version": "1.0.69", + "package_url": "https://github.com/dtolnay/thiserror", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/thiserror/1.0.69/download", + "sha256": "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" + } + }, + "targets": [ + { + "Library": { + "crate_name": "thiserror", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "thiserror", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "thiserror 1.0.69", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "thiserror-impl 1.0.69", + "target": "thiserror_impl" + } + ], + "selects": {} + }, + "version": "1.0.69" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "thiserror 2.0.19": { + "name": "thiserror", + "version": "2.0.19", + "package_url": "https://github.com/dtolnay/thiserror", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/thiserror/2.0.19/download", + "sha256": "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9" + } + }, + "targets": [ + { + "Library": { + "crate_name": "thiserror", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "thiserror", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "thiserror 2.0.19", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "thiserror-impl 2.0.19", + "target": "thiserror_impl" + } + ], + "selects": {} + }, + "version": "2.0.19" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "thiserror-impl 1.0.69": { + "name": "thiserror-impl", + "version": "1.0.69", + "package_url": "https://github.com/dtolnay/thiserror", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/thiserror-impl/1.0.69/download", + "sha256": "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "thiserror_impl", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "thiserror_impl", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.69" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "thiserror-impl 2.0.19": { + "name": "thiserror-impl", + "version": "2.0.19", + "package_url": "https://github.com/dtolnay/thiserror", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/thiserror-impl/2.0.19/download", + "sha256": "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "thiserror_impl", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "thiserror_impl", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 3.0.3", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.0.19" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "tiff 0.11.3": { + "name": "tiff", + "version": "0.11.3", + "package_url": "https://github.com/image-rs/image-tiff", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tiff/0.11.3/download", + "sha256": "b63feaf3343d35b6ca4d50483f94843803b0f51634937cc2ec519fc32232bc52" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tiff", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tiff", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "deflate", + "fax", + "jpeg", + "lzw" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "fax 0.2.7", + "target": "fax", + "alias": "fax34" + }, + { + "id": "flate2 1.1.9", + "target": "flate2" + }, + { + "id": "half 2.7.1", + "target": "half" + }, + { + "id": "quick-error 2.0.1", + "target": "quick_error" + }, + { + "id": "weezl 0.1.12", + "target": "weezl" + }, + { + "id": "zune-jpeg 0.5.15", + "target": "zune_jpeg" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.11.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tiktoken-rs 0.11.0": { + "name": "tiktoken-rs", + "version": "0.11.0", + "package_url": "https://github.com/zurawiki/tiktoken-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tiktoken-rs/0.11.0/download", + "sha256": "fac4a168cfc1d8ed65bf17a6ee0843ad9a68f863c63c0fb2fa7eab67838782ee" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tiktoken_rs", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tiktoken_rs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "anyhow 1.0.104", + "target": "anyhow" + }, + { + "id": "base64 0.22.1", + "target": "base64" + }, + { + "id": "bstr 1.13.0", + "target": "bstr" + }, + { + "id": "fancy-regex 0.17.0", + "target": "fancy_regex" + }, + { + "id": "lazy_static 1.5.0", + "target": "lazy_static" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "rustc-hash 1.1.0", + "target": "rustc_hash" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.11.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "time 0.3.54": { + "name": "time", + "version": "0.3.54", + "package_url": "https://github.com/time-rs/time", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/time/0.3.54/download", + "sha256": "3e1d5e639ff6bab73cb6885cc7e7b1de96c3f32c68ec55f3952614bec1092244" + } + }, + "targets": [ + { + "Library": { + "crate_name": "time", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "time", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "formatting", + "macros", + "parsing", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "deranged 0.5.8", + "target": "deranged" + }, + { + "id": "num-conv 0.2.2", + "target": "num_conv" + }, + { + "id": "powerfmt 0.2.0", + "target": "powerfmt" + }, + { + "id": "time-core 0.1.9", + "target": "time_core" + } + ], + "selects": {} + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "time-macros 0.2.32", + "target": "time_macros" + } + ], + "selects": {} + }, + "version": "0.3.54" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-Apache" + }, + "time-core 0.1.9": { + "name": "time-core", + "version": "0.1.9", + "package_url": "https://github.com/time-rs/time", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/time-core/0.1.9/download", + "sha256": "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" + } + }, + "targets": [ + { + "Library": { + "crate_name": "time_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "time_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2024", + "version": "0.1.9" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-Apache" + }, + "time-macros 0.2.32": { + "name": "time-macros", + "version": "0.2.32", + "package_url": "https://github.com/time-rs/time", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/time-macros/0.2.32/download", + "sha256": "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "time_macros", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "time_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "formatting", + "parsing" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "num-conv 0.2.2", + "target": "num_conv" + }, + { + "id": "time-core 0.1.9", + "target": "time_core" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.2.32" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-Apache" + }, + "tiny-keccak 2.0.2": { + "name": "tiny-keccak", + "version": "2.0.2", + "package_url": "https://github.com/debris/tiny-keccak", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tiny-keccak/2.0.2/download", + "sha256": "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tiny_keccak", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tiny_keccak", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "shake" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "crunchy 0.2.4", + "target": "crunchy" + }, + { + "id": "tiny-keccak 2.0.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "2.0.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "CC0-1.0", + "license_ids": [ + "CC0-1.0" + ], + "license_file": "LICENSE" + }, + "tinystr 0.8.3": { + "name": "tinystr", + "version": "0.8.3", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tinystr/0.8.3/download", + "sha256": "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tinystr", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tinystr", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "zerovec" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "zerovec 0.11.6", + "target": "zerovec" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "0.8.3" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "tinyvec 1.12.0": { + "name": "tinyvec", + "version": "1.12.0", + "package_url": "https://github.com/Lokathor/tinyvec", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tinyvec/1.12.0/download", + "sha256": "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tinyvec", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tinyvec", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "1.12.0" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": "LICENSE-APACHE.md" + }, + "tinyvec_macros 0.1.1": { + "name": "tinyvec_macros", + "version": "0.1.1", + "package_url": "https://github.com/Soveu/tinyvec_macros", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tinyvec_macros/0.1.1/download", + "sha256": "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tinyvec_macros", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tinyvec_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.1.1" + }, + "license": "MIT OR Apache-2.0 OR Zlib", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": "LICENSE-APACHE.md" + }, + "tokio 1.53.1": { + "name": "tokio", + "version": "1.53.1", + "package_url": "https://github.com/tokio-rs/tokio", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tokio/1.53.1/download", + "sha256": "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tokio", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tokio", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "bytes", + "default", + "fs", + "full", + "io-std", + "io-util", + "libc", + "macros", + "mio", + "net", + "parking_lot", + "process", + "rt", + "rt-multi-thread", + "signal", + "signal-hook-registry", + "socket2", + "sync", + "time", + "tokio-macros" + ], + "selects": { + "x86_64-pc-windows-msvc": [ + "windows-sys" + ] + } + }, + "deps": { + "common": [ + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "mio 1.2.2", + "target": "mio" + }, + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + }, + { + "id": "socket2 0.6.5", + "target": "socket2" + } + ], + "selects": { + "aarch64-apple-darwin": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "signal-hook-registry 1.4.8", + "target": "signal_hook_registry" + } + ], + "aarch64-unknown-linux-gnu": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "signal-hook-registry 1.4.8", + "target": "signal_hook_registry" + } + ], + "aarch64-unknown-linux-musl": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "signal-hook-registry 1.4.8", + "target": "signal_hook_registry" + } + ], + "x86_64-apple-darwin": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "signal-hook-registry 1.4.8", + "target": "signal_hook_registry" + } + ], + "x86_64-pc-windows-msvc": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ], + "x86_64-unknown-linux-gnu": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "signal-hook-registry 1.4.8", + "target": "signal_hook_registry" + } + ], + "x86_64-unknown-linux-musl": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "signal-hook-registry 1.4.8", + "target": "signal_hook_registry" + } + ] + } + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "tokio-macros 2.7.1", + "target": "tokio_macros" + } + ], + "selects": {} + }, + "version": "1.53.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tokio-macros 2.7.1": { + "name": "tokio-macros", + "version": "2.7.1", + "package_url": "https://github.com/tokio-rs/tokio", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tokio-macros/2.7.1/download", + "sha256": "6328af13490e73a9b4694030fafd93f8c8c6a9dede33e821c3fc63eddf8042ba" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "tokio_macros", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tokio_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.7.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tokio-util 0.7.19": { + "name": "tokio-util", + "version": "0.7.19", + "package_url": "https://github.com/tokio-rs/tokio", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tokio-util/0.7.19/download", + "sha256": "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tokio_util", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tokio_util", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "codec", + "compat", + "default", + "full", + "futures-io", + "futures-util", + "hashbrown", + "io", + "io-util", + "join-map", + "libc", + "net", + "rt", + "slab", + "time" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "futures-core 0.3.33", + "target": "futures_core" + }, + { + "id": "futures-io 0.3.33", + "target": "futures_io" + }, + { + "id": "futures-sink 0.3.33", + "target": "futures_sink" + }, + { + "id": "futures-util 0.3.33", + "target": "futures_util" + }, + { + "id": "hashbrown 0.15.5", + "target": "hashbrown" + }, + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + }, + { + "id": "slab 0.4.12", + "target": "slab" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + } + ], + "selects": { + "aarch64-apple-darwin": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "aarch64-unknown-linux-gnu": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "aarch64-unknown-linux-musl": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "x86_64-apple-darwin": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "x86_64-unknown-linux-gnu": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "x86_64-unknown-linux-musl": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2021", + "version": "0.7.19" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "toml 1.1.3+spec-1.1.0": { + "name": "toml", + "version": "1.1.3+spec-1.1.0", + "package_url": "https://github.com/toml-rs/toml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/toml/1.1.3+spec-1.1.0/download", + "sha256": "53c96ecdfa941c8fc4fcaed14f99ada8ebed502eef533015095a07e3301d4c3c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "toml", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "toml", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "display", + "parse", + "serde", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "serde_core 1.0.229", + "target": "serde_core" + }, + { + "id": "serde_spanned 1.1.1", + "target": "serde_spanned" + }, + { + "id": "toml_datetime 1.1.1+spec-1.1.0", + "target": "toml_datetime" + }, + { + "id": "toml_parser 1.1.2+spec-1.1.0", + "target": "toml_parser" + }, + { + "id": "toml_writer 1.1.2+spec-1.1.0", + "target": "toml_writer" + }, + { + "id": "winnow 1.0.4", + "target": "winnow" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "1.1.3+spec-1.1.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "toml_datetime 1.1.1+spec-1.1.0": { + "name": "toml_datetime", + "version": "1.1.1+spec-1.1.0", + "package_url": "https://github.com/toml-rs/toml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/toml_datetime/1.1.1+spec-1.1.0/download", + "sha256": "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "toml_datetime", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "toml_datetime", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "serde", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "serde_core 1.0.229", + "target": "serde_core" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "1.1.1+spec-1.1.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "toml_edit 0.25.13+spec-1.1.0": { + "name": "toml_edit", + "version": "0.25.13+spec-1.1.0", + "package_url": "https://github.com/toml-rs/toml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/toml_edit/0.25.13+spec-1.1.0/download", + "sha256": "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "toml_edit", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "toml_edit", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "parse" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "indexmap 2.14.0", + "target": "indexmap" + }, + { + "id": "toml_datetime 1.1.1+spec-1.1.0", + "target": "toml_datetime" + }, + { + "id": "toml_parser 1.1.2+spec-1.1.0", + "target": "toml_parser" + }, + { + "id": "winnow 1.0.4", + "target": "winnow" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.25.13+spec-1.1.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "toml_parser 1.1.2+spec-1.1.0": { + "name": "toml_parser", + "version": "1.1.2+spec-1.1.0", + "package_url": "https://github.com/toml-rs/toml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/toml_parser/1.1.2+spec-1.1.0/download", + "sha256": "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" + } + }, + "targets": [ + { + "Library": { + "crate_name": "toml_parser", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "toml_parser", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "winnow 1.0.4", + "target": "winnow" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "1.1.2+spec-1.1.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "toml_writer 1.1.2+spec-1.1.0": { + "name": "toml_writer", + "version": "1.1.2+spec-1.1.0", + "package_url": "https://github.com/toml-rs/toml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/toml_writer/1.1.2+spec-1.1.0/download", + "sha256": "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "toml_writer", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "toml_writer", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "std" + ], + "selects": {} + }, + "edition": "2024", + "version": "1.1.2+spec-1.1.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "tracing 0.1.44": { + "name": "tracing", + "version": "0.1.44", + "package_url": "https://github.com/tokio-rs/tracing", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tracing/0.1.44/download", + "sha256": "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tracing", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tracing", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "attributes", + "default", + "std", + "tracing-attributes" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "pin-project-lite 0.2.17", + "target": "pin_project_lite" + }, + { + "id": "tracing-core 0.1.36", + "target": "tracing_core" + } + ], + "selects": {} + }, + "edition": "2018", + "proc_macro_deps": { + "common": [ + { + "id": "tracing-attributes 0.1.31", + "target": "tracing_attributes" + } + ], + "selects": {} + }, + "version": "0.1.44" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tracing-attributes 0.1.31": { + "name": "tracing-attributes", + "version": "0.1.31", + "package_url": "https://github.com/tokio-rs/tracing", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tracing-attributes/0.1.31/download", + "sha256": "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "tracing_attributes", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tracing_attributes", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.31" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tracing-core 0.1.36": { + "name": "tracing-core", + "version": "0.1.36", + "package_url": "https://github.com/tokio-rs/tracing", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tracing-core/0.1.36/download", + "sha256": "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tracing_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tracing_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "once_cell", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "once_cell 1.21.4", + "target": "once_cell" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.36" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter 0.25.10": { + "name": "tree-sitter", + "version": "0.25.10", + "package_url": "https://github.com/tree-sitter/tree-sitter", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter/0.25.10/download", + "sha256": "78f873475d258561b06f1c595d93308a7ed124d9977cb26b148c2084a4a3cc87" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter", + "crate_root": "binding_rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "binding_rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "regex-syntax 0.8.11", + "target": "regex_syntax" + }, + { + "id": "streaming-iterator 0.1.9", + "target": "streaming_iterator" + }, + { + "id": "tree-sitter 0.25.10", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.25.10" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + }, + { + "id": "serde_json 1.0.151", + "target": "serde_json" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "links": "tree-sitter" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-astro-next 0.1.1": { + "name": "tree-sitter-astro-next", + "version": "0.1.1", + "package_url": "https://github.com/PRRPCHT/tree-sitter-astro-next", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-astro-next/0.1.1/download", + "sha256": "794a4a59fc2d88e49b4bc41fef9522d77184a36f4e68bbaf545cd1eb2364c46e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_astro_next", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_astro_next", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-astro-next 0.1.1", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.1.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT or Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-bash 0.25.1": { + "name": "tree-sitter-bash", + "version": "0.25.1", + "package_url": "https://github.com/tree-sitter/tree-sitter-bash", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-bash/0.25.1/download", + "sha256": "9e5ec769279cc91b561d3df0d8a5deb26b0ad40d183127f409494d6d8fc53062" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_bash", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_bash", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-bash 0.25.1", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.25.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-c 0.24.2": { + "name": "tree-sitter-c", + "version": "0.24.2", + "package_url": "https://github.com/tree-sitter/tree-sitter-c", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-c/0.24.2/download", + "sha256": "a9b2eb57a55fed6b00812912e730b7a275cf4fe98bfd6a5d76263d4438371728" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_c", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_c", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-c 0.24.2", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.24.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-c-sharp 0.23.5": { + "name": "tree-sitter-c-sharp", + "version": "0.23.5", + "package_url": "https://github.com/tree-sitter/tree-sitter-c-sharp", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-c-sharp/0.23.5/download", + "sha256": "c1aac67f1ad71de1d6d39708d34811081c26dfa495658de6c14c34200849357c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_c_sharp", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_c_sharp", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-c-sharp 0.23.5", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.23.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-clojure 0.1.0": { + "name": "tree-sitter-clojure", + "version": "0.1.0", + "package_url": "https://github.com/jerielverissimo/tree-sitter-clojure", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-clojure/0.1.0/download", + "sha256": "4004884cc509449a1d78fa3e1f02b4e953d0a8065984445304795e72e885338c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_clojure", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_clojure", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter 0.25.10", + "target": "tree_sitter" + }, + { + "id": "tree-sitter-clojure 0.1.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.1.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter 0.25.10", + "target": "tree_sitter" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-cmake 0.7.4": { + "name": "tree-sitter-cmake", + "version": "0.7.4", + "package_url": "https://github.com/uyha/tree-sitter-cmake", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-cmake/0.7.4/download", + "sha256": "164e0c4f4236ec5ceff14824a5528615cf462e100467e49826442ff57d327061" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_cmake", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_cmake", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-cmake 0.7.4", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.4" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-cpp 0.23.4": { + "name": "tree-sitter-cpp", + "version": "0.23.4", + "package_url": "https://github.com/tree-sitter/tree-sitter-cpp", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-cpp/0.23.4/download", + "sha256": "df2196ea9d47b4ab4a31b9297eaa5a5d19a0b121dceb9f118f6790ad0ab94743" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_cpp", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_cpp", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-cpp 0.23.4", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.23.4" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-css 0.25.0": { + "name": "tree-sitter-css", + "version": "0.25.0", + "package_url": "https://github.com/tree-sitter/tree-sitter-css", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-css/0.25.0/download", + "sha256": "a5cbc5e18f29a2c6d6435891f42569525cf95435a3e01c2f1947abcde178686f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_css", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_css", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-css 0.25.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.25.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-dart 0.2.0": { + "name": "tree-sitter-dart", + "version": "0.2.0", + "package_url": "https://github.com/nielsenko/tree-sitter-dart", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-dart/0.2.0/download", + "sha256": "325dd1e24ee9ee21111e9c43680ae7d6010aaa9f282b048a99b9c7163c1cf553" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_dart", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_dart", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-dart 0.2.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-diff 0.1.0": { + "name": "tree-sitter-diff", + "version": "0.1.0", + "package_url": "https://github.com/tree-sitter/tree-sitter-diff", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-diff/0.1.0/download", + "sha256": "dfe1e5ca280a65dfe5ba4205c1bcc84edf486464fed315db53dee6da9a335889" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_diff", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_diff", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-diff 0.1.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-dockerfile-updated 0.2.0": { + "name": "tree-sitter-dockerfile-updated", + "version": "0.2.0", + "package_url": "https://github.com/c-gamble/tree-sitter-dockerfile", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-dockerfile-updated/0.2.0/download", + "sha256": "5e61eb704364be179ab9be89e2891c8e77c0041eca5891a5c04164a21f6df7a0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_dockerfile_updated", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_dockerfile_updated", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter 0.25.10", + "target": "tree_sitter" + }, + { + "id": "tree-sitter-dockerfile-updated 0.2.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter 0.25.10", + "target": "tree_sitter" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-elisp 1.6.1": { + "name": "tree-sitter-elisp", + "version": "1.6.1", + "package_url": "https://github.com/Wilfred/tree-sitter-elisp", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-elisp/1.6.1/download", + "sha256": "5e2e9a6ab3cebf24ca41cdc1f985549b9b33f7ef25c19ac7d18e53a4ee24da09" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_elisp", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_elisp", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-elisp 1.6.1", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.6.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-elixir 0.3.5": { + "name": "tree-sitter-elixir", + "version": "0.3.5", + "package_url": "https://github.com/elixir-lang/tree-sitter-elixir", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-elixir/0.3.5/download", + "sha256": "66dd064a762ed95bfc29857fa3cb7403bb1e5cb88112de0f6341b7e47284ba40" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_elixir", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_elixir", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-elixir 0.3.5", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "tree-sitter-erlang 0.16.0": { + "name": "tree-sitter-erlang", + "version": "0.16.0", + "package_url": "https://github.com/WhatsApp/tree-sitter-erlang", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-erlang/0.16.0/download", + "sha256": "ceb442e728225d601db0661f60d64e166bd9b9a55c587f71d4e4f27378717cce" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_erlang", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_erlang", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-erlang 0.16.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.16.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-fortran 0.6.0": { + "name": "tree-sitter-fortran", + "version": "0.6.0", + "package_url": "https://github.com/stadelmanma/tree-sitter-fortran", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-fortran/0.6.0/download", + "sha256": "ea5fea41363a9b59666001dc26c4b356d4e164da27c6ce31145e00aba6bf9b16" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_fortran", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_fortran", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-fortran 0.6.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.6.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-go 0.25.0": { + "name": "tree-sitter-go", + "version": "0.25.0", + "package_url": "https://github.com/tree-sitter/tree-sitter-go", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-go/0.25.0/download", + "sha256": "c8560a4d2f835cc0d4d2c2e03cbd0dde2f6114b43bc491164238d333e28b16ea" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_go", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_go", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-go 0.25.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.25.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-graphql 0.1.0": { + "name": "tree-sitter-graphql", + "version": "0.1.0", + "package_url": "https://github.com/joowani/tree-sitter-graphql", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-graphql/0.1.0/download", + "sha256": "efedc4cac157161cc23a0adc4553a2cedc908e1cd754b6cd033a919bb81ce5d6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_graphql", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_graphql", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-graphql 0.1.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": null, + "license_ids": [], + "license_file": "LICENSE" + }, + "tree-sitter-haskell 0.23.1": { + "name": "tree-sitter-haskell", + "version": "0.23.1", + "package_url": "https://github.com/tree-sitter/tree-sitter-haskell", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-haskell/0.23.1/download", + "sha256": "977c51e504548cba13fc27cb5a2edab2124cf6716a1934915d07ab99523b05a4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_haskell", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_haskell", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-haskell 0.23.1", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.23.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-hcl 1.1.0": { + "name": "tree-sitter-hcl", + "version": "1.1.0", + "package_url": "https://github.com/tree-sitter-grammars/tree-sitter-hcl", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-hcl/1.1.0/download", + "sha256": "5a7b2cc3d7121553b84309fab9d11b3ff3d420403eef9ae50f9fd1cd9d9cf012" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_hcl", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_hcl", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-hcl 1.1.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.1.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "tree-sitter-html 0.23.2": { + "name": "tree-sitter-html", + "version": "0.23.2", + "package_url": "https://github.com/tree-sitter/tree-sitter-html", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-html/0.23.2/download", + "sha256": "261b708e5d92061ede329babaaa427b819329a9d427a1d710abb0f67bbef63ee" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_html", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_html", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-html 0.23.2", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.23.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-ini 1.4.0": { + "name": "tree-sitter-ini", + "version": "1.4.0", + "package_url": "https://github.com/justinmk/tree-sitter-ini", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-ini/1.4.0/download", + "sha256": "387f79682cd53b7c0a5777c96e601a02b9965a787984ef86dbb8952bdab2d62f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_ini", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_ini", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-ini 1.4.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.4.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "tree-sitter-java 0.23.5": { + "name": "tree-sitter-java", + "version": "0.23.5", + "package_url": "https://github.com/tree-sitter/tree-sitter-java", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-java/0.23.5/download", + "sha256": "0aa6cbcdc8c679b214e616fd3300da67da0e492e066df01bcf5a5921a71e90d6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_java", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_java", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-java 0.23.5", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.23.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-javascript 0.25.0": { + "name": "tree-sitter-javascript", + "version": "0.25.0", + "package_url": "https://github.com/tree-sitter/tree-sitter-javascript", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-javascript/0.25.0/download", + "sha256": "68204f2abc0627a90bdf06e605f5c470aa26fdcb2081ea553a04bdad756693f5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_javascript", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_javascript", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-javascript 0.25.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.25.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-json 0.24.8": { + "name": "tree-sitter-json", + "version": "0.24.8", + "package_url": "https://github.com/tree-sitter/tree-sitter-json", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-json/0.24.8/download", + "sha256": "4d727acca406c0020cffc6cf35516764f36c8e3dc4408e5ebe2cb35a947ec471" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_json", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_json", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-json 0.24.8", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.24.8" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-julia 0.23.1": { + "name": "tree-sitter-julia", + "version": "0.23.1", + "package_url": "https://github.com/tree-sitter/tree-sitter-julia", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-julia/0.23.1/download", + "sha256": "4144731a178812ee867619b1e98b3b91e54c1652304b26e5ebe3175b701de323" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_julia", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_julia", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-julia 0.23.1", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.23.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-just 0.2.0": { + "name": "tree-sitter-just", + "version": "0.2.0", + "package_url": "https://github.com/casey/tree-sitter-just", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-just/0.2.0/download", + "sha256": "bd46794f2c270f43d73b2f2c8c256992471f3493c903604da0886df984771920" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_just", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_just", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter 0.25.10", + "target": "tree_sitter" + }, + { + "id": "tree-sitter-just 0.2.0", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter 0.25.10", + "target": "tree_sitter" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "build_script_env": { + "common": { + "CFLAGS": "-UNDEBUG" + }, + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-kotlin-sg 0.4.1": { + "name": "tree-sitter-kotlin-sg", + "version": "0.4.1", + "package_url": "https://github.com/ast-grep/tree-sitter-kotlin", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-kotlin-sg/0.4.1/download", + "sha256": "c06ec43ae3c12165d4ac08afe4e1f5fc6757ffe274fa7bd5af9007ef11ba4319" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_kotlin_sg", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_kotlin_sg", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-kotlin-sg 0.4.1", + "target": "build_script_build" + }, + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-language 0.1.7": { + "name": "tree-sitter-language", + "version": "0.1.7", + "package_url": "https://github.com/tree-sitter/tree-sitter", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-language/0.1.7/download", + "sha256": "009994f150cc0cd50ff54917d5bc8bffe8cad10ca10d81c34da2ec421ae61782" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_language", + "crate_root": "src/language.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_language", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.7" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "links": "tree-sitter-language" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-lua 0.5.0": { + "name": "tree-sitter-lua", + "version": "0.5.0", + "package_url": "https://github.com/tree-sitter-grammars/tree-sitter-lua", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-lua/0.5.0/download", + "sha256": "8daaf5f4235188a58603c39760d5fa5d4b920d36a299c934adddae757f32a10c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_lua", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_lua", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-lua 0.5.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-make 1.1.1": { + "name": "tree-sitter-make", + "version": "1.1.1", + "package_url": "https://github.com/tree-sitter-grammars/tree-sitter-make", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-make/1.1.1/download", + "sha256": "c5998dc7cbcbdab19fae8aefef982bf2d6544513d8d2e69cc44aec4c63810104" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_make", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_make", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-make 1.1.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.1.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-md 0.5.3": { + "name": "tree-sitter-md", + "version": "0.5.3", + "package_url": "https://github.com/tree-sitter-grammars/tree-sitter-markdown", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-md/0.5.3/download", + "sha256": "2efd398be546456c814598ee56c0f51769a77241511b4a58077815d120afa882" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_md", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_md", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-md 0.5.3", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.3" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-nix 0.3.0": { + "name": "tree-sitter-nix", + "version": "0.3.0", + "package_url": "https://github.com/nix-community/tree-sitter-nix", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-nix/0.3.0/download", + "sha256": "4952a9733f3a98f6683a0ccd1035d84ab7a52f7e84eeed58548d86765ad92de3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_nix", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_nix", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-nix 0.3.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.3.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-objc 3.0.2": { + "name": "tree-sitter-objc", + "version": "3.0.2", + "package_url": "https://github.com/tree-sitter-grammars/tree-sitter-objc", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-objc/3.0.2/download", + "sha256": "9ca8bb556423fc176f0535e79d525f783a6684d3c9da81bf9d905303c129e1d2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_objc", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_objc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-objc 3.0.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "3.0.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-ocaml 0.24.2": { + "name": "tree-sitter-ocaml", + "version": "0.24.2", + "package_url": "https://github.com/tree-sitter/tree-sitter-ocaml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-ocaml/0.24.2/download", + "sha256": "7d19db582b3855f56b5f9ec484170fbfb9ee60b938ec7720d76d2ee788e8b640" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_ocaml", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_ocaml", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-ocaml 0.24.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.24.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-odin 1.3.0": { + "name": "tree-sitter-odin", + "version": "1.3.0", + "package_url": "https://github.com/tree-sitter-grammars/tree-sitter-odin", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-odin/1.3.0/download", + "sha256": "24db210fe9ba2237c71c5030d7b146c7025420ba72dd8013d13cd822c3a8d77a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_odin", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_odin", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-odin 1.3.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.3.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-php 0.24.2": { + "name": "tree-sitter-php", + "version": "0.24.2", + "package_url": "https://github.com/tree-sitter/tree-sitter-php", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-php/0.24.2/download", + "sha256": "0d8c17c3ab69052c5eeaa7ff5cd972dd1bc25d1b97ee779fec391ad3b5df5592" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_php", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_php", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-php 0.24.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.24.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-powershell 0.26.4": { + "name": "tree-sitter-powershell", + "version": "0.26.4", + "package_url": "https://github.com/airbus-cert/tree-sitter-powershell", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-powershell/0.26.4/download", + "sha256": "3faf304d44b9ddd4a7d97804bb8de7daf564336dd5a526dc6de5b39238243022" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_powershell", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_powershell", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-powershell 0.26.4", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.26.4" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-proto 0.4.0": { + "name": "tree-sitter-proto", + "version": "0.4.0", + "package_url": "https://github.com/coder3101/tree-sitter-proto", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-proto/0.4.0/download", + "sha256": "2e410ccb5fa3cbd6bf7b8e512ecf7ad9d5254395b822bfe9f751b50fa978f31c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_proto", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_proto", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-proto 0.4.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-python 0.25.0": { + "name": "tree-sitter-python", + "version": "0.25.0", + "package_url": "https://github.com/tree-sitter/tree-sitter-python", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-python/0.25.0/download", + "sha256": "6bf85fd39652e740bf60f46f4cda9492c3a9ad75880575bf14960f775cb74a1c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_python", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_python", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-python 0.25.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.25.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-r 1.3.0": { + "name": "tree-sitter-r", + "version": "1.3.0", + "package_url": "https://github.com/r-lib/tree-sitter-r", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-r/1.3.0/download", + "sha256": "ffc9954ec870dcad6cffdd302b405306c68cf031ed79a78cd9746f6740d9fe20" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_r", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_r", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-r 1.3.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.3.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-regex 0.25.0": { + "name": "tree-sitter-regex", + "version": "0.25.0", + "package_url": "https://github.com/tree-sitter/tree-sitter-regex", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-regex/0.25.0/download", + "sha256": "bd8a59be9f0ac131fd8f062eaaba14882b2fa5a6a7882a20134cb1d60df2e625" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_regex", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_regex", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-regex 0.25.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.25.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-ruby 0.23.1": { + "name": "tree-sitter-ruby", + "version": "0.23.1", + "package_url": "https://github.com/tree-sitter/tree-sitter-ruby", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-ruby/0.23.1/download", + "sha256": "be0484ea4ef6bb9c575b4fdabde7e31340a8d2dbc7d52b321ac83da703249f95" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_ruby", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_ruby", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-ruby 0.23.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.23.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-rust 0.24.2": { + "name": "tree-sitter-rust", + "version": "0.24.2", + "package_url": "https://github.com/tree-sitter/tree-sitter-rust", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-rust/0.24.2/download", + "sha256": "439e577dbe07423ec2582ac62c7531120dbfccfa6e5f92406f93dd271a120e45" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_rust", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_rust", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-rust 0.24.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.24.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-scala 0.26.0": { + "name": "tree-sitter-scala", + "version": "0.26.0", + "package_url": "https://github.com/tree-sitter/tree-sitter-scala", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-scala/0.26.0/download", + "sha256": "de5a4a7ff23a55474ce6a741d52aaeca7a82fe9421bb982b86e98c6ac8629397" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_scala", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_scala", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-scala 0.26.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.26.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-sequel 0.3.11": { + "name": "tree-sitter-sequel", + "version": "0.3.11", + "package_url": "https://github.com/derekstride/tree-sitter-sql.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-sequel/0.3.11/download", + "sha256": "9d198ad3c319c02e43c21efa1ec796b837afcb96ffaef1a40c1978fbdcec7d17" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_sequel", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_sequel", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-sequel 0.3.11", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.11" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-solidity 1.2.13": { + "name": "tree-sitter-solidity", + "version": "1.2.13", + "package_url": "https://github.com/JoranHonig/tree-sitter-solidity", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-solidity/1.2.13/download", + "sha256": "4eacf8875b70879f0cb670c60b233ad0b68752d9e1474e6c3ef168eea8a90b25" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_solidity", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_solidity", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-solidity 1.2.13", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.2.13" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-starlark 1.3.0": { + "name": "tree-sitter-starlark", + "version": "1.3.0", + "package_url": "https://github.com/tree-sitter-grammars/tree-sitter-starlark", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-starlark/1.3.0/download", + "sha256": "8934f282d085cc4b9ee28aa688aa3fbe8aa3766201c2a6252f411d45b4c3a721" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_starlark", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_starlark", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-starlark 1.3.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.3.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-svelte-next 0.1.1": { + "name": "tree-sitter-svelte-next", + "version": "0.1.1", + "package_url": "https://github.com/PRRPCHT/tree-sitter-svelte-next", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-svelte-next/0.1.1/download", + "sha256": "56f88190d0743e897c3e148a7e241aba0a8844b8afe816943851426e3f7b9753" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_svelte_next", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_svelte_next", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-svelte-next 0.1.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.1.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT or Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "tree-sitter-swift 0.7.3": { + "name": "tree-sitter-swift", + "version": "0.7.3", + "package_url": "https://github.com/alex-pinkus/tree-sitter-swift", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-swift/0.7.3/download", + "sha256": "fe36052155b9dd69ca82b3b8f1b4ccfb2d867125ac1a4db1dd7331829242668c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_swift", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_swift", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-swift 0.7.3", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.7.3" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-tlaplus 1.5.0": { + "name": "tree-sitter-tlaplus", + "version": "1.5.0", + "package_url": "https://github.com/tlaplus-community/tree-sitter-tlaplus", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-tlaplus/1.5.0/download", + "sha256": "ddaacc0337bfee38f233a91a704dc36b887a0c385348163f65344d64b73f79e1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_tlaplus", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_tlaplus", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-tlaplus 1.5.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.5.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-toml-ng 0.7.0": { + "name": "tree-sitter-toml-ng", + "version": "0.7.0", + "package_url": "https://github.com/tree-sitter-grammars/tree-sitter-toml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-toml-ng/0.7.0/download", + "sha256": "e9adc2c898ae49730e857d75be403da3f92bb81d8e37a2f918a08dd10de5ebb1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_toml_ng", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_toml_ng", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-toml-ng 0.7.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-typescript 0.23.2": { + "name": "tree-sitter-typescript", + "version": "0.23.2", + "package_url": "https://github.com/tree-sitter/tree-sitter-typescript", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-typescript/0.23.2/download", + "sha256": "6c5f76ed8d947a75cc446d5fccd8b602ebf0cde64ccf2ffa434d873d7a575eff" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_typescript", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_typescript", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-typescript 0.23.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.23.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-verilog 1.0.3": { + "name": "tree-sitter-verilog", + "version": "1.0.3", + "package_url": "https://github.com/tree-sitter/tree-sitter-verilog", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-verilog/1.0.3/download", + "sha256": "d4e7e0360395852f1f6ff5b7b82c72dc6557d181073188df1d60ec469ea69c66" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_verilog", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_verilog", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-verilog 1.0.3", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.3" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-vue-next 0.1.0": { + "name": "tree-sitter-vue-next", + "version": "0.1.0", + "package_url": "https://github.com/jamie8johnson/tree-sitter-vue", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-vue-next/0.1.0/download", + "sha256": "e9ac89acaa8165aaabfa8ae9683aa423b0d2bf42c815dae5ca031a36a75525f1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_vue_next", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_vue_next", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-vue-next 0.1.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-xml 0.7.0": { + "name": "tree-sitter-xml", + "version": "0.7.0", + "package_url": "https://github.com/tree-sitter-grammars/tree-sitter-xml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-xml/0.7.0/download", + "sha256": "e670041f591d994f54d597ddcd8f4ebc930e282c4c76a42268743b71f0c8b6b3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_xml", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_xml", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-xml 0.7.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree-sitter-yaml 0.7.2": { + "name": "tree-sitter-yaml", + "version": "0.7.2", + "package_url": "https://github.com/tree-sitter-grammars/tree-sitter-yaml", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-yaml/0.7.2/download", + "sha256": "53c223db85f05e34794f065454843b0668ebc15d240ada63e2b5939f43ce7c97" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_yaml", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_yaml", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-yaml 0.7.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "tree-sitter-zig 1.1.2": { + "name": "tree-sitter-zig", + "version": "1.1.2", + "package_url": "https://github.com/tree-sitter-grammars/tree-sitter-zig", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree-sitter-zig/1.1.2/download", + "sha256": "ab11fc124851b0db4dd5e55983bbd9631192e93238389dcd44521715e5d53e28" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_sitter_zig", + "crate_root": "bindings/rust/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_sitter_zig", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + }, + { + "id": "tree-sitter-zig 1.1.2", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.1.2" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + }, + "link_deps": { + "common": [ + { + "id": "tree-sitter-language 0.1.7", + "target": "tree_sitter_language" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "tree_magic_mini 3.2.2": { + "name": "tree_magic_mini", + "version": "3.2.2", + "package_url": "https://github.com/mbrubeck/tree_magic/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/tree_magic_mini/3.2.2/download", + "sha256": "b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "tree_magic_mini", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "tree_magic_mini", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "nom 8.0.0", + "target": "nom" + }, + { + "id": "petgraph 0.8.3", + "target": "petgraph" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "3.2.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "triomphe 0.1.16": { + "name": "triomphe", + "version": "0.1.16", + "package_url": "https://github.com/Manishearth/triomphe", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/triomphe/0.1.16/download", + "sha256": "b40688ea6389c8171614b25491f71d4a27946e0c7ce2da1c6de27e25abf1a0ae" + } + }, + "targets": [ + { + "Library": { + "crate_name": "triomphe", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "triomphe", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.1.16" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "ttf-parser 0.21.1": { + "name": "ttf-parser", + "version": "0.21.1", + "package_url": "https://github.com/RazrFalcon/ttf-parser", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ttf-parser/0.21.1/download", + "sha256": "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ttf_parser", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ttf_parser", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "opentype-layout" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.21.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "turn 0.17.2": { + "name": "turn", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/turn", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/turn/0.17.2/download", + "sha256": "d99249a493335eb44c4d7943a8751b22561a82c9903d8eb2d29780b3927880a7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "turn", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "turn", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "base64 0.22.1", + "target": "base64" + }, + { + "id": "futures 0.3.33", + "target": "futures" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "md-5 0.10.6", + "target": "md5" + }, + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "ring 0.17.14", + "target": "ring" + }, + { + "id": "stun 0.17.2", + "target": "stun" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "tokio-util 0.7.19", + "target": "tokio_util" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "async-trait 0.1.91", + "target": "async_trait" + } + ], + "selects": {} + }, + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "type-map 0.5.1": { + "name": "type-map", + "version": "0.5.1", + "package_url": "https://github.com/kardeiz/type-map", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/type-map/0.5.1/download", + "sha256": "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90" + } + }, + "targets": [ + { + "Library": { + "crate_name": "type_map", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "type_map", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "rustc-hash 2.1.3", + "target": "rustc_hash" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.5.1" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "typed-arena 2.0.2": { + "name": "typed-arena", + "version": "2.0.2", + "package_url": "https://github.com/SimonSapin/rust-typed-arena", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/typed-arena/2.0.2/download", + "sha256": "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "typed_arena", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "typed_arena", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2015", + "version": "2.0.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "typenum 1.20.1": { + "name": "typenum", + "version": "1.20.1", + "package_url": "https://github.com/paholg/typenum", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/typenum/1.20.1/download", + "sha256": "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + } + }, + "targets": [ + { + "Library": { + "crate_name": "typenum", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "typenum", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "const-generics" + ], + "selects": {} + }, + "edition": "2018", + "version": "1.20.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE" + }, + "ucd-trie 0.1.7": { + "name": "ucd-trie", + "version": "0.1.7", + "package_url": "https://github.com/BurntSushi/ucd-generate", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/ucd-trie/0.1.7/download", + "sha256": "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + } + }, + "targets": [ + { + "Library": { + "crate_name": "ucd_trie", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "ucd_trie", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "uds_windows 1.2.1": { + "name": "uds_windows", + "version": "1.2.1", + "package_url": "https://github.com/haraldh/rust_uds_windows", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/uds_windows/1.2.1/download", + "sha256": "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "uds_windows", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uds_windows", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "memoffset 0.9.1", + "target": "memoffset" + } + ], + "selects": { + "cfg(windows)": [ + { + "id": "tempfile 3.27.0", + "target": "tempfile" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "1.2.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "unic-langid 0.9.6": { + "name": "unic-langid", + "version": "0.9.6", + "package_url": "https://github.com/zbraniecki/unic-locale", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/unic-langid/0.9.6/download", + "sha256": "a28ba52c9b05311f4f6e62d5d9d46f094bd6e84cb8df7b3ef952748d752a7d05" + } + }, + "targets": [ + { + "Library": { + "crate_name": "unic_langid", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "unic_langid", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "unic-langid-impl 0.9.6", + "target": "unic_langid_impl" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.6" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "unic-langid-impl 0.9.6": { + "name": "unic-langid-impl", + "version": "0.9.6", + "package_url": "https://github.com/zbraniecki/unic-locale", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/unic-langid-impl/0.9.6/download", + "sha256": "dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658" + } + }, + "targets": [ + { + "Library": { + "crate_name": "unic_langid_impl", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "unic_langid_impl", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tinystr 0.8.3", + "target": "tinystr" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.6" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "unicase 2.9.0": { + "name": "unicase", + "version": "2.9.0", + "package_url": "https://github.com/seanmonstar/unicase", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/unicase/2.9.0/download", + "sha256": "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" + } + }, + "targets": [ + { + "Library": { + "crate_name": "unicase", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "unicase", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "2.9.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "unicode-ident 1.0.24": { + "name": "unicode-ident", + "version": "1.0.24", + "package_url": "https://github.com/dtolnay/unicode-ident", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/unicode-ident/1.0.24/download", + "sha256": "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + } + }, + "targets": [ + { + "Library": { + "crate_name": "unicode_ident", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "unicode_ident", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "1.0.24" + }, + "license": "(MIT OR Apache-2.0) AND Unicode-3.0", + "license_ids": [ + "Apache-2.0", + "MIT", + "Unicode-3.0" + ], + "license_file": "LICENSE-APACHE" + }, + "unicode-segmentation 1.13.3": { + "name": "unicode-segmentation", + "version": "1.13.3", + "package_url": "https://github.com/unicode-rs/unicode-segmentation", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/unicode-segmentation/1.13.3/download", + "sha256": "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "unicode_segmentation", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "unicode_segmentation", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "1.13.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "unicode-width 0.1.14": { + "name": "unicode-width", + "version": "0.1.14", + "package_url": "https://github.com/unicode-rs/unicode-width", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/unicode-width/0.1.14/download", + "sha256": "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + } + }, + "targets": [ + { + "Library": { + "crate_name": "unicode_width", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "unicode_width", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "cjk", + "default" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.14" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "unicode-width 0.2.2": { + "name": "unicode-width", + "version": "0.2.2", + "package_url": "https://github.com/unicode-rs/unicode-width", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/unicode-width/0.2.2/download", + "sha256": "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + } + }, + "targets": [ + { + "Library": { + "crate_name": "unicode_width", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "unicode_width", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "cjk", + "default" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "unit-prefix 0.5.2": { + "name": "unit-prefix", + "version": "0.5.2", + "package_url": "https://codeberg.org/commons-rs/unit-prefix", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/unit-prefix/0.5.2/download", + "sha256": "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "unit_prefix", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "unit_prefix", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.5.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "universal-hash 0.5.1": { + "name": "universal-hash", + "version": "0.5.1", + "package_url": "https://github.com/RustCrypto/traits", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/universal-hash/0.5.1/download", + "sha256": "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" + } + }, + "targets": [ + { + "Library": { + "crate_name": "universal_hash", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "universal_hash", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "crypto-common 0.1.7", + "target": "crypto_common" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "untrusted 0.9.0": { + "name": "untrusted", + "version": "0.9.0", + "package_url": "https://github.com/briansmith/untrusted", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/untrusted/0.9.0/download", + "sha256": "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "untrusted", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "untrusted", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.9.0" + }, + "license": "ISC", + "license_ids": [ + "ISC" + ], + "license_file": "LICENSE.txt" + }, + "url 2.5.8": { + "name": "url", + "version": "2.5.8", + "package_url": "https://github.com/servo/rust-url", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/url/2.5.8/download", + "sha256": "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" + } + }, + "targets": [ + { + "Library": { + "crate_name": "url", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "url", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "form_urlencoded 1.2.2", + "target": "form_urlencoded" + }, + { + "id": "idna 1.1.0", + "target": "idna" + }, + { + "id": "percent-encoding 2.3.2", + "target": "percent_encoding" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "2.5.8" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "urlencoding 2.1.3": { + "name": "urlencoding", + "version": "2.1.3", + "package_url": "https://github.com/kornelski/rust_urlencoding", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/urlencoding/2.1.3/download", + "sha256": "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + } + }, + "targets": [ + { + "Library": { + "crate_name": "urlencoding", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "urlencoding", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "2.1.3" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "utf16_iter 1.0.5": { + "name": "utf16_iter", + "version": "1.0.5", + "package_url": "https://github.com/hsivonen/utf16_iter", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/utf16_iter/1.0.5/download", + "sha256": "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + } + }, + "targets": [ + { + "Library": { + "crate_name": "utf16_iter", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "utf16_iter", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "1.0.5" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "utf8-chars 3.0.7": { + "name": "utf8-chars", + "version": "3.0.7", + "package_url": "https://github.com/A1-Triard/utf8-chars", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/utf8-chars/3.0.7/download", + "sha256": "92498c67ea3511b37eccff13b573ed871faf0ce9c4056ab032bd01a681f445a0" + } + }, + "targets": [ + { + "Library": { + "crate_name": "utf8_chars", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "utf8_chars", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "arrayvec 0.7.8", + "target": "arrayvec" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "3.0.7" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "utf8_iter 1.0.4": { + "name": "utf8_iter", + "version": "1.0.4", + "package_url": "https://github.com/hsivonen/utf8_iter", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/utf8_iter/1.0.4/download", + "sha256": "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + } + }, + "targets": [ + { + "Library": { + "crate_name": "utf8_iter", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "utf8_iter", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "1.0.4" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "utf8parse 0.2.2": { + "name": "utf8parse", + "version": "0.2.2", + "package_url": "https://github.com/alacritty/vte", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/utf8parse/0.2.2/download", + "sha256": "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + } + }, + "targets": [ + { + "Library": { + "crate_name": "utf8parse", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "utf8parse", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.2.2" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "uu_b2sum 0.8.0": { + "name": "uu_b2sum", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_b2sum", + "crate_root": "src/b2sum.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_b2sum", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_base32 0.8.0": { + "name": "uu_base32", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_base32", + "crate_root": "src/base32.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_base32", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_base64 0.8.0": { + "name": "uu_base64", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_base64", + "crate_root": "src/base64.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_base64", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_basename 0.8.0": { + "name": "uu_basename", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_basename", + "crate_root": "src/basename.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_basename", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_cat 0.8.0": { + "name": "uu_cat", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_cat", + "crate_root": "src/cat.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_cat", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_checksum_common 0.8.0": { + "name": "uu_checksum_common", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_checksum_common", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_checksum_common", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "base64-simd 0.8.0", + "target": "base64_simd" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "hex 0.4.3", + "target": "hex" + }, + { + "id": "os_display 0.1.4", + "target": "os_display" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_comm 0.8.0": { + "name": "uu_comm", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_comm", + "crate_root": "src/comm.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_comm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_cut 0.8.0": { + "name": "uu_cut", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_cut", + "crate_root": "src/cut.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_cut", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bstr 1.13.0", + "target": "bstr" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_date 0.8.0": { + "name": "uu_date", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_date", + "crate_root": "src/date.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_date", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "jiff 0.2.35", + "target": "jiff" + }, + { + "id": "parse_datetime 0.14.0", + "target": "parse_datetime" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ] + } + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_dirname 0.8.0": { + "name": "uu_dirname", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_dirname", + "crate_root": "src/dirname.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_dirname", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_find 0.8.0": { + "name": "uu_find", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_find", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_find", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "argmax 0.3.1", + "target": "argmax" + }, + { + "id": "chrono 0.4.45", + "target": "chrono" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "faccess 0.2.4", + "target": "faccess" + }, + { + "id": "nix 0.29.0", + "target": "nix" + }, + { + "id": "onig 6.5.3", + "target": "onig" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "uucore 0.0.30", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "filetime 0.2.29", + "target": "filetime" + }, + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_head 0.8.0": { + "name": "uu_head", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_head", + "crate_root": "src/head.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_head", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_hostname 0.8.0": { + "name": "uu_hostname", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_hostname", + "crate_root": "src/hostname.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_hostname", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "hostname 0.4.2", + "target": "hostname" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": { + "cfg(any(target_os = \"freebsd\", target_os = \"openbsd\"))": [ + { + "id": "dns-lookup 3.0.1", + "target": "dns_lookup" + } + ], + "cfg(target_os = \"windows\")": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_ln 0.8.0": { + "name": "uu_ln", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_ln", + "crate_root": "src/ln.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_ln", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_ls 0.8.0": { + "name": "uu_ls", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_ls", + "crate_root": "src/ls.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_ls", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "ansi-width 0.1.0", + "target": "ansi_width" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "glob 0.3.4", + "target": "glob" + }, + { + "id": "lscolors 0.21.0", + "target": "lscolors" + }, + { + "id": "rustc-hash 2.1.3", + "target": "rustc_hash" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + }, + { + "id": "uutils_term_grid 0.8.0", + "target": "term_grid" + } + ], + "selects": { + "cfg(not(target_os = \"wasi\"))": [ + { + "id": "hostname 0.4.2", + "target": "hostname" + } + ] + } + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_md5sum 0.8.0": { + "name": "uu_md5sum", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_md5sum", + "crate_root": "src/md5sum.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_md5sum", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_mkdir 0.8.0": { + "name": "uu_mkdir", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_mkdir", + "crate_root": "src/mkdir.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_mkdir", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ] + } + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_mktemp 0.8.0": { + "name": "uu_mktemp", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_mktemp", + "crate_root": "src/mktemp.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_mktemp", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "rand 0.10.2", + "target": "rand" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_mv 0.8.0": { + "name": "uu_mv", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_mv", + "crate_root": "src/mv.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_mv", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "fs_extra 1.3.0", + "target": "fs_extra" + }, + { + "id": "indicatif 0.18.6", + "target": "indicatif" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "rustc-hash 2.1.3", + "target": "rustc_hash" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": { + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_nproc 0.8.0": { + "name": "uu_nproc", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_nproc", + "crate_root": "src/nproc.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_nproc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_paste 0.8.0": { + "name": "uu_paste", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_paste", + "crate_root": "src/paste.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_paste", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_printenv 0.8.0": { + "name": "uu_printenv", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_printenv", + "crate_root": "src/printenv.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_printenv", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_readlink 0.8.0": { + "name": "uu_readlink", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_readlink", + "crate_root": "src/readlink.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_readlink", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_realpath 0.8.0": { + "name": "uu_realpath", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_realpath", + "crate_root": "src/realpath.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_realpath", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_rm 0.8.0": { + "name": "uu_rm", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_rm", + "crate_root": "src/rm.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_rm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "indicatif 0.18.6", + "target": "indicatif" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_sed 0.1.1": { + "name": "uu_sed", + "version": "0.1.1", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_sed", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_sed", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "fancy-regex 0.18.0", + "target": "fancy_regex" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + }, + { + "id": "uucore 0.9.0", + "target": "uucore" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "memmap2 0.9.11", + "target": "memmap2" + } + ] + } + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.1.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_seq 0.8.0": { + "name": "uu_seq", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_seq", + "crate_root": "src/seq.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_seq", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bigdecimal 0.4.10", + "target": "bigdecimal" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "num-bigint 0.4.8", + "target": "num_bigint" + }, + { + "id": "num-traits 0.2.19", + "target": "num_traits" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_sha1sum 0.8.0": { + "name": "uu_sha1sum", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_sha1sum", + "crate_root": "src/sha1sum.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_sha1sum", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_sha224sum 0.8.0": { + "name": "uu_sha224sum", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_sha224sum", + "crate_root": "src/sha224sum.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_sha224sum", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_sha256sum 0.8.0": { + "name": "uu_sha256sum", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_sha256sum", + "crate_root": "src/sha256sum.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_sha256sum", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_sha384sum 0.8.0": { + "name": "uu_sha384sum", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_sha384sum", + "crate_root": "src/sha384sum.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_sha384sum", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_sha512sum 0.8.0": { + "name": "uu_sha512sum", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_sha512sum", + "crate_root": "src/sha512sum.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_sha512sum", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_sort 0.8.0": { + "name": "uu_sort", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_sort", + "crate_root": "src/sort.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_sort", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "i18n-collator" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bigdecimal 0.4.10", + "target": "bigdecimal" + }, + { + "id": "binary-heap-plus 0.5.0", + "target": "binary_heap_plus" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "compare 0.1.0", + "target": "compare" + }, + { + "id": "flume 0.11.1", + "target": "flume" + }, + { + "id": "foldhash 0.2.0", + "target": "foldhash" + }, + { + "id": "itertools 0.14.0", + "target": "itertools" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "rand 0.10.2", + "target": "rand" + }, + { + "id": "rayon 1.12.0", + "target": "rayon" + }, + { + "id": "self_cell 1.3.0", + "target": "self_cell" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "nix 0.31.3", + "target": "nix" + } + ] + } + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_stat 0.8.0": { + "name": "uu_stat", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_stat", + "crate_root": "src/stat.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_stat", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": { + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_tac 0.8.0": { + "name": "uu_tac", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_tac", + "crate_root": "src/tac.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_tac", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "memmap2 0.9.11", + "target": "memmap2" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_tail 0.8.0": { + "name": "uu_tail", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_tail", + "crate_root": "src/tail.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_tail", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": { + "cfg(not(target_os = \"wasi\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "notify 8.2.0", + "target": "notify" + } + ], + "cfg(unix)": [ + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "rstest 0.26.1", + "target": "rstest" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_tee 0.8.0": { + "name": "uu_tee", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_tee", + "crate_root": "src/tee.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_tee", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_touch 0.8.0": { + "name": "uu_touch", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_touch", + "crate_root": "src/touch.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_touch", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "filetime 0.2.29", + "target": "filetime" + }, + { + "id": "jiff 0.2.35", + "target": "jiff" + }, + { + "id": "parse_datetime 0.14.0", + "target": "parse_datetime" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_tr 0.8.0": { + "name": "uu_tr", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_tr", + "crate_root": "src/tr.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_tr", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bytecount 0.6.9", + "target": "bytecount" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "nom 8.0.0", + "target": "nom" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_truncate 0.8.0": { + "name": "uu_truncate", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_truncate", + "crate_root": "src/truncate.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_truncate", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_uname 0.8.0": { + "name": "uu_uname", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_uname", + "crate_root": "src/uname.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_uname", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "platform-info 2.1.0", + "target": "platform_info" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_uniq 0.8.0": { + "name": "uu_uniq", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_uniq", + "crate_root": "src/uniq.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_uniq", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_wc 0.8.0": { + "name": "uu_wc", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_wc", + "crate_root": "src/wc.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_wc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bytecount 0.6.9", + "target": "bytecount" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "unicode-width 0.2.2", + "target": "unicode_width" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ] + } + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_whoami 0.8.0": { + "name": "uu_whoami", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_whoami", + "crate_root": "src/whoami.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_whoami", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": { + "cfg(target_os = \"windows\")": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_xargs 0.8.0": { + "name": "uu_xargs", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_xargs", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_xargs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "libc 0.2.189", + "target": "libc" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + }, + { + "id": "tempfile 3.27.0", + "target": "tempfile" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uu_yes 0.8.0": { + "name": "uu_yes", + "version": "0.8.0", + "package_url": null, + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "uu_yes", + "crate_root": "src/yes.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uu_yes", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "itertools 0.14.0", + "target": "itertools" + }, + { + "id": "uucore 0.8.0", + "target": "uucore" + } + ], + "selects": {} + }, + "deps_dev": { + "common": [ + { + "id": "parking_lot 0.12.5", + "target": "parking_lot" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "uucore 0.0.30": { + "name": "uucore", + "version": "0.0.30", + "package_url": "https://github.com/uutils/coreutils/tree/main/src/uucore", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/uucore/0.0.30/download", + "sha256": "71f4e82877d06de779c611a3d54720f56f1e68b228fb30a5b6c66ef07e68263d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "uucore", + "crate_root": "src/lib/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uucore", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "dunce", + "entries", + "fs", + "fsext", + "libc", + "mode", + "winapi-util", + "windows-sys" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "chrono 0.4.45", + "target": "chrono" + }, + { + "id": "chrono-tz 0.10.4", + "target": "chrono_tz" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "dunce 1.0.5", + "target": "dunce" + }, + { + "id": "glob 0.3.4", + "target": "glob" + }, + { + "id": "iana-time-zone 0.1.65", + "target": "iana_time_zone" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "number_prefix 0.4.0", + "target": "number_prefix" + }, + { + "id": "os_display 0.1.4", + "target": "os_display" + }, + { + "id": "wild 2.2.1", + "target": "wild" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "nix 0.29.0", + "target": "nix" + } + ], + "x86_64-pc-windows-msvc": [ + { + "id": "winapi-util 0.1.11", + "target": "winapi_util" + }, + { + "id": "windows-sys 0.59.0", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "uucore_procs 0.0.30", + "target": "uucore_procs" + } + ], + "selects": {} + }, + "version": "0.0.30" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "uucore 0.8.0": { + "name": "uucore", + "version": "0.8.0", + "package_url": "https://github.com/uutils/coreutils/tree/main/src/uucore", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/uucore/0.8.0/download", + "sha256": "07d779636d827cde4100f0e65ff3fd23b0b1f1195055475c6e6813d425f30c8e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "uucore", + "crate_root": "src/lib/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uucore", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "backup-control", + "base64-simd", + "bigdecimal", + "blake2b_simd", + "blake3", + "bstr", + "checksum", + "colors", + "crc-fast", + "data-encoding", + "data-encoding-macro", + "default", + "digest", + "dunce", + "encoding", + "entries", + "extendedbigdecimal", + "fast-inc", + "format", + "fs", + "fsext", + "fsxattr", + "glob", + "hardware", + "hex", + "i18n-charmap", + "i18n-collator", + "i18n-common", + "i18n-datetime", + "i18n-decimal", + "icu_calendar", + "icu_collator", + "icu_datetime", + "icu_decimal", + "icu_locale", + "icu_provider", + "itertools", + "jiff", + "jiff-icu", + "libc", + "lines", + "md-5", + "memchr", + "mode", + "num-traits", + "parser", + "parser-glob", + "parser-num", + "parser-size", + "pipes", + "process", + "procfs", + "quoting-style", + "ranges", + "ringbuffer", + "sha1", + "sha2", + "sha3", + "signals", + "sm3", + "sum", + "time", + "unit-prefix", + "update-control", + "version-cmp", + "wide", + "winapi-util", + "windows-sys", + "xattr", + "z85" + ], + "selects": { + "aarch64-apple-darwin": [ + "safe-traversal" + ], + "aarch64-unknown-linux-gnu": [ + "safe-traversal" + ], + "aarch64-unknown-linux-musl": [ + "safe-traversal" + ], + "x86_64-apple-darwin": [ + "safe-traversal" + ], + "x86_64-unknown-linux-gnu": [ + "safe-traversal" + ], + "x86_64-unknown-linux-musl": [ + "safe-traversal" + ] + } + }, + "deps": { + "common": [ + { + "id": "base64-simd 0.8.0", + "target": "base64_simd" + }, + { + "id": "bigdecimal 0.4.10", + "target": "bigdecimal" + }, + { + "id": "blake2b_simd 1.0.4", + "target": "blake2b_simd" + }, + { + "id": "blake3 1.8.5", + "target": "blake3" + }, + { + "id": "bstr 1.13.0", + "target": "bstr" + }, + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "crc-fast 1.10.0", + "target": "crc_fast" + }, + { + "id": "data-encoding 2.11.0", + "target": "data_encoding" + }, + { + "id": "data-encoding-macro 0.1.20", + "target": "data_encoding_macro" + }, + { + "id": "digest 0.10.7", + "target": "digest" + }, + { + "id": "dunce 1.0.5", + "target": "dunce" + }, + { + "id": "fluent 0.17.0", + "target": "fluent" + }, + { + "id": "fluent-bundle 0.16.0", + "target": "fluent_bundle" + }, + { + "id": "fluent-syntax 0.12.0", + "target": "fluent_syntax" + }, + { + "id": "glob 0.3.4", + "target": "glob" + }, + { + "id": "hex 0.4.3", + "target": "hex" + }, + { + "id": "icu_calendar 2.2.1", + "target": "icu_calendar" + }, + { + "id": "icu_collator 2.2.1", + "target": "icu_collator" + }, + { + "id": "icu_datetime 2.2.0", + "target": "icu_datetime" + }, + { + "id": "icu_decimal 2.2.0", + "target": "icu_decimal" + }, + { + "id": "icu_locale 2.2.0", + "target": "icu_locale" + }, + { + "id": "icu_provider 2.2.0", + "target": "icu_provider" + }, + { + "id": "itertools 0.14.0", + "target": "itertools" + }, + { + "id": "jiff 0.2.35", + "target": "jiff" + }, + { + "id": "jiff-icu 0.2.2", + "target": "jiff_icu" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "md-5 0.10.6", + "target": "md5" + }, + { + "id": "memchr 2.8.3", + "target": "memchr" + }, + { + "id": "num-traits 0.2.19", + "target": "num_traits" + }, + { + "id": "os_display 0.1.4", + "target": "os_display" + }, + { + "id": "rustc-hash 2.1.3", + "target": "rustc_hash" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + }, + { + "id": "sha1 0.10.7", + "target": "sha1" + }, + { + "id": "sha2 0.10.9", + "target": "sha2" + }, + { + "id": "sha3 0.10.9", + "target": "sha3" + }, + { + "id": "sm3 0.5.0", + "target": "sm3" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "unic-langid 0.9.6", + "target": "unic_langid" + }, + { + "id": "unit-prefix 0.5.2", + "target": "unit_prefix" + }, + { + "id": "uucore 0.8.0", + "target": "build_script_build" + }, + { + "id": "z85 3.0.7", + "target": "z85" + } + ], + "selects": { + "aarch64-apple-darwin": [ + { + "id": "xattr 1.6.1", + "target": "xattr" + } + ], + "aarch64-unknown-linux-gnu": [ + { + "id": "procfs 0.18.0", + "target": "procfs" + }, + { + "id": "xattr 1.6.1", + "target": "xattr" + } + ], + "aarch64-unknown-linux-musl": [ + { + "id": "procfs 0.18.0", + "target": "procfs" + }, + { + "id": "xattr 1.6.1", + "target": "xattr" + } + ], + "cfg(target_os = \"windows\")": [ + { + "id": "wild 2.2.1", + "target": "wild" + } + ], + "cfg(unix)": [ + { + "id": "nix 0.31.3", + "target": "nix" + } + ], + "x86_64-apple-darwin": [ + { + "id": "xattr 1.6.1", + "target": "xattr" + } + ], + "x86_64-pc-windows-msvc": [ + { + "id": "winapi-util 0.1.11", + "target": "winapi_util" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ], + "x86_64-unknown-linux-gnu": [ + { + "id": "procfs 0.18.0", + "target": "procfs" + }, + { + "id": "xattr 1.6.1", + "target": "xattr" + } + ], + "x86_64-unknown-linux-musl": [ + { + "id": "procfs 0.18.0", + "target": "procfs" + }, + { + "id": "xattr 1.6.1", + "target": "xattr" + } + ] + } + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "uucore_procs 0.8.0", + "target": "uucore_procs" + } + ], + "selects": {} + }, + "version": "0.8.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "uucore 0.9.0": { + "name": "uucore", + "version": "0.9.0", + "package_url": "https://github.com/uutils/coreutils/tree/main/src/uucore", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/uucore/0.9.0/download", + "sha256": "069b34217c27f611e1589f540f58118dbf226a9e407d38ab472052ff075a1dc2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "uucore", + "crate_root": "src/lib/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uucore", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "libc", + "signals" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "clap 4.6.4", + "target": "clap" + }, + { + "id": "fluent 0.17.0", + "target": "fluent" + }, + { + "id": "fluent-syntax 0.12.0", + "target": "fluent_syntax" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "os_display 0.1.4", + "target": "os_display" + }, + { + "id": "rustc-hash 2.1.3", + "target": "rustc_hash" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "unic-langid 0.9.6", + "target": "unic_langid" + }, + { + "id": "uucore 0.9.0", + "target": "build_script_build" + } + ], + "selects": { + "cfg(target_os = \"windows\")": [ + { + "id": "wild 2.2.1", + "target": "wild" + } + ], + "cfg(unix)": [ + { + "id": "nix 0.31.3", + "target": "nix" + } + ] + } + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "uucore_procs 0.9.0", + "target": "uucore_procs" + } + ], + "selects": {} + }, + "version": "0.9.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "uucore_procs 0.0.30": { + "name": "uucore_procs", + "version": "0.0.30", + "package_url": "https://github.com/uutils/coreutils/tree/main/src/uucore_procs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/uucore_procs/0.0.30/download", + "sha256": "c72435859e812e602e225dea48d014abb6b1072220a8d44f2fe0565553b1f7e4" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "uucore_procs", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uucore_procs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "uuhelp_parser 0.0.30", + "target": "uuhelp_parser" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.0.30" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "uucore_procs 0.8.0": { + "name": "uucore_procs", + "version": "0.8.0", + "package_url": "https://github.com/uutils/coreutils/tree/main/src/uucore_procs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/uucore_procs/0.8.0/download", + "sha256": "da865e8a648b260dbd89fca76d0801995877ab27a4e259b6dec30ba9743b86ab" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "uucore_procs", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uucore_procs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "uucore_procs 0.9.0": { + "name": "uucore_procs", + "version": "0.9.0", + "package_url": "https://github.com/uutils/coreutils/tree/main/src/uucore_procs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/uucore_procs/0.9.0/download", + "sha256": "34337da211e7abfff7189b794afb3b5018fe356fb36474b73645458fc1201350" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "uucore_procs", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uucore_procs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.9.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "uuhelp_parser 0.0.30": { + "name": "uuhelp_parser", + "version": "0.0.30", + "package_url": "https://github.com/uutils/coreutils/tree/main/src/uuhelp_parser", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/uuhelp_parser/0.0.30/download", + "sha256": "0bb6d972f580f8223cb7052d8580aea2b7061e368cf476de32ea9457b19459ed" + } + }, + "targets": [ + { + "Library": { + "crate_name": "uuhelp_parser", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uuhelp_parser", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.0.30" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "uuid 1.24.0": { + "name": "uuid", + "version": "1.24.0", + "package_url": "https://github.com/uuid-rs/uuid", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/uuid/1.24.0/download", + "sha256": "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239" + } + }, + "targets": [ + { + "Library": { + "crate_name": "uuid", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uuid", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "rng", + "std", + "v4" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "getrandom 0.4.3", + "target": "getrandom" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.24.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "uutils_term_grid 0.8.0": { + "name": "uutils_term_grid", + "version": "0.8.0", + "package_url": "https://github.com/uutils/uutils-term-grid", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/uutils_term_grid/0.8.0/download", + "sha256": "382d49b39de4a115f203305057741126b09a615892d773a2d419a2b816e30e39" + } + }, + "targets": [ + { + "Library": { + "crate_name": "term_grid", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "term_grid", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "ansi-width 0.1.0", + "target": "ansi_width" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "uzers 0.12.2": { + "name": "uzers", + "version": "0.12.2", + "package_url": "https://github.com/rustadopt/uzers-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/uzers/0.12.2/download", + "sha256": "0b8275fb1afee25b4111d2dc8b5c505dbbc4afd0b990cb96deb2d88bff8be18d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "uzers", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "uzers", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "cache", + "default", + "log", + "logging", + "mock" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "log 0.4.33", + "target": "log" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.12.2" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "version-compare 0.2.1": { + "name": "version-compare", + "version": "0.2.1", + "package_url": "https://gitlab.com/timvisee/version-compare", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/version-compare/0.2.1/download", + "sha256": "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "version_compare", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "version_compare", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.2.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "version_check 0.9.5": { + "name": "version_check", + "version": "0.9.5", + "package_url": "https://github.com/SergioBenitez/version_check", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/version_check/0.9.5/download", + "sha256": "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "version_check", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "version_check", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "0.9.5" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "vsimd 0.8.0": { + "name": "vsimd", + "version": "0.8.0", + "package_url": "https://github.com/Nugine/simd", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/vsimd/0.8.0/download", + "sha256": "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + } + }, + "targets": [ + { + "Library": { + "crate_name": "vsimd", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "vsimd", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "detect", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, + "waitgroup 0.1.2": { + "name": "waitgroup", + "version": "0.1.2", + "package_url": "https://github.com/laizy/waitgroup-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/waitgroup/0.1.2/download", + "sha256": "d1f50000a783467e6c0200f9d10642f4bc424e39efc1b770203e88b488f79292" + } + }, + "targets": [ + { + "Library": { + "crate_name": "waitgroup", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "waitgroup", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "atomic-waker 1.1.2", + "target": "atomic_waker" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.2" + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "walkdir 2.5.0": { + "name": "walkdir", + "version": "2.5.0", + "package_url": "https://github.com/BurntSushi/walkdir", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/walkdir/2.5.0/download", + "sha256": "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "walkdir", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "walkdir", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "same-file 1.0.6", + "target": "same_file" + } + ], + "selects": { + "cfg(windows)": [ + { + "id": "winapi-util 0.1.11", + "target": "winapi_util" + } + ] + } + }, + "edition": "2018", + "version": "2.5.0" + }, + "license": "Unlicense/MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "wasi 0.11.1+wasi-snapshot-preview1": { + "name": "wasi", + "version": "0.11.1+wasi-snapshot-preview1", + "package_url": "https://github.com/bytecodealliance/wasi", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wasi/0.11.1+wasi-snapshot-preview1/download", + "sha256": "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wasi", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wasi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.11.1+wasi-snapshot-preview1" + }, + "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "wasi 0.14.7+wasi-0.2.4": { + "name": "wasi", + "version": "0.14.7+wasi-0.2.4", + "package_url": "https://github.com/bytecodealliance/wasi-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wasi/0.14.7+wasi-0.2.4/download", + "sha256": "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wasi", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wasi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "wasip2 1.0.4+wasi-0.2.12", + "target": "wasip2" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.14.7+wasi-0.2.4" + }, + "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "wasip2 1.0.4+wasi-0.2.12": { + "name": "wasip2", + "version": "1.0.4+wasi-0.2.12", + "package_url": "https://github.com/bytecodealliance/wasi-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wasip2/1.0.4+wasi-0.2.12/download", + "sha256": "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wasip2", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wasip2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "wit-bindgen 0.57.1", + "target": "wit_bindgen" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.4+wasi-0.2.12" + }, + "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "wasite 1.0.2": { + "name": "wasite", + "version": "1.0.2", + "package_url": "https://github.com/ardaku/wasite", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wasite/1.0.2/download", + "sha256": "66fe902b4a6b8028a753d5424909b764ccf79b7a209eac9bf97e59cda9f71a42" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wasite", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wasite", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "wasi 0.14.7+wasi-0.2.4", + "target": "wasi" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.2" + }, + "license": "Apache-2.0 OR BSL-1.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "BSL-1.0", + "MIT" + ], + "license_file": null + }, + "wasm-bindgen 0.2.126": { + "name": "wasm-bindgen", + "version": "0.2.126", + "package_url": "https://github.com/wasm-bindgen/wasm-bindgen", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wasm-bindgen/0.2.126/download", + "sha256": "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wasm_bindgen", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wasm_bindgen", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "once_cell 1.21.4", + "target": "once_cell" + }, + { + "id": "wasm-bindgen 0.2.126", + "target": "build_script_build" + }, + { + "id": "wasm-bindgen-shared 0.2.126", + "target": "wasm_bindgen_shared" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "wasm-bindgen-macro 0.2.126", + "target": "wasm_bindgen_macro" + } + ], + "selects": {} + }, + "version": "0.2.126" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "link_deps": { + "common": [ + { + "id": "wasm-bindgen-shared 0.2.126", + "target": "wasm_bindgen_shared" + } + ], + "selects": {} + }, + "proc_macro_deps": { + "common": [ + { + "id": "rustversion 1.0.23", + "target": "rustversion", + "alias": "rustversion_compat" + } + ], + "selects": {} + } + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "wasm-bindgen-macro 0.2.126": { + "name": "wasm-bindgen-macro", + "version": "0.2.126", + "package_url": "https://github.com/wasm-bindgen/wasm-bindgen/tree/master/crates/macro", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wasm-bindgen-macro/0.2.126/download", + "sha256": "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "wasm_bindgen_macro", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wasm_bindgen_macro", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "wasm-bindgen-macro-support 0.2.126", + "target": "wasm_bindgen_macro_support" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.126" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "wasm-bindgen-macro-support 0.2.126": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.126", + "package_url": "https://github.com/wasm-bindgen/wasm-bindgen/tree/master/crates/macro-support", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.126/download", + "sha256": "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wasm_bindgen_macro_support", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wasm_bindgen_macro_support", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bumpalo 3.20.3", + "target": "bumpalo" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + }, + { + "id": "wasm-bindgen-shared 0.2.126", + "target": "wasm_bindgen_shared" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.126" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "wasm-bindgen-shared 0.2.126": { + "name": "wasm-bindgen-shared", + "version": "0.2.126", + "package_url": "https://github.com/wasm-bindgen/wasm-bindgen/tree/master/crates/shared", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wasm-bindgen-shared/0.2.126/download", + "sha256": "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wasm_bindgen_shared", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wasm_bindgen_shared", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "unicode-ident 1.0.24", + "target": "unicode_ident" + }, + { + "id": "wasm-bindgen-shared 0.2.126", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.126" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "links": "wasm_bindgen" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "wayland-backend 0.3.16": { + "name": "wayland-backend", + "version": "0.3.16", + "package_url": "https://github.com/smithay/wayland-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wayland-backend/0.3.16/download", + "sha256": "016ccf01d1c58b6f8999612813e17c9b2390f7d70671428869913310f83f54b8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wayland_backend", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wayland_backend", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "downcast-rs 1.2.1", + "target": "downcast_rs" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + }, + { + "id": "smallvec 1.15.2", + "target": "smallvec" + }, + { + "id": "wayland-backend 0.3.16", + "target": "build_script_build" + }, + { + "id": "wayland-sys 0.31.11", + "target": "wayland_sys" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.16" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.2.67", + "target": "cc" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "wayland-client 0.31.15": { + "name": "wayland-client", + "version": "0.31.15", + "package_url": "https://github.com/smithay/wayland-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wayland-client/0.31.15/download", + "sha256": "e3c36a0f861ad76d0901f2800b46321410d9f73f2ea88aac0650d86c32688073" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wayland_client", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wayland_client", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + }, + { + "id": "wayland-backend 0.3.16", + "target": "wayland_backend" + }, + { + "id": "wayland-client 0.31.15", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "wayland-scanner 0.31.11", + "target": "wayland_scanner" + } + ], + "selects": {} + }, + "version": "0.31.15" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "wayland-protocols 0.32.13": { + "name": "wayland-protocols", + "version": "0.32.13", + "package_url": "https://github.com/smithay/wayland-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wayland-protocols/0.32.13/download", + "sha256": "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wayland_protocols", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wayland_protocols", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "client", + "staging", + "wayland-client" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "wayland-backend 0.3.16", + "target": "wayland_backend" + }, + { + "id": "wayland-client 0.31.15", + "target": "wayland_client" + } + ], + "selects": {} + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "wayland-scanner 0.31.11", + "target": "wayland_scanner" + } + ], + "selects": {} + }, + "version": "0.32.13" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "wayland-protocols-wlr 0.3.12": { + "name": "wayland-protocols-wlr", + "version": "0.3.12", + "package_url": "https://github.com/smithay/wayland-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wayland-protocols-wlr/0.3.12/download", + "sha256": "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wayland_protocols_wlr", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wayland_protocols_wlr", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "client", + "wayland-client" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "wayland-backend 0.3.16", + "target": "wayland_backend" + }, + { + "id": "wayland-client 0.31.15", + "target": "wayland_client" + }, + { + "id": "wayland-protocols 0.32.13", + "target": "wayland_protocols" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "wayland-scanner 0.31.11", + "target": "wayland_scanner" + } + ], + "selects": {} + }, + "version": "0.3.12" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "wayland-scanner 0.31.11": { + "name": "wayland-scanner", + "version": "0.31.11", + "package_url": "https://github.com/smithay/wayland-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wayland-scanner/0.31.11/download", + "sha256": "338e30461b3a2b67d70eb30a6d89f8e0c93a833e07d2ae89085cd070c4a00ac0" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "wayland_scanner", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wayland_scanner", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quick-xml 0.41.0", + "target": "quick_xml" + }, + { + "id": "quote 1.0.47", + "target": "quote" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.31.11" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "wayland-server 0.31.14": { + "name": "wayland-server", + "version": "0.31.14", + "package_url": "https://github.com/smithay/wayland-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wayland-server/0.31.14/download", + "sha256": "0dde9c29be0f723a573977de51ee455bf3dfa03652730a74f9dd3b337e374d75" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wayland_server", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wayland_server", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 2.13.1", + "target": "bitflags" + }, + { + "id": "downcast-rs 1.2.1", + "target": "downcast_rs" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + }, + { + "id": "wayland-backend 0.3.16", + "target": "wayland_backend" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "wayland-scanner 0.31.11", + "target": "wayland_scanner" + } + ], + "selects": {} + }, + "version": "0.31.14" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "wayland-sys 0.31.11": { + "name": "wayland-sys", + "version": "0.31.11", + "package_url": "https://github.com/smithay/wayland-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wayland-sys/0.31.11/download", + "sha256": "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wayland_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wayland_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "wayland-sys 0.31.11", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.31.11" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "pkg-config 0.3.33", + "target": "pkg_config" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "web-sys 0.3.103": { + "name": "web-sys", + "version": "0.3.103", + "package_url": "https://github.com/wasm-bindgen/wasm-bindgen/tree/master/crates/web-sys", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/web-sys/0.3.103/download", + "sha256": "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" + } + }, + "targets": [ + { + "Library": { + "crate_name": "web_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "web_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "js-sys 0.3.103", + "target": "js_sys" + }, + { + "id": "wasm-bindgen 0.2.126", + "target": "wasm_bindgen" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.103" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "web-time 1.1.0": { + "name": "web-time", + "version": "1.1.0", + "package_url": "https://github.com/daxpedda/web-time", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/web-time/1.1.0/download", + "sha256": "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "web_time", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "web_time", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(all(target_family = \"wasm\", target_os = \"unknown\"))": [ + { + "id": "js-sys 0.3.103", + "target": "js_sys" + }, + { + "id": "wasm-bindgen 0.2.126", + "target": "wasm_bindgen" + } + ] + } + }, + "edition": "2021", + "version": "1.1.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "web_atoms 0.2.5": { + "name": "web_atoms", + "version": "0.2.5", + "package_url": "https://github.com/servo/html5ever", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/web_atoms/0.2.5/download", + "sha256": "075474b12bcb3d2e3d4546580e9de478eeeead668a1761e2a8860c836b7ef297" + } + }, + "targets": [ + { + "Library": { + "crate_name": "web_atoms", + "crate_root": "lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "web_atoms", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "phf 0.13.1", + "target": "phf" + }, + { + "id": "string_cache 0.9.0", + "target": "string_cache" + }, + { + "id": "web_atoms 0.2.5", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "phf_codegen 0.13.1", + "target": "phf_codegen" + }, + { + "id": "string_cache_codegen 0.6.1", + "target": "string_cache_codegen" + } + ], + "selects": {} + } + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "webrtc 0.17.2": { + "name": "webrtc", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/webrtc/0.17.2/download", + "sha256": "baaacdf9d96224d7b6e2872ba065578f38775f7634367e3ac2cc87c7271da433" + } + }, + "targets": [ + { + "Library": { + "crate_name": "webrtc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "webrtc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "arc-swap 1.9.2", + "target": "arc_swap" + }, + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "dtls 0.17.2", + "target": "dtls" + }, + { + "id": "hex 0.4.3", + "target": "hex" + }, + { + "id": "interceptor 0.17.2", + "target": "interceptor" + }, + { + "id": "lazy_static 1.5.0", + "target": "lazy_static" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "rcgen 0.13.2", + "target": "rcgen" + }, + { + "id": "regex 1.13.1", + "target": "regex" + }, + { + "id": "ring 0.17.14", + "target": "ring" + }, + { + "id": "rtcp 0.17.2", + "target": "rtcp" + }, + { + "id": "rtp 0.17.2", + "target": "rtp" + }, + { + "id": "sdp 0.17.2", + "target": "sdp" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "serde_json 1.0.151", + "target": "serde_json" + }, + { + "id": "sha2 0.10.9", + "target": "sha2" + }, + { + "id": "smol_str 0.2.2", + "target": "smol_str" + }, + { + "id": "stun 0.17.2", + "target": "stun" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "turn 0.17.2", + "target": "turn" + }, + { + "id": "unicase 2.9.0", + "target": "unicase" + }, + { + "id": "url 2.5.8", + "target": "url" + }, + { + "id": "waitgroup 0.1.2", + "target": "waitgroup" + }, + { + "id": "webrtc-data 0.17.2", + "target": "webrtc_data", + "alias": "data" + }, + { + "id": "webrtc-ice 0.17.2", + "target": "webrtc_ice", + "alias": "ice" + }, + { + "id": "webrtc-mdns 0.17.2", + "target": "webrtc_mdns", + "alias": "mdns" + }, + { + "id": "webrtc-media 0.17.2", + "target": "webrtc_media", + "alias": "media" + }, + { + "id": "webrtc-sctp 0.17.2", + "target": "webrtc_sctp", + "alias": "sctp" + }, + { + "id": "webrtc-srtp 0.17.2", + "target": "webrtc_srtp", + "alias": "srtp" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "async-trait 0.1.91", + "target": "async_trait" + } + ], + "selects": {} + }, + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "webrtc-data 0.17.2": { + "name": "webrtc-data", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/data", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/webrtc-data/0.17.2/download", + "sha256": "bd470286275809f2fcfcdb1e73ef5f1500be82eff7fe98150ce81b20aad5a2a4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "webrtc_data", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "webrtc_data", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "webrtc-sctp 0.17.2", + "target": "webrtc_sctp", + "alias": "sctp" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "webrtc-ice 0.17.2": { + "name": "webrtc-ice", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/ice", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/webrtc-ice/0.17.2/download", + "sha256": "5b7fd30f52e6fda8664779b84b7904b2553b76fee24d9ca665e774ae32b13f53" + } + }, + "targets": [ + { + "Library": { + "crate_name": "webrtc_ice", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "webrtc_ice", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "arc-swap 1.9.2", + "target": "arc_swap" + }, + { + "id": "crc 3.4.0", + "target": "crc" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "serde_json 1.0.151", + "target": "serde_json" + }, + { + "id": "stun 0.17.2", + "target": "stun" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "turn 0.17.2", + "target": "turn" + }, + { + "id": "url 2.5.8", + "target": "url" + }, + { + "id": "uuid 1.24.0", + "target": "uuid" + }, + { + "id": "waitgroup 0.1.2", + "target": "waitgroup" + }, + { + "id": "webrtc-mdns 0.17.2", + "target": "webrtc_mdns", + "alias": "mdns" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "async-trait 0.1.91", + "target": "async_trait" + } + ], + "selects": {} + }, + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "webrtc-mdns 0.17.2": { + "name": "webrtc-mdns", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/mdns", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/webrtc-mdns/0.17.2/download", + "sha256": "91ffa0ea00c0fae979aafa5db285fec5eeb360e1ea246ebec529ba4e09f8e03e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "webrtc_mdns", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "webrtc_mdns", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "reuse_port" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "socket2 0.5.10", + "target": "socket2" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "webrtc-media 0.17.2": { + "name": "webrtc-media", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/media", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/webrtc-media/0.17.2/download", + "sha256": "26a6c7335bdd03dc023cb9a3bd7966866d969c92c86987b73aa16dfa39c7ca29" + } + }, + "targets": [ + { + "Library": { + "crate_name": "webrtc_media", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "webrtc_media", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "byteorder 1.5.0", + "target": "byteorder" + }, + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "rtp 0.17.2", + "target": "rtp" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "webrtc-sctp 0.17.2": { + "name": "webrtc-sctp", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/sctp", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/webrtc-sctp/0.17.2/download", + "sha256": "1c4b637f0d8eb96d900ac0f79b3060ddd21ca88dfefa467e96e67ab0016f2574" + } + }, + "targets": [ + { + "Library": { + "crate_name": "webrtc_sctp", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "webrtc_sctp", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "arc-swap 1.9.2", + "target": "arc_swap" + }, + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "crc 3.4.0", + "target": "crc" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "async-trait 0.1.91", + "target": "async_trait" + } + ], + "selects": {} + }, + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "webrtc-srtp 0.17.2": { + "name": "webrtc-srtp", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/srtp", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/webrtc-srtp/0.17.2/download", + "sha256": "45d2b667a0b5d04eebcb7cb22fd51b2af3721f418097b496e72de16386c8d0c3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "webrtc_srtp", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "webrtc_srtp", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "aead 0.5.2", + "target": "aead" + }, + { + "id": "aes 0.8.4", + "target": "aes" + }, + { + "id": "aes-gcm 0.10.3", + "target": "aes_gcm" + }, + { + "id": "byteorder 1.5.0", + "target": "byteorder" + }, + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "ctr 0.9.2", + "target": "ctr" + }, + { + "id": "hmac 0.12.1", + "target": "hmac" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "rtcp 0.17.2", + "target": "rtcp" + }, + { + "id": "rtp 0.17.2", + "target": "rtp" + }, + { + "id": "sha1 0.10.7", + "target": "sha1" + }, + { + "id": "subtle 2.6.1", + "target": "subtle" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + }, + { + "id": "webrtc-util 0.17.2", + "target": "webrtc_util", + "alias": "util" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "webrtc-util 0.17.2": { + "name": "webrtc-util", + "version": "0.17.2", + "package_url": "https://github.com/webrtc-rs/webrtc/tree/master/util", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/webrtc-util/0.17.2/download", + "sha256": "1beae0b4f24969741c26ca282a257dc5823bd9cbe608f7e3ca3775102d323ad9" + } + }, + "targets": [ + { + "Library": { + "crate_name": "webrtc_util", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "webrtc_util", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "buffer", + "conn", + "ifaces", + "marshal", + "sync", + "vnet" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bytes 1.12.1", + "target": "bytes" + }, + { + "id": "ipnet 2.12.0", + "target": "ipnet" + }, + { + "id": "lazy_static 1.5.0", + "target": "lazy_static" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "portable-atomic 1.14.0", + "target": "portable_atomic" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "tokio 1.53.1", + "target": "tokio" + } + ], + "selects": { + "cfg(not(windows))": [ + { + "id": "nix 0.26.4", + "target": "nix" + } + ], + "cfg(windows)": [ + { + "id": "bitflags 1.3.2", + "target": "bitflags" + }, + { + "id": "winapi 0.3.9", + "target": "winapi" + } + ] + } + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "async-trait 0.1.91", + "target": "async_trait" + } + ], + "selects": {} + }, + "version": "0.17.2" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "weezl 0.1.12": { + "name": "weezl", + "version": "0.1.12", + "package_url": "https://github.com/image-rs/weezl", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/weezl/0.1.12/download", + "sha256": "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" + } + }, + "targets": [ + { + "Library": { + "crate_name": "weezl", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "weezl", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.1.12" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "whoami 2.1.2": { + "name": "whoami", + "version": "2.1.2", + "package_url": "https://github.com/ardaku/whoami", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/whoami/2.1.2/download", + "sha256": "998767ef88740d1f5b0682a9c53c24431453923962269c2db68ee43788c5a40d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "whoami", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "whoami", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std", + "wasi-wasite", + "wasm-web" + ], + "selects": {} + }, + "edition": "2021", + "version": "2.1.2" + }, + "license": "Apache-2.0 OR BSL-1.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "BSL-1.0", + "MIT" + ], + "license_file": "LICENSE_APACHE" + }, + "wide 0.8.3": { + "name": "wide", + "version": "0.8.3", + "package_url": "https://github.com/Lokathor/wide", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wide/0.8.3/download", + "sha256": "13ca908d26e4786149c48efcf6c0ea09ab0e06d1fe3c17dc1b4b0f1ca4a7e788" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wide", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wide", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "bytemuck 1.25.2", + "target": "bytemuck" + }, + { + "id": "safe_arch 0.9.3", + "target": "safe_arch" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.8.3" + }, + "license": "Zlib OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": "LICENSE-ZLIB.md" + }, + "widestring 1.2.1": { + "name": "widestring", + "version": "1.2.1", + "package_url": "https://github.com/VoidStarKat/widestring-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/widestring/1.2.1/download", + "sha256": "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" + } + }, + "targets": [ + { + "Library": { + "crate_name": "widestring", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "widestring", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.2.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "wild 2.2.1": { + "name": "wild", + "version": "2.2.1", + "package_url": "https://gitlab.com/kornelski/wild", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wild/2.2.1/download", + "sha256": "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wild", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wild", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(windows)": [ + { + "id": "glob 0.3.4", + "target": "glob" + } + ] + } + }, + "edition": "2021", + "version": "2.2.1" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE" + }, + "winapi 0.3.9": { + "name": "winapi", + "version": "0.3.9", + "package_url": "https://github.com/retep998/winapi-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/winapi/0.3.9/download", + "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winapi", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "winapi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "accctrl", + "aclapi", + "basetsd", + "consoleapi", + "fileapi", + "guiddef", + "handleapi", + "impl-debug", + "impl-default", + "minwinbase", + "minwindef", + "namedpipeapi", + "processenv", + "processthreadsapi", + "securitybaseapi", + "synchapi", + "timezoneapi", + "winbase", + "winerror", + "winnt", + "winreg", + "winsock2", + "winuser", + "ws2def", + "ws2ipdef" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "winapi 0.3.9", + "target": "build_script_build" + } + ], + "selects": { + "i686-pc-windows-gnu": [ + { + "id": "winapi-i686-pc-windows-gnu 0.4.0", + "target": "winapi_i686_pc_windows_gnu" + } + ], + "x86_64-pc-windows-gnu": [ + { + "id": "winapi-x86_64-pc-windows-gnu 0.4.0", + "target": "winapi_x86_64_pc_windows_gnu" + } + ] + } + }, + "edition": "2015", + "version": "0.3.9" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "winapi-i686-pc-windows-gnu 0.4.0": { + "name": "winapi-i686-pc-windows-gnu", + "version": "0.4.0", + "package_url": "https://github.com/retep998/winapi-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download", + "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winapi_i686_pc_windows_gnu", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "winapi_i686_pc_windows_gnu", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "winapi-i686-pc-windows-gnu 0.4.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.4.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "winapi-util 0.1.11": { + "name": "winapi-util", + "version": "0.1.11", + "package_url": "https://github.com/BurntSushi/winapi-util", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/winapi-util/0.1.11/download", + "sha256": "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winapi_util", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "winapi_util", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(windows)": [ + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2021", + "version": "0.1.11" + }, + "license": "Unlicense OR MIT", + "license_ids": [ + "MIT", + "Unlicense" + ], + "license_file": "LICENSE-MIT" + }, + "winapi-x86_64-pc-windows-gnu 0.4.0": { + "name": "winapi-x86_64-pc-windows-gnu", + "version": "0.4.0", + "package_url": "https://github.com/retep998/winapi-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download", + "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winapi_x86_64_pc_windows_gnu", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "winapi_x86_64_pc_windows_gnu", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "winapi-x86_64-pc-windows-gnu 0.4.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.4.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "windows 0.51.1": { + "name": "windows", + "version": "0.51.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows/0.51.1/download", + "sha256": "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "Win32", + "Win32_Foundation", + "Win32_Security", + "Win32_System", + "Win32_System_Threading" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-core 0.51.1", + "target": "windows_core" + }, + { + "id": "windows-targets 0.48.5", + "target": "windows_targets" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.51.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows 0.61.3": { + "name": "windows", + "version": "0.61.3", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows/0.61.3/download", + "sha256": "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "Win32", + "Win32_Foundation", + "Win32_UI", + "Win32_UI_HiDpi", + "Win32_UI_Input", + "Win32_UI_Input_KeyboardAndMouse", + "Win32_UI_TextServices", + "Win32_UI_WindowsAndMessaging", + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-collections 0.2.0", + "target": "windows_collections" + }, + { + "id": "windows-core 0.61.2", + "target": "windows_core" + }, + { + "id": "windows-future 0.2.1", + "target": "windows_future" + }, + { + "id": "windows-link 0.1.3", + "target": "windows_link" + }, + { + "id": "windows-numerics 0.2.0", + "target": "windows_numerics" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.61.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows 0.62.2": { + "name": "windows", + "version": "0.62.2", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows/0.62.2/download", + "sha256": "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "Win32", + "Win32_Devices", + "Win32_Devices_Display", + "Win32_Foundation", + "Win32_Graphics", + "Win32_Graphics_Direct3D", + "Win32_Graphics_Direct3D11", + "Win32_Graphics_Dwm", + "Win32_Graphics_Dxgi", + "Win32_Graphics_Dxgi_Common", + "Win32_Graphics_Gdi", + "Win32_Storage", + "Win32_Storage_FileSystem", + "Win32_Storage_Xps", + "Win32_System", + "Win32_System_LibraryLoader", + "Win32_System_ProcessStatus", + "Win32_System_Registry", + "Win32_System_Threading", + "Win32_UI", + "Win32_UI_WindowsAndMessaging", + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-collections 0.3.2", + "target": "windows_collections" + }, + { + "id": "windows-core 0.62.2", + "target": "windows_core" + }, + { + "id": "windows-future 0.3.2", + "target": "windows_future" + }, + { + "id": "windows-numerics 0.3.1", + "target": "windows_numerics" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.62.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-collections 0.2.0": { + "name": "windows-collections", + "version": "0.2.0", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-collections/0.2.0/download", + "sha256": "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_collections", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_collections", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows-core 0.61.2", + "target": "windows_core" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-collections 0.3.2": { + "name": "windows-collections", + "version": "0.3.2", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-collections/0.3.2/download", + "sha256": "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_collections", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_collections", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-core 0.62.2", + "target": "windows_core" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-core 0.51.1": { + "name": "windows-core", + "version": "0.51.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-core/0.51.1/download", + "sha256": "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-targets 0.48.5", + "target": "windows_targets" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.51.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-core 0.61.2": { + "name": "windows-core", + "version": "0.61.2", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-core/0.61.2/download", + "sha256": "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-link 0.1.3", + "target": "windows_link" + }, + { + "id": "windows-result 0.3.4", + "target": "windows_result" + }, + { + "id": "windows-strings 0.4.2", + "target": "windows_strings" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "windows-implement 0.60.2", + "target": "windows_implement" + }, + { + "id": "windows-interface 0.59.3", + "target": "windows_interface" + } + ], + "selects": {} + }, + "version": "0.61.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-core 0.62.2": { + "name": "windows-core", + "version": "0.62.2", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-core/0.62.2/download", + "sha256": "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + }, + { + "id": "windows-result 0.4.1", + "target": "windows_result" + }, + { + "id": "windows-strings 0.5.1", + "target": "windows_strings" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "windows-implement 0.60.2", + "target": "windows_implement" + }, + { + "id": "windows-interface 0.59.3", + "target": "windows_interface" + } + ], + "selects": {} + }, + "version": "0.62.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-future 0.2.1": { + "name": "windows-future", + "version": "0.2.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-future/0.2.1/download", + "sha256": "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_future", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_future", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows-core 0.61.2", + "target": "windows_core" + }, + { + "id": "windows-link 0.1.3", + "target": "windows_link" + }, + { + "id": "windows-threading 0.1.0", + "target": "windows_threading" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-future 0.3.2": { + "name": "windows-future", + "version": "0.3.2", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-future/0.3.2/download", + "sha256": "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_future", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_future", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-core 0.62.2", + "target": "windows_core" + }, + { + "id": "windows-link 0.2.1", + "target": "windows_link" + }, + { + "id": "windows-threading 0.2.1", + "target": "windows_threading" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-implement 0.60.2": { + "name": "windows-implement", + "version": "0.60.2", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-implement/0.60.2/download", + "sha256": "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "windows_implement", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_implement", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.60.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-interface 0.59.3": { + "name": "windows-interface", + "version": "0.59.3", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-interface/0.59.3/download", + "sha256": "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "windows_interface", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_interface", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.59.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-link 0.1.3": { + "name": "windows-link", + "version": "0.1.3", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-link/0.1.3/download", + "sha256": "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_link", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_link", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.1.3" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-link 0.2.1": { + "name": "windows-link", + "version": "0.2.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-link/0.2.1/download", + "sha256": "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_link", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_link", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.2.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-numerics 0.2.0": { + "name": "windows-numerics", + "version": "0.2.0", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-numerics/0.2.0/download", + "sha256": "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_numerics", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_numerics", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows-core 0.61.2", + "target": "windows_core" + }, + { + "id": "windows-link 0.1.3", + "target": "windows_link" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-numerics 0.3.1": { + "name": "windows-numerics", + "version": "0.3.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-numerics/0.3.1/download", + "sha256": "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_numerics", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_numerics", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-core 0.62.2", + "target": "windows_core" + }, + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-result 0.3.4": { + "name": "windows-result", + "version": "0.3.4", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-result/0.3.4/download", + "sha256": "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_result", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_result", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-link 0.1.3", + "target": "windows_link" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.3.4" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-result 0.4.1": { + "name": "windows-result", + "version": "0.4.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-result/0.4.1/download", + "sha256": "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_result", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_result", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-strings 0.4.2": { + "name": "windows-strings", + "version": "0.4.2", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-strings/0.4.2/download", + "sha256": "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_strings", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_strings", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-link 0.1.3", + "target": "windows_link" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.4.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-strings 0.5.1": { + "name": "windows-strings", + "version": "0.5.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-strings/0.5.1/download", + "sha256": "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_strings", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_strings", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-sys 0.52.0": { + "name": "windows-sys", + "version": "0.52.0", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-sys/0.52.0/download", + "sha256": "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "Win32", + "Win32_Foundation", + "Win32_Networking", + "Win32_Networking_WinSock", + "Win32_System", + "Win32_System_IO", + "Win32_System_Threading", + "Win32_System_WindowsProgramming", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-targets 0.52.6", + "target": "windows_targets" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.52.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-sys 0.59.0": { + "name": "windows-sys", + "version": "0.59.0", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-sys/0.59.0/download", + "sha256": "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "Wdk", + "Wdk_System", + "Wdk_System_SystemInformation", + "Win32", + "Win32_Foundation", + "Win32_Security", + "Win32_Storage", + "Win32_Storage_FileSystem", + "Win32_System", + "Win32_System_Console", + "Win32_System_Diagnostics", + "Win32_System_Diagnostics_ToolHelp", + "Win32_System_LibraryLoader", + "Win32_System_RemoteDesktop", + "Win32_System_SystemInformation", + "Win32_System_SystemServices", + "Win32_System_Threading", + "Win32_System_WindowsProgramming", + "Win32_UI", + "Win32_UI_WindowsAndMessaging", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-targets 0.52.6", + "target": "windows_targets" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.59.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-sys 0.60.2": { + "name": "windows-sys", + "version": "0.60.2", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-sys/0.60.2/download", + "sha256": "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "Win32", + "Win32_Foundation", + "Win32_Graphics", + "Win32_Graphics_Gdi", + "Win32_Security", + "Win32_Storage", + "Win32_Storage_FileSystem", + "Win32_System", + "Win32_System_DataExchange", + "Win32_System_IO", + "Win32_System_Memory", + "Win32_System_Ole", + "Win32_System_Threading", + "Win32_System_WindowsProgramming", + "Win32_UI", + "Win32_UI_Shell", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-targets 0.53.5", + "target": "windows_targets" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.60.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-sys 0.61.2": { + "name": "windows-sys", + "version": "0.61.2", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-sys/0.61.2/download", + "sha256": "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_sys", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_sys", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "Wdk", + "Wdk_Foundation", + "Wdk_Storage", + "Wdk_Storage_FileSystem", + "Wdk_System", + "Wdk_System_IO", + "Wdk_System_SystemInformation", + "Win32", + "Win32_Devices", + "Win32_Devices_Communication", + "Win32_Foundation", + "Win32_NetworkManagement", + "Win32_NetworkManagement_NetManagement", + "Win32_Networking", + "Win32_Networking_WinSock", + "Win32_Security", + "Win32_Storage", + "Win32_Storage_FileSystem", + "Win32_Storage_ProjectedFileSystem", + "Win32_System", + "Win32_System_Com", + "Win32_System_Console", + "Win32_System_Diagnostics", + "Win32_System_Diagnostics_Debug", + "Win32_System_IO", + "Win32_System_Ioctl", + "Win32_System_LibraryLoader", + "Win32_System_Pipes", + "Win32_System_Registry", + "Win32_System_RemoteDesktop", + "Win32_System_SystemInformation", + "Win32_System_SystemServices", + "Win32_System_Threading", + "Win32_System_Time", + "Win32_System_WindowsProgramming", + "Win32_UI", + "Win32_UI_Input", + "Win32_UI_Input_KeyboardAndMouse", + "Win32_UI_WindowsAndMessaging", + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.61.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-targets 0.48.5": { + "name": "windows-targets", + "version": "0.48.5", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-targets/0.48.5/download", + "sha256": "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_targets", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_targets", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "aarch64-pc-windows-gnullvm": [ + { + "id": "windows_aarch64_gnullvm 0.48.5", + "target": "windows_aarch64_gnullvm" + } + ], + "cfg(all(target_arch = \"aarch64\", target_env = \"msvc\", not(windows_raw_dylib)))": [ + { + "id": "windows_aarch64_msvc 0.48.5", + "target": "windows_aarch64_msvc" + } + ], + "cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(windows_raw_dylib)))": [ + { + "id": "windows_i686_gnu 0.48.5", + "target": "windows_i686_gnu" + } + ], + "cfg(all(target_arch = \"x86\", target_env = \"msvc\", not(windows_raw_dylib)))": [ + { + "id": "windows_i686_msvc 0.48.5", + "target": "windows_i686_msvc" + } + ], + "cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))": [ + { + "id": "windows_x86_64_gnu 0.48.5", + "target": "windows_x86_64_gnu" + } + ], + "cfg(all(target_arch = \"x86_64\", target_env = \"msvc\", not(windows_raw_dylib)))": [ + { + "id": "windows_x86_64_msvc 0.48.5", + "target": "windows_x86_64_msvc" + } + ], + "x86_64-pc-windows-gnullvm": [ + { + "id": "windows_x86_64_gnullvm 0.48.5", + "target": "windows_x86_64_gnullvm" + } + ] + } + }, + "edition": "2018", + "version": "0.48.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-targets 0.52.6": { + "name": "windows-targets", + "version": "0.52.6", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-targets/0.52.6/download", + "sha256": "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_targets", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_targets", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "aarch64-pc-windows-gnullvm": [ + { + "id": "windows_aarch64_gnullvm 0.52.6", + "target": "windows_aarch64_gnullvm" + } + ], + "cfg(all(any(target_arch = \"x86_64\", target_arch = \"arm64ec\"), target_env = \"msvc\", not(windows_raw_dylib)))": [ + { + "id": "windows_x86_64_msvc 0.52.6", + "target": "windows_x86_64_msvc" + } + ], + "cfg(all(target_arch = \"aarch64\", target_env = \"msvc\", not(windows_raw_dylib)))": [ + { + "id": "windows_aarch64_msvc 0.52.6", + "target": "windows_aarch64_msvc" + } + ], + "cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))": [ + { + "id": "windows_i686_gnu 0.52.6", + "target": "windows_i686_gnu" + } + ], + "cfg(all(target_arch = \"x86\", target_env = \"msvc\", not(windows_raw_dylib)))": [ + { + "id": "windows_i686_msvc 0.52.6", + "target": "windows_i686_msvc" + } + ], + "cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))": [ + { + "id": "windows_x86_64_gnu 0.52.6", + "target": "windows_x86_64_gnu" + } + ], + "i686-pc-windows-gnullvm": [ + { + "id": "windows_i686_gnullvm 0.52.6", + "target": "windows_i686_gnullvm" + } + ], + "x86_64-pc-windows-gnullvm": [ + { + "id": "windows_x86_64_gnullvm 0.52.6", + "target": "windows_x86_64_gnullvm" + } + ] + } + }, + "edition": "2021", + "version": "0.52.6" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-targets 0.53.5": { + "name": "windows-targets", + "version": "0.53.5", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-targets/0.53.5/download", + "sha256": "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_targets", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_targets", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "aarch64-pc-windows-gnullvm": [ + { + "id": "windows_aarch64_gnullvm 0.53.1", + "target": "windows_aarch64_gnullvm" + } + ], + "cfg(all(any(target_arch = \"x86_64\", target_arch = \"arm64ec\"), target_env = \"msvc\", not(windows_raw_dylib)))": [ + { + "id": "windows_x86_64_msvc 0.53.1", + "target": "windows_x86_64_msvc" + } + ], + "cfg(all(target_arch = \"aarch64\", target_env = \"msvc\", not(windows_raw_dylib)))": [ + { + "id": "windows_aarch64_msvc 0.53.1", + "target": "windows_aarch64_msvc" + } + ], + "cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))": [ + { + "id": "windows_i686_gnu 0.53.1", + "target": "windows_i686_gnu" + } + ], + "cfg(all(target_arch = \"x86\", target_env = \"msvc\", not(windows_raw_dylib)))": [ + { + "id": "windows_i686_msvc 0.53.1", + "target": "windows_i686_msvc" + } + ], + "cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))": [ + { + "id": "windows_x86_64_gnu 0.53.1", + "target": "windows_x86_64_gnu" + } + ], + "cfg(windows_raw_dylib)": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ], + "i686-pc-windows-gnullvm": [ + { + "id": "windows_i686_gnullvm 0.53.1", + "target": "windows_i686_gnullvm" + } + ], + "x86_64-pc-windows-gnullvm": [ + { + "id": "windows_x86_64_gnullvm 0.53.1", + "target": "windows_x86_64_gnullvm" + } + ] + } + }, + "edition": "2021", + "version": "0.53.5" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-threading 0.1.0": { + "name": "windows-threading", + "version": "0.1.0", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-threading/0.1.0/download", + "sha256": "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_threading", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_threading", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows-link 0.1.3", + "target": "windows_link" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows-threading 0.2.1": { + "name": "windows-threading", + "version": "0.2.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows-threading/0.2.1/download", + "sha256": "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_threading", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_threading", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows-link 0.2.1", + "target": "windows_link" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.2.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_aarch64_gnullvm 0.48.5": { + "name": "windows_aarch64_gnullvm", + "version": "0.48.5", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/0.48.5/download", + "sha256": "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_aarch64_gnullvm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_aarch64_gnullvm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_aarch64_gnullvm 0.48.5", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.48.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_aarch64_gnullvm 0.52.6": { + "name": "windows_aarch64_gnullvm", + "version": "0.52.6", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/0.52.6/download", + "sha256": "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_aarch64_gnullvm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_aarch64_gnullvm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_aarch64_gnullvm 0.52.6", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.52.6" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_aarch64_gnullvm 0.53.1": { + "name": "windows_aarch64_gnullvm", + "version": "0.53.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/0.53.1/download", + "sha256": "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_aarch64_gnullvm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_aarch64_gnullvm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_aarch64_gnullvm 0.53.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.53.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_aarch64_msvc 0.48.5": { + "name": "windows_aarch64_msvc", + "version": "0.48.5", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_aarch64_msvc/0.48.5/download", + "sha256": "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_aarch64_msvc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_aarch64_msvc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_aarch64_msvc 0.48.5", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.48.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_aarch64_msvc 0.52.6": { + "name": "windows_aarch64_msvc", + "version": "0.52.6", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_aarch64_msvc/0.52.6/download", + "sha256": "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_aarch64_msvc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_aarch64_msvc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_aarch64_msvc 0.52.6", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.52.6" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_aarch64_msvc 0.53.1": { + "name": "windows_aarch64_msvc", + "version": "0.53.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_aarch64_msvc/0.53.1/download", + "sha256": "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_aarch64_msvc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_aarch64_msvc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_aarch64_msvc 0.53.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.53.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_i686_gnu 0.48.5": { + "name": "windows_i686_gnu", + "version": "0.48.5", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_i686_gnu/0.48.5/download", + "sha256": "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_i686_gnu", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_i686_gnu", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_i686_gnu 0.48.5", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.48.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_i686_gnu 0.52.6": { + "name": "windows_i686_gnu", + "version": "0.52.6", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_i686_gnu/0.52.6/download", + "sha256": "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_i686_gnu", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_i686_gnu", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_i686_gnu 0.52.6", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.52.6" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_i686_gnu 0.53.1": { + "name": "windows_i686_gnu", + "version": "0.53.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_i686_gnu/0.53.1/download", + "sha256": "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_i686_gnu", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_i686_gnu", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_i686_gnu 0.53.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.53.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_i686_gnullvm 0.52.6": { + "name": "windows_i686_gnullvm", + "version": "0.52.6", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_i686_gnullvm/0.52.6/download", + "sha256": "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_i686_gnullvm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_i686_gnullvm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_i686_gnullvm 0.52.6", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.52.6" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_i686_gnullvm 0.53.1": { + "name": "windows_i686_gnullvm", + "version": "0.53.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_i686_gnullvm/0.53.1/download", + "sha256": "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_i686_gnullvm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_i686_gnullvm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_i686_gnullvm 0.53.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.53.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_i686_msvc 0.48.5": { + "name": "windows_i686_msvc", + "version": "0.48.5", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_i686_msvc/0.48.5/download", + "sha256": "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_i686_msvc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_i686_msvc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_i686_msvc 0.48.5", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.48.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_i686_msvc 0.52.6": { + "name": "windows_i686_msvc", + "version": "0.52.6", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_i686_msvc/0.52.6/download", + "sha256": "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_i686_msvc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_i686_msvc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_i686_msvc 0.52.6", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.52.6" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_i686_msvc 0.53.1": { + "name": "windows_i686_msvc", + "version": "0.53.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_i686_msvc/0.53.1/download", + "sha256": "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_i686_msvc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_i686_msvc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_i686_msvc 0.53.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.53.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_x86_64_gnu 0.48.5": { + "name": "windows_x86_64_gnu", + "version": "0.48.5", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_x86_64_gnu/0.48.5/download", + "sha256": "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_x86_64_gnu", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_x86_64_gnu", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_x86_64_gnu 0.48.5", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.48.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_x86_64_gnu 0.52.6": { + "name": "windows_x86_64_gnu", + "version": "0.52.6", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_x86_64_gnu/0.52.6/download", + "sha256": "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_x86_64_gnu", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_x86_64_gnu", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_x86_64_gnu 0.52.6", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.52.6" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_x86_64_gnu 0.53.1": { + "name": "windows_x86_64_gnu", + "version": "0.53.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_x86_64_gnu/0.53.1/download", + "sha256": "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_x86_64_gnu", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_x86_64_gnu", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_x86_64_gnu 0.53.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.53.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_x86_64_gnullvm 0.48.5": { + "name": "windows_x86_64_gnullvm", + "version": "0.48.5", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/0.48.5/download", + "sha256": "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_x86_64_gnullvm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_x86_64_gnullvm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_x86_64_gnullvm 0.48.5", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.48.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_x86_64_gnullvm 0.52.6": { + "name": "windows_x86_64_gnullvm", + "version": "0.52.6", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/0.52.6/download", + "sha256": "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_x86_64_gnullvm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_x86_64_gnullvm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_x86_64_gnullvm 0.52.6", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.52.6" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_x86_64_gnullvm 0.53.1": { + "name": "windows_x86_64_gnullvm", + "version": "0.53.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/0.53.1/download", + "sha256": "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_x86_64_gnullvm", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_x86_64_gnullvm", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_x86_64_gnullvm 0.53.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.53.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_x86_64_msvc 0.48.5": { + "name": "windows_x86_64_msvc", + "version": "0.48.5", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_x86_64_msvc/0.48.5/download", + "sha256": "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_x86_64_msvc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_x86_64_msvc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_x86_64_msvc 0.48.5", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.48.5" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_x86_64_msvc 0.52.6": { + "name": "windows_x86_64_msvc", + "version": "0.52.6", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_x86_64_msvc/0.52.6/download", + "sha256": "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_x86_64_msvc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_x86_64_msvc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_x86_64_msvc 0.52.6", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.52.6" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "windows_x86_64_msvc 0.53.1": { + "name": "windows_x86_64_msvc", + "version": "0.53.1", + "package_url": "https://github.com/microsoft/windows-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/windows_x86_64_msvc/0.53.1/download", + "sha256": "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + } + }, + "targets": [ + { + "Library": { + "crate_name": "windows_x86_64_msvc", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "windows_x86_64_msvc", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "windows_x86_64_msvc 0.53.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.53.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "license-apache-2.0" + }, + "winnow 0.7.15": { + "name": "winnow", + "version": "0.7.15", + "package_url": "https://github.com/winnow-rs/winnow", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/winnow/0.7.15/download", + "sha256": "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winnow", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "winnow", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.7.15" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE-MIT" + }, + "winnow 1.0.4": { + "name": "winnow", + "version": "1.0.4", + "package_url": "https://github.com/winnow-rs/winnow", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/winnow/1.0.4/download", + "sha256": "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winnow", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "winnow", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "ascii", + "binary", + "default", + "parser", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.4" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE-MIT" + }, + "winreg 0.10.1": { + "name": "winreg", + "version": "0.10.1", + "package_url": "https://github.com/gentoo90/winreg-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/winreg/0.10.1/download", + "sha256": "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winreg", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "winreg", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "winapi 0.3.9", + "target": "winapi" + }, + { + "id": "winreg 0.10.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.10.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "winreg 0.56.0": { + "name": "winreg", + "version": "0.56.0", + "package_url": "https://github.com/gentoo90/winreg-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/winreg/0.56.0/download", + "sha256": "7d6f32a0ff4a9f6f01231eb2059cc85479330739333e0e58cadf03b6af2cca10" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winreg", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "winreg", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cfg-if 1.0.4", + "target": "cfg_if" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.56.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "wit-bindgen 0.57.1": { + "name": "wit-bindgen", + "version": "0.57.1", + "package_url": "https://github.com/bytecodealliance/wit-bindgen", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wit-bindgen/0.57.1/download", + "sha256": "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wit_bindgen", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wit_bindgen", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "wit-bindgen 0.57.1", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "0.57.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "wl-clipboard-rs 0.9.3": { + "name": "wl-clipboard-rs", + "version": "0.9.3", + "package_url": "https://github.com/YaLTeR/wl-clipboard-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wl-clipboard-rs/0.9.3/download", + "sha256": "e9651471a32e87d96ef3a127715382b2d11cc7c8bb9822ded8a7cc94072eb0a3" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wl_clipboard_rs", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wl_clipboard_rs", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "os_pipe 1.2.3", + "target": "os_pipe" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "tree_magic_mini 3.2.2", + "target": "tree_magic_mini" + }, + { + "id": "wayland-backend 0.3.16", + "target": "wayland_backend" + }, + { + "id": "wayland-client 0.31.15", + "target": "wayland_client" + }, + { + "id": "wayland-protocols 0.32.13", + "target": "wayland_protocols" + }, + { + "id": "wayland-protocols-wlr 0.3.12", + "target": "wayland_protocols_wlr" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.3" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "write16 1.0.0": { + "name": "write16", + "version": "1.0.0", + "package_url": "https://github.com/hsivonen/write16", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/write16/1.0.0/download", + "sha256": "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + } + }, + "targets": [ + { + "Library": { + "crate_name": "write16", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "write16", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "writeable 0.6.3": { + "name": "writeable", + "version": "0.6.3", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/writeable/0.6.3/download", + "sha256": "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + } + }, + "targets": [ + { + "Library": { + "crate_name": "writeable", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "writeable", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "either" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "either 1.17.0", + "target": "either" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.6.3" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "wyz 0.5.1": { + "name": "wyz", + "version": "0.5.1", + "package_url": "https://github.com/myrrlyn/wyz", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/wyz/0.5.1/download", + "sha256": "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" + } + }, + "targets": [ + { + "Library": { + "crate_name": "wyz", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "wyz", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tap 1.0.1", + "target": "tap" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.5.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE.txt" + }, + "x11rb 0.13.2": { + "name": "x11rb", + "version": "0.13.2", + "package_url": "https://github.com/psychon/x11rb", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/x11rb/0.13.2/download", + "sha256": "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" + } + }, + "targets": [ + { + "Library": { + "crate_name": "x11rb", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "x11rb", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "randr", + "render", + "xtest" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "gethostname 1.1.0", + "target": "gethostname" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + }, + { + "id": "x11rb-protocol 0.13.2", + "target": "x11rb_protocol" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "x11rb-protocol 0.13.2": { + "name": "x11rb-protocol", + "version": "0.13.2", + "package_url": "https://github.com/psychon/x11rb", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/x11rb-protocol/0.13.2/download", + "sha256": "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" + } + }, + "targets": [ + { + "Library": { + "crate_name": "x11rb_protocol", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "x11rb_protocol", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "randr", + "render", + "std", + "xtest" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.13.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "x25519-dalek 2.0.1": { + "name": "x25519-dalek", + "version": "2.0.1", + "package_url": "https://github.com/dalek-cryptography/curve25519-dalek/tree/main/x25519-dalek", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/x25519-dalek/2.0.1/download", + "sha256": "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" + } + }, + "targets": [ + { + "Library": { + "crate_name": "x25519_dalek", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "x25519_dalek", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "precomputed-tables", + "static_secrets", + "zeroize" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "curve25519-dalek 4.1.3", + "target": "curve25519_dalek" + }, + { + "id": "rand_core 0.6.4", + "target": "rand_core" + }, + { + "id": "zeroize 1.9.0", + "target": "zeroize" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.0.1" + }, + "license": "BSD-3-Clause", + "license_ids": [ + "BSD-3-Clause" + ], + "license_file": "LICENSE" + }, + "x509-parser 0.16.0": { + "name": "x509-parser", + "version": "0.16.0", + "package_url": "https://github.com/rusticata/x509-parser.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/x509-parser/0.16.0/download", + "sha256": "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" + } + }, + "targets": [ + { + "Library": { + "crate_name": "x509_parser", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "x509_parser", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "ring", + "verify" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "asn1-rs 0.6.2", + "target": "asn1_rs" + }, + { + "id": "data-encoding 2.11.0", + "target": "data_encoding" + }, + { + "id": "der-parser 9.0.0", + "target": "der_parser" + }, + { + "id": "lazy_static 1.5.0", + "target": "lazy_static" + }, + { + "id": "nom 7.1.3", + "target": "nom" + }, + { + "id": "oid-registry 0.7.1", + "target": "oid_registry" + }, + { + "id": "ring 0.17.14", + "target": "ring" + }, + { + "id": "rusticata-macros 4.1.0", + "target": "rusticata_macros" + }, + { + "id": "thiserror 1.0.69", + "target": "thiserror" + }, + { + "id": "time 0.3.54", + "target": "time" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.16.0" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "xattr 1.6.1": { + "name": "xattr", + "version": "1.6.1", + "package_url": "https://github.com/Stebalien/xattr", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/xattr/1.6.1/download", + "sha256": "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" + } + }, + "targets": [ + { + "Library": { + "crate_name": "xattr", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "xattr", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "unsupported" + ], + "selects": {} + }, + "deps": { + "common": [], + "selects": { + "cfg(any(target_os = \"android\", target_os = \"linux\", target_os = \"macos\", target_os = \"hurd\"))": [ + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "cfg(any(target_os = \"freebsd\", target_os = \"netbsd\"))": [ + { + "id": "libc 0.2.189", + "target": "libc" + } + ] + } + }, + "edition": "2021", + "version": "1.6.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "xcap 0.9.6": { + "name": "xcap", + "version": "0.9.6", + "package_url": "https://github.com/nashaofu/xcap.git", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/xcap/0.9.6/download", + "sha256": "b6ad471d5ba232bc276382d26a9d3b837d6853b7df389058b5bb1e94dcdd248c" + } + }, + "targets": [ + { + "Library": { + "crate_name": "xcap", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "xcap", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "image 0.25.10", + "target": "image" + }, + { + "id": "log 0.4.33", + "target": "log" + }, + { + "id": "scopeguard 1.2.0", + "target": "scopeguard" + }, + { + "id": "thiserror 2.0.19", + "target": "thiserror" + }, + { + "id": "xcap 0.9.6", + "target": "build_script_build" + } + ], + "selects": { + "cfg(all(target_os = \"linux\", not(target_env = \"ohos\")))": [ + { + "id": "libwayshot-xcap 0.3.3", + "target": "libwayshot_xcap" + }, + { + "id": "percent-encoding 2.3.2", + "target": "percent_encoding" + }, + { + "id": "pipewire 0.9.2", + "target": "pipewire" + }, + { + "id": "rand 0.9.5", + "target": "rand" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "url 2.5.8", + "target": "url" + }, + { + "id": "xcb 1.7.0", + "target": "xcb" + }, + { + "id": "zbus 5.18.0", + "target": "zbus" + } + ], + "cfg(target_os = \"macos\")": [ + { + "id": "dispatch2 0.3.1", + "target": "dispatch2" + }, + { + "id": "objc2 0.6.4", + "target": "objc2" + }, + { + "id": "objc2-app-kit 0.3.2", + "target": "objc2_app_kit" + }, + { + "id": "objc2-av-foundation 0.3.2", + "target": "objc2_av_foundation" + }, + { + "id": "objc2-core-foundation 0.3.2", + "target": "objc2_core_foundation" + }, + { + "id": "objc2-core-graphics 0.3.2", + "target": "objc2_core_graphics" + }, + { + "id": "objc2-core-media 0.3.2", + "target": "objc2_core_media" + }, + { + "id": "objc2-core-video 0.3.2", + "target": "objc2_core_video" + }, + { + "id": "objc2-foundation 0.3.2", + "target": "objc2_foundation" + } + ], + "cfg(target_os = \"windows\")": [ + { + "id": "widestring 1.2.1", + "target": "widestring" + }, + { + "id": "windows 0.62.2", + "target": "windows" + } + ] + } + }, + "edition": "2024", + "version": "0.9.6" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "Apache-2.0", + "license_ids": [ + "Apache-2.0" + ], + "license_file": "LICENSE" + }, + "xcb 1.7.0": { + "name": "xcb", + "version": "1.7.0", + "package_url": "https://github.com/rust-x-bindings/rust-xcb", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/xcb/1.7.0/download", + "sha256": "ee4c580d8205abb0a5cf4eb7e927bd664e425b6c3263f9c5310583da96970cf6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "xcb", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_main", + "crate_root": "build/main.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "xcb", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "bitflags 1.3.2", + "target": "bitflags" + }, + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "xcb 1.7.0", + "target": "build_script_main" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.7.0" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "quick-xml 0.30.0", + "target": "quick_xml" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "xkbcommon 0.9.0": { + "name": "xkbcommon", + "version": "0.9.0", + "package_url": "https://github.com/rust-x-bindings/xkbcommon-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/xkbcommon/0.9.0/download", + "sha256": "a7a974f48060a14e95705c01f24ad9c3345022f4d97441b8a36beb7ed5c4a02d" + } + }, + "targets": [ + { + "Library": { + "crate_name": "xkbcommon", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "xkbcommon", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "xkeysym 0.2.1", + "target": "xkeysym" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "xkeysym 0.2.1": { + "name": "xkeysym", + "version": "0.2.1", + "package_url": "https://github.com/notgull/xkeysym", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/xkeysym/0.2.1/download", + "sha256": "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" + } + }, + "targets": [ + { + "Library": { + "crate_name": "xkeysym", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "xkeysym", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "0.2.1" + }, + "license": "MIT OR Apache-2.0 OR Zlib", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": "LICENSE-APACHE" + }, + "xml-rs 0.8.28": { + "name": "xml-rs", + "version": "0.8.28", + "package_url": "https://github.com/kornelski/xml-rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/xml-rs/0.8.28/download", + "sha256": "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "xml", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "xml", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.8.28" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "xxhash-rust 0.8.18": { + "name": "xxhash-rust", + "version": "0.8.18", + "package_url": "https://github.com/DoumanAsh/xxhash-rust", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/xxhash-rust/0.8.18/download", + "sha256": "aee1b19627c7c60102ab80d3a9cbe18de90bfe03bfa6c3715447681f0e8c8af6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "xxhash_rust", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "xxhash_rust", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "xxh64" + ], + "selects": {} + }, + "edition": "2018", + "version": "0.8.18" + }, + "license": "BSL-1.0", + "license_ids": [ + "BSL-1.0" + ], + "license_file": "LICENSE" + }, + "yaml-rust 0.4.5": { + "name": "yaml-rust", + "version": "0.4.5", + "package_url": "https://github.com/chyh1990/yaml-rust", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/yaml-rust/0.4.5/download", + "sha256": "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" + } + }, + "targets": [ + { + "Library": { + "crate_name": "yaml_rust", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "yaml_rust", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "linked-hash-map 0.5.6", + "target": "linked_hash_map" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.4.5" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "yansi 1.0.1": { + "name": "yansi", + "version": "1.0.1", + "package_url": "https://github.com/SergioBenitez/yansi", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/yansi/1.0.1/download", + "sha256": "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + } + }, + "targets": [ + { + "Library": { + "crate_name": "yansi", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "yansi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.1" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "yasna 0.5.2": { + "name": "yasna", + "version": "0.5.2", + "package_url": "https://github.com/qnighy/yasna.rs", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/yasna/0.5.2/download", + "sha256": "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" + } + }, + "targets": [ + { + "Library": { + "crate_name": "yasna", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "yasna", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std", + "time" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "time 0.3.54", + "target": "time" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.5.2" + }, + "license": "MIT OR Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": null + }, + "yoke 0.8.3": { + "name": "yoke", + "version": "0.8.3", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/yoke/0.8.3/download", + "sha256": "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" + } + }, + "targets": [ + { + "Library": { + "crate_name": "yoke", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "yoke", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "derive", + "zerofrom" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "stable_deref_trait 1.2.1", + "target": "stable_deref_trait" + }, + { + "id": "zerofrom 0.1.8", + "target": "zerofrom" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "yoke-derive 0.8.2", + "target": "yoke_derive" + } + ], + "selects": {} + }, + "version": "0.8.3" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "yoke-derive 0.8.2": { + "name": "yoke-derive", + "version": "0.8.2", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/yoke-derive/0.8.2/download", + "sha256": "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "yoke_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "yoke_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + }, + { + "id": "synstructure 0.13.2", + "target": "synstructure" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.2" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "z85 3.0.7": { + "name": "z85", + "version": "3.0.7", + "package_url": "https://github.com/decafbad/z85", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/z85/3.0.7/download", + "sha256": "c6e61e59a957b7ccee15d2049f86e8bfd6f66968fcd88f018950662d9b86e675" + } + }, + "targets": [ + { + "Library": { + "crate_name": "z85", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "z85", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2024", + "version": "3.0.7" + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-Apache" + }, + "zbus 5.18.0": { + "name": "zbus", + "version": "5.18.0", + "package_url": "https://github.com/z-galaxy/zbus/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zbus/5.18.0/download", + "sha256": "fe18fb60dc696039e738717b76eaea21e7a4489bbb1885020b43c94236d7e98a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zbus", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zbus", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "async-broadcast 0.7.2", + "target": "async_broadcast" + }, + { + "id": "enumflags2 0.7.12", + "target": "enumflags2" + }, + { + "id": "event-listener 5.4.1", + "target": "event_listener" + }, + { + "id": "futures-core 0.3.33", + "target": "futures_core" + }, + { + "id": "futures-lite 2.6.1", + "target": "futures_lite" + }, + { + "id": "hex 0.4.3", + "target": "hex" + }, + { + "id": "ordered-stream 0.2.0", + "target": "ordered_stream" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "tracing 0.1.44", + "target": "tracing" + }, + { + "id": "uuid 1.24.0", + "target": "uuid" + }, + { + "id": "winnow 1.0.4", + "target": "winnow" + }, + { + "id": "zbus_names 4.3.4", + "target": "zbus_names" + }, + { + "id": "zvariant 5.13.1", + "target": "zvariant" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "libc 0.2.189", + "target": "libc" + }, + { + "id": "rustix 1.1.4", + "target": "rustix" + } + ], + "cfg(windows)": [ + { + "id": "uds_windows 1.2.1", + "target": "uds_windows" + }, + { + "id": "windows-sys 0.61.2", + "target": "windows_sys" + } + ] + } + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "async-trait 0.1.91", + "target": "async_trait" + }, + { + "id": "serde_repr 0.1.21", + "target": "serde_repr" + }, + { + "id": "zbus_macros 5.18.0", + "target": "zbus_macros" + } + ], + "selects": { + "cfg(unix)": [ + { + "id": "async-recursion 1.1.1", + "target": "async_recursion" + } + ], + "cfg(windows)": [ + { + "id": "async-recursion 1.1.1", + "target": "async_recursion" + } + ] + } + }, + "version": "5.18.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "zbus_macros 5.18.0": { + "name": "zbus_macros", + "version": "5.18.0", + "package_url": "https://github.com/z-galaxy/zbus/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zbus_macros/5.18.0/download", + "sha256": "fe96480bed92df2b442a1a30df364e12d08eed03aeb061f2b8dc6afb2be91119" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "zbus_macros", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zbus_macros", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro-crate 3.5.0", + "target": "proc_macro_crate" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + }, + { + "id": "zbus_names 4.3.4", + "target": "zbus_names" + }, + { + "id": "zvariant 5.13.1", + "target": "zvariant" + }, + { + "id": "zvariant_utils 3.5.0", + "target": "zvariant_utils" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "5.18.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "zbus_names 4.3.4": { + "name": "zbus_names", + "version": "4.3.4", + "package_url": "https://github.com/z-galaxy/zbus/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zbus_names/4.3.4/download", + "sha256": "d8bf88b4a3ff53e883001e0e0115b297a9d53c31b9c1edd2bfdd853e3428624e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zbus_names", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zbus_names", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "winnow 1.0.4", + "target": "winnow" + }, + { + "id": "zvariant 5.13.1", + "target": "zvariant" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "4.3.4" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "zerocopy 0.8.55": { + "name": "zerocopy", + "version": "0.8.55", + "package_url": "https://github.com/google/zerocopy", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zerocopy/0.8.55/download", + "sha256": "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zerocopy", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zerocopy", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "simd" + ], + "selects": { + "aarch64-apple-darwin": [ + "derive", + "zerocopy-derive" + ], + "x86_64-apple-darwin": [ + "derive", + "zerocopy-derive" + ] + } + }, + "deps": { + "common": [ + { + "id": "zerocopy 0.8.55", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [], + "selects": { + "aarch64-apple-darwin": [ + { + "id": "zerocopy-derive 0.8.55", + "target": "zerocopy_derive" + } + ], + "cfg(any())": [ + { + "id": "zerocopy-derive 0.8.55", + "target": "zerocopy_derive" + } + ], + "x86_64-apple-darwin": [ + { + "id": "zerocopy-derive 0.8.55", + "target": "zerocopy_derive" + } + ] + } + }, + "version": "0.8.55" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "BSD-2-Clause OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "BSD-2-Clause", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "zerocopy-derive 0.8.55": { + "name": "zerocopy-derive", + "version": "0.8.55", + "package_url": "https://github.com/google/zerocopy", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zerocopy-derive/0.8.55/download", + "sha256": "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "zerocopy_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zerocopy_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.8.55" + }, + "license": "BSD-2-Clause OR Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "BSD-2-Clause", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "zerofrom 0.1.8": { + "name": "zerofrom", + "version": "0.1.8", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zerofrom/0.1.8/download", + "sha256": "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zerofrom", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zerofrom", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "derive" + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "zerofrom-derive 0.1.7", + "target": "zerofrom_derive" + } + ], + "selects": {} + }, + "version": "0.1.8" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "zerofrom-derive 0.1.7": { + "name": "zerofrom-derive", + "version": "0.1.7", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zerofrom-derive/0.1.7/download", + "sha256": "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "zerofrom_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zerofrom_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + }, + { + "id": "synstructure 0.13.2", + "target": "synstructure" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.1.7" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "zeroize 1.9.0": { + "name": "zeroize", + "version": "1.9.0", + "package_url": "https://github.com/RustCrypto/utils", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zeroize/1.9.0/download", + "sha256": "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zeroize", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zeroize", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "default", + "zeroize_derive" + ], + "selects": {} + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "zeroize_derive 1.5.0", + "target": "zeroize_derive" + } + ], + "selects": {} + }, + "version": "1.9.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "zeroize_derive 1.5.0": { + "name": "zeroize_derive", + "version": "1.5.0", + "package_url": "https://github.com/RustCrypto/utils", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zeroize_derive/1.5.0/download", + "sha256": "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "zeroize_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zeroize_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "1.5.0" + }, + "license": "Apache-2.0 OR MIT", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, + "zerotrie 0.2.4": { + "name": "zerotrie", + "version": "0.2.4", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zerotrie/0.2.4/download", + "sha256": "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zerotrie", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zerotrie", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "yoke", + "zerofrom" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "yoke 0.8.3", + "target": "yoke" + }, + { + "id": "zerofrom 0.1.8", + "target": "zerofrom" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "displaydoc 0.2.6", + "target": "displaydoc" + } + ], + "selects": {} + }, + "version": "0.2.4" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "zerovec 0.11.6": { + "name": "zerovec", + "version": "0.11.6", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zerovec/0.11.6/download", + "sha256": "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zerovec", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zerovec", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "alloc", + "derive", + "yoke" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "yoke 0.8.3", + "target": "yoke" + }, + { + "id": "zerofrom 0.1.8", + "target": "zerofrom" + } + ], + "selects": {} + }, + "edition": "2021", + "proc_macro_deps": { + "common": [ + { + "id": "zerovec-derive 0.11.3", + "target": "zerovec_derive" + } + ], + "selects": {} + }, + "version": "0.11.6" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "zerovec-derive 0.11.3": { + "name": "zerovec-derive", + "version": "0.11.3", + "package_url": "https://github.com/unicode-org/icu4x", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zerovec-derive/0.11.3/download", + "sha256": "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "zerovec_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zerovec_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.11.3" + }, + "license": "Unicode-3.0", + "license_ids": [ + "Unicode-3.0" + ], + "license_file": "LICENSE" + }, + "zmij 1.0.23": { + "name": "zmij", + "version": "1.0.23", + "package_url": "https://github.com/dtolnay/zmij", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zmij/1.0.23/download", + "sha256": "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zmij", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zmij", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "zmij 1.0.23", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.23" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE-MIT" + }, + "zune-core 0.5.1": { + "name": "zune-core", + "version": "0.5.1", + "package_url": "https://github.com/etemesi254/zune-image", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zune-core/0.5.1/download", + "sha256": "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zune_core", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zune_core", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.1" + }, + "license": "MIT OR Apache-2.0 OR Zlib", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": "LICENSE-APACHE" + }, + "zune-jpeg 0.5.15": { + "name": "zune-jpeg", + "version": "0.5.15", + "package_url": "https://github.com/etemesi254/zune-image/tree/dev/crates/zune-jpeg", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zune-jpeg/0.5.15/download", + "sha256": "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zune_jpeg", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zune_jpeg", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "neon", + "std", + "x86" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "zune-core 0.5.1", + "target": "zune_core" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.5.15" + }, + "license": "MIT OR Apache-2.0 OR Zlib", + "license_ids": [ + "Apache-2.0", + "MIT", + "Zlib" + ], + "license_file": "LICENSE-APACHE" + }, + "zvariant 5.13.1": { + "name": "zvariant", + "version": "5.13.1", + "package_url": "https://github.com/z-galaxy/zbus/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zvariant/5.13.1/download", + "sha256": "bee2a0bcd2a907786a456fff45aaaaf54c9ba5f50b71ae9ec1a4edd200c94911" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zvariant", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zvariant", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "enumflags2" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "endi 1.1.1", + "target": "endi" + }, + { + "id": "enumflags2 0.7.12", + "target": "enumflags2" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "winnow 1.0.4", + "target": "winnow" + }, + { + "id": "zvariant_utils 3.5.0", + "target": "zvariant_utils" + } + ], + "selects": {} + }, + "edition": "2024", + "proc_macro_deps": { + "common": [ + { + "id": "zvariant_derive 5.13.1", + "target": "zvariant_derive" + } + ], + "selects": {} + }, + "version": "5.13.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "zvariant_derive 5.13.1": { + "name": "zvariant_derive", + "version": "5.13.1", + "package_url": "https://github.com/z-galaxy/zbus/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zvariant_derive/5.13.1/download", + "sha256": "38a708216a18780796770bfe3f4739c7c83a3e8f789b755534bbbc06e4e23e12" + } + }, + "targets": [ + { + "ProcMacro": { + "crate_name": "zvariant_derive", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zvariant_derive", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro-crate 3.5.0", + "target": "proc_macro_crate" + }, + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "syn 2.0.119", + "target": "syn" + }, + { + "id": "zvariant_utils 3.5.0", + "target": "zvariant_utils" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "5.13.1" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + }, + "zvariant_utils 3.5.0": { + "name": "zvariant_utils", + "version": "3.5.0", + "package_url": "https://github.com/z-galaxy/zbus/", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/zvariant_utils/3.5.0/download", + "sha256": "90cb9383f9b45290407a1258b202d3f8f01db719eb60b4e4055c6375af4fc7c7" + } + }, + "targets": [ + { + "Library": { + "crate_name": "zvariant_utils", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "zvariant_utils", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.107", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.47", + "target": "quote" + }, + { + "id": "serde 1.0.229", + "target": "serde" + }, + { + "id": "syn 2.0.119", + "target": "syn" + }, + { + "id": "winnow 1.0.4", + "target": "winnow" + } + ], + "selects": {} + }, + "edition": "2024", + "version": "3.5.0" + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": "LICENSE" + } + }, + "binary_crates": [], + "workspace_members": { + "brush-builtins 0.2.0": "crates/vendor/brush-builtins", + "brush-core 0.5.0": "crates/vendor/brush-core", + "jaq 2.3.0": "crates/vendor/jaq", + "pi-ast 17.1.5": "crates/pi-ast", + "pi-iso 17.1.5": "crates/pi-iso", + "pi-natives 17.1.5": "crates/pi-natives", + "pi-shell 17.1.5": "crates/pi-shell", + "pi-uutils-ctx 0.1.0": "crates/pi-uutils-ctx", + "pi-walker 17.1.5": "crates/pi-walker", + "pi_uu_diff 0.8.0": "crates/pi-uu-diff", + "pi_uu_grep 0.8.0": "crates/pi-uu-grep", + "uu_b2sum 0.8.0": "crates/vendor/uu-b2sum", + "uu_base32 0.8.0": "crates/vendor/uu-base32", + "uu_base64 0.8.0": "crates/vendor/uu-base64", + "uu_basename 0.8.0": "crates/vendor/uu-basename", + "uu_cat 0.8.0": "crates/vendor/uu-cat", + "uu_checksum_common 0.8.0": "crates/vendor/uu-checksum-common", + "uu_comm 0.8.0": "crates/vendor/uu-comm", + "uu_cut 0.8.0": "crates/vendor/uu-cut", + "uu_date 0.8.0": "crates/vendor/uu-date", + "uu_dirname 0.8.0": "crates/vendor/uu-dirname", + "uu_find 0.8.0": "crates/vendor/uu-find", + "uu_head 0.8.0": "crates/vendor/uu-head", + "uu_hostname 0.8.0": "crates/vendor/uu-hostname", + "uu_ln 0.8.0": "crates/vendor/uu-ln", + "uu_ls 0.8.0": "crates/vendor/uu-ls", + "uu_md5sum 0.8.0": "crates/vendor/uu-md5sum", + "uu_mkdir 0.8.0": "crates/vendor/uu-mkdir", + "uu_mktemp 0.8.0": "crates/vendor/uu-mktemp", + "uu_mv 0.8.0": "crates/vendor/uu-mv", + "uu_nproc 0.8.0": "crates/vendor/uu-nproc", + "uu_paste 0.8.0": "crates/vendor/uu-paste", + "uu_printenv 0.8.0": "crates/vendor/uu-printenv", + "uu_readlink 0.8.0": "crates/vendor/uu-readlink", + "uu_realpath 0.8.0": "crates/vendor/uu-realpath", + "uu_rm 0.8.0": "crates/vendor/uu-rm", + "uu_sed 0.1.1": "crates/vendor/uu-sed", + "uu_seq 0.8.0": "crates/vendor/uu-seq", + "uu_sha1sum 0.8.0": "crates/vendor/uu-sha1sum", + "uu_sha224sum 0.8.0": "crates/vendor/uu-sha224sum", + "uu_sha256sum 0.8.0": "crates/vendor/uu-sha256sum", + "uu_sha384sum 0.8.0": "crates/vendor/uu-sha384sum", + "uu_sha512sum 0.8.0": "crates/vendor/uu-sha512sum", + "uu_sort 0.8.0": "crates/vendor/uu-sort", + "uu_stat 0.8.0": "crates/vendor/uu-stat", + "uu_tac 0.8.0": "crates/vendor/uu-tac", + "uu_tail 0.8.0": "crates/vendor/uu-tail", + "uu_tee 0.8.0": "crates/vendor/uu-tee", + "uu_touch 0.8.0": "crates/vendor/uu-touch", + "uu_tr 0.8.0": "crates/vendor/uu-tr", + "uu_truncate 0.8.0": "crates/vendor/uu-truncate", + "uu_uname 0.8.0": "crates/vendor/uu-uname", + "uu_uniq 0.8.0": "crates/vendor/uu-uniq", + "uu_wc 0.8.0": "crates/vendor/uu-wc", + "uu_whoami 0.8.0": "crates/vendor/uu-whoami", + "uu_xargs 0.8.0": "crates/vendor/uu-xargs", + "uu_yes 0.8.0": "crates/vendor/uu-yes" + }, + "conditions": { + "aarch64-apple-darwin": [ + "aarch64-apple-darwin" + ], + "aarch64-linux-android": [], + "aarch64-pc-windows-gnullvm": [], + "aarch64-unknown-linux-gnu": [ + "aarch64-unknown-linux-gnu" + ], + "aarch64-unknown-linux-musl": [ + "aarch64-unknown-linux-musl" + ], + "cfg(all(all(target_arch = \"aarch64\", target_endian = \"little\"), target_os = \"windows\"))": [], + "cfg(all(all(target_arch = \"aarch64\", target_endian = \"little\"), target_vendor = \"apple\", any(target_os = \"ios\", target_os = \"macos\", target_os = \"tvos\", target_os = \"visionos\", target_os = \"watchos\")))": [ + "aarch64-apple-darwin" + ], + "cfg(all(any(all(target_arch = \"aarch64\", target_endian = \"little\"), all(target_arch = \"arm\", target_endian = \"little\")), any(target_os = \"android\", target_os = \"linux\")))": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl" + ], + "cfg(all(any(target_arch = \"x86_64\", target_arch = \"arm64ec\"), target_env = \"msvc\", not(windows_raw_dylib)))": [ + "x86_64-pc-windows-msvc" + ], + "cfg(all(any(target_os = \"android\", target_os = \"linux\"), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_endian = \"little\", target_arch = \"s390x\"), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))": [], + "cfg(all(any(target_os = \"linux\", target_os = \"android\"), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_endian = \"little\", any(target_arch = \"s390x\", target_arch = \"powerpc\")), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc\"), all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))": [], + "cfg(all(any(target_os = \"linux\", target_os = \"android\"), not(any(all(target_os = \"linux\", target_env = \"\"), getrandom_backend = \"custom\", getrandom_backend = \"linux_raw\", getrandom_backend = \"rdrand\", getrandom_backend = \"rndr\"))))": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(all(not(curve25519_dalek_backend = \"fiat\"), not(curve25519_dalek_backend = \"serial\"), target_arch = \"x86_64\"))": [ + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_endian = \"little\", any(target_arch = \"s390x\", target_arch = \"powerpc\")), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc\"), all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"))))": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_endian = \"little\", target_arch = \"s390x\"), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"))))": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_endian = \"little\", any(target_arch = \"s390x\", target_arch = \"powerpc\")), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc\"), all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))": [ + "aarch64-apple-darwin", + "x86_64-apple-darwin" + ], + "cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_endian = \"little\", target_arch = \"s390x\"), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), all(rustix_use_experimental_asm, target_arch = \"mips\"), all(rustix_use_experimental_asm, target_arch = \"mips32r6\"), all(rustix_use_experimental_asm, target_arch = \"mips64\"), all(rustix_use_experimental_asm, target_arch = \"mips64r6\"), target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\")))))))": [ + "aarch64-apple-darwin", + "x86_64-apple-darwin" + ], + "cfg(all(target_arch = \"aarch64\", target_env = \"msvc\", not(windows_raw_dylib)))": [], + "cfg(all(target_arch = \"aarch64\", target_os = \"android\"))": [], + "cfg(all(target_arch = \"aarch64\", target_os = \"linux\"))": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl" + ], + "cfg(all(target_arch = \"aarch64\", target_vendor = \"apple\"))": [ + "aarch64-apple-darwin" + ], + "cfg(all(target_arch = \"loongarch64\", target_os = \"linux\"))": [], + "cfg(all(target_arch = \"wasm32\", target_os = \"unknown\"))": [], + "cfg(all(target_arch = \"wasm32\", target_os = \"wasi\", target_env = \"p2\"))": [], + "cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))": [], + "cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(windows_raw_dylib)))": [], + "cfg(all(target_arch = \"x86\", target_env = \"msvc\", not(windows_raw_dylib)))": [], + "cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))": [ + "x86_64-unknown-linux-gnu" + ], + "cfg(all(target_arch = \"x86_64\", target_env = \"msvc\", not(windows_raw_dylib)))": [ + "x86_64-pc-windows-msvc" + ], + "cfg(all(target_family = \"wasm\", target_os = \"unknown\"))": [], + "cfg(all(target_os = \"linux\", not(target_env = \"ohos\")))": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(all(target_os = \"uefi\", getrandom_backend = \"efi_rng\"))": [], + "cfg(all(unix, not(any(target_os = \"macos\", target_os = \"android\", target_os = \"emscripten\"))))": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(all(unix, not(target_os = \"macos\")))": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any())": [], + "cfg(any(target_arch = \"aarch64\", target_arch = \"x86\", target_arch = \"x86_64\"))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(target_arch = \"aarch64\", target_arch = \"x86_64\", target_arch = \"x86\"))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(target_arch = \"x86\", target_arch = \"x86_64\"))": [ + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(target_arch = \"x86_64\", target_arch = \"x86\"))": [ + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(target_os = \"android\", target_os = \"linux\"))": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(target_os = \"android\", target_os = \"linux\", target_os = \"macos\", target_os = \"hurd\"))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"hurd\", target_os = \"illumos\", target_os = \"cygwin\", all(target_os = \"horizon\", target_arch = \"arm\")))": [], + "cfg(any(target_os = \"freebsd\", target_os = \"dragonfly\"))": [], + "cfg(any(target_os = \"freebsd\", target_os = \"netbsd\"))": [], + "cfg(any(target_os = \"freebsd\", target_os = \"openbsd\"))": [], + "cfg(any(target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\", target_os = \"dragonflybsd\", target_os = \"ios\"))": [], + "cfg(any(target_os = \"haiku\", target_os = \"redox\", target_os = \"nto\", target_os = \"aix\"))": [], + "cfg(any(target_os = \"ios\", target_os = \"visionos\", target_os = \"watchos\", target_os = \"tvos\"))": [], + "cfg(any(target_os = \"linux\", target_os = \"android\"))": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(target_os = \"macos\", target_os = \"openbsd\", target_os = \"vita\", target_os = \"emscripten\"))": [ + "aarch64-apple-darwin", + "x86_64-apple-darwin" + ], + "cfg(any(target_os = \"macos\", target_os = \"windows\"))": [ + "aarch64-apple-darwin", + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc" + ], + "cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(unix, target_os = \"hermit\", target_os = \"wasi\"))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(unix, target_os = \"redox\"))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(unix, target_os = \"wasi\"))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(unix, windows))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(any(windows, target_os = \"linux\"))": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(curve25519_dalek_backend = \"fiat\")": [], + "cfg(not(all(target_arch = \"arm\", target_os = \"none\")))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(not(any(target_os = \"android\", target_os = \"linux\")))": [ + "aarch64-apple-darwin", + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc" + ], + "cfg(not(target_has_atomic = \"ptr\"))": [], + "cfg(not(target_os = \"wasi\"))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(not(target_os = \"windows\"))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(not(windows))": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(target_arch = \"aarch64\")": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl" + ], + "cfg(target_arch = \"spirv\")": [], + "cfg(target_arch = \"x86\")": [], + "cfg(target_arch = \"x86_64\")": [ + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(target_family = \"wasm\")": [], + "cfg(target_os = \"android\")": [], + "cfg(target_os = \"freebsd\")": [], + "cfg(target_os = \"haiku\")": [], + "cfg(target_os = \"hermit\")": [], + "cfg(target_os = \"linux\")": [ + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(target_os = \"macos\")": [ + "aarch64-apple-darwin", + "x86_64-apple-darwin" + ], + "cfg(target_os = \"netbsd\")": [], + "cfg(target_os = \"redox\")": [], + "cfg(target_os = \"solaris\")": [], + "cfg(target_os = \"vxworks\")": [], + "cfg(target_os = \"wasi\")": [], + "cfg(target_os = \"windows\")": [ + "x86_64-pc-windows-msvc" + ], + "cfg(target_vendor = \"apple\")": [ + "aarch64-apple-darwin", + "x86_64-apple-darwin" + ], + "cfg(unix)": [ + "aarch64-apple-darwin", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ], + "cfg(windows)": [ + "x86_64-pc-windows-msvc" + ], + "cfg(windows_raw_dylib)": [], + "i686-pc-windows-gnu": [], + "i686-pc-windows-gnullvm": [], + "wasm32-unknown-unknown": [], + "x86_64-apple-darwin": [ + "x86_64-apple-darwin" + ], + "x86_64-pc-windows-gnu": [], + "x86_64-pc-windows-gnullvm": [], + "x86_64-pc-windows-msvc": [ + "x86_64-pc-windows-msvc" + ], + "x86_64-unknown-linux-gnu": [ + "x86_64-unknown-linux-gnu" + ], + "x86_64-unknown-linux-musl": [ + "x86_64-unknown-linux-musl" + ] + }, + "direct_deps": [ + "ansi-width 0.1.0", + "anyhow 1.0.104", + "arboard 3.6.1", + "argmax 0.3.1", + "ast-grep-core 0.39.9", + "async-recursion 1.1.1", + "async-trait 0.1.91", + "audiopus_sys 0.2.2", + "base64 0.22.1", + "base64-simd 0.8.0", + "bigdecimal 0.4.10", + "binary-heap-plus 0.5.0", + "bon 3.9.3", + "brush-parser 0.3.0", + "brush-parser 0.4.0", + "bstr 1.13.0", + "bytecount 0.6.9", + "bytes 1.12.1", + "cached 0.59.0", + "cfg-if 1.0.4", + "check_elevation 0.2.7", + "chrono 0.4.45", + "clap 4.6.4", + "clipboard-win 5.4.1", + "codesnake 0.2.1", + "color-print 0.3.7", + "command-fds 0.3.3", + "compare 0.1.0", + "core-graphics 0.25.0", + "dashmap 6.2.1", + "dns-lookup 3.0.1", + "enigo 0.6.1", + "faccess 0.2.4", + "fancy-regex 0.17.0", + "fancy-regex 0.18.0", + "filetime 0.2.29", + "flume 0.11.1", + "foldhash 0.2.0", + "fontdue 0.9.3", + "fs_extra 1.3.0", + "futures 0.3.33", + "getrandom 0.4.3", + "glob 0.3.4", + "globset 0.4.19", + "grep-cli 0.1.12", + "grep-matcher 0.1.9", + "grep-pcre2 0.1.10", + "grep-printer 0.3.1", + "grep-regex 0.1.14", + "grep-searcher 0.1.17", + "hex 0.4.3", + "hifijson 0.2.3", + "hostname 0.4.2", + "html-to-markdown-rs 2.30.0", + "icy_sixel 0.5.0", + "ignore 0.4.31", + "image 0.25.10", + "indicatif 0.18.6", + "inferno 0.12.8", + "inherent 1.0.14", + "itertools 0.14.0", + "jaq-core 2.2.1", + "jaq-json 1.1.3", + "jaq-std 2.1.2", + "jiff 0.2.35", + "libc 0.2.189", + "lscolors 0.21.0", + "maudio 0.1.6", + "memchr 2.8.3", + "memmap2 0.9.11", + "napi 3.11.0", + "napi-build 2.3.2", + "napi-derive 3.6.0", + "nix 0.29.0", + "nix 0.31.3", + "nom 8.0.0", + "normalize-path 0.2.1", + "notify 8.2.0", + "num-bigint 0.4.8", + "num-traits 0.2.19", + "onig 6.5.3", + "opus 0.3.1", + "os_display 0.1.4", + "os_pipe 1.2.3", + "parking_lot 0.12.5", + "parse_datetime 0.14.0", + "phf 0.13.1", + "platform-info 2.1.0", + "png 0.18.1", + "portable-pty 0.9.0", + "procfs 0.18.0", + "rand 0.10.2", + "rayon 1.12.0", + "regex 1.13.1", + "rlimit 0.11.0", + "rpds 1.2.1", + "rustc-hash 2.1.3", + "rustix 1.1.4", + "self_cell 1.3.0", + "serde 1.0.229", + "serde_json 1.0.151", + "similar 3.1.1", + "smallvec 1.15.2", + "strum 0.28.0", + "strum_macros 0.28.0", + "syntect 5.3.0", + "tempfile 3.27.0", + "terminfo 0.9.0", + "thiserror 2.0.19", + "tiktoken-rs 0.11.0", + "tokio 1.53.1", + "tokio-util 0.7.19", + "toml 1.1.3+spec-1.1.0", + "tracing 0.1.44", + "tree-sitter 0.25.10", + "tree-sitter-astro-next 0.1.1", + "tree-sitter-bash 0.25.1", + "tree-sitter-c 0.24.2", + "tree-sitter-c-sharp 0.23.5", + "tree-sitter-clojure 0.1.0", + "tree-sitter-cmake 0.7.4", + "tree-sitter-cpp 0.23.4", + "tree-sitter-css 0.25.0", + "tree-sitter-dart 0.2.0", + "tree-sitter-diff 0.1.0", + "tree-sitter-dockerfile-updated 0.2.0", + "tree-sitter-elisp 1.6.1", + "tree-sitter-elixir 0.3.5", + "tree-sitter-erlang 0.16.0", + "tree-sitter-fortran 0.6.0", + "tree-sitter-go 0.25.0", + "tree-sitter-graphql 0.1.0", + "tree-sitter-haskell 0.23.1", + "tree-sitter-hcl 1.1.0", + "tree-sitter-html 0.23.2", + "tree-sitter-ini 1.4.0", + "tree-sitter-java 0.23.5", + "tree-sitter-javascript 0.25.0", + "tree-sitter-json 0.24.8", + "tree-sitter-julia 0.23.1", + "tree-sitter-just 0.2.0", + "tree-sitter-kotlin-sg 0.4.1", + "tree-sitter-lua 0.5.0", + "tree-sitter-make 1.1.1", + "tree-sitter-md 0.5.3", + "tree-sitter-nix 0.3.0", + "tree-sitter-objc 3.0.2", + "tree-sitter-ocaml 0.24.2", + "tree-sitter-odin 1.3.0", + "tree-sitter-php 0.24.2", + "tree-sitter-powershell 0.26.4", + "tree-sitter-proto 0.4.0", + "tree-sitter-python 0.25.0", + "tree-sitter-r 1.3.0", + "tree-sitter-regex 0.25.0", + "tree-sitter-ruby 0.23.1", + "tree-sitter-rust 0.24.2", + "tree-sitter-scala 0.26.0", + "tree-sitter-sequel 0.3.11", + "tree-sitter-solidity 1.2.13", + "tree-sitter-starlark 1.3.0", + "tree-sitter-svelte-next 0.1.1", + "tree-sitter-swift 0.7.3", + "tree-sitter-tlaplus 1.5.0", + "tree-sitter-toml-ng 0.7.0", + "tree-sitter-typescript 0.23.2", + "tree-sitter-verilog 1.0.3", + "tree-sitter-vue-next 0.1.0", + "tree-sitter-xml 0.7.0", + "tree-sitter-yaml 0.7.2", + "tree-sitter-zig 1.1.2", + "unicode-segmentation 1.13.3", + "unicode-width 0.1.14", + "unicode-width 0.2.2", + "uucore 0.0.30", + "uucore 0.8.0", + "uucore 0.9.0", + "uuid 1.24.0", + "uutils_term_grid 0.8.0", + "uzers 0.12.2", + "webrtc 0.17.2", + "whoami 2.1.2", + "windows-sys 0.59.0", + "windows-sys 0.61.2", + "winreg 0.56.0", + "x11rb 0.13.2", + "xcap 0.9.6", + "xkeysym 0.2.1", + "xxhash-rust 0.8.18", + "yansi 1.0.1" + ], + "direct_dev_deps": [ + "pretty_assertions 1.4.1", + "rstest 0.26.1" + ], + "unused_patches": [] +} diff --git a/Cargo.lock b/Cargo.lock index 46f8020cf..bb281631b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -502,8 +502,6 @@ dependencies = [ "cexpr", "clang-sys", "itertools 0.13.0", - "log", - "prettyplease", "proc-macro2", "quote", "regex", @@ -654,6 +652,7 @@ dependencies = [ name = "brush-builtins" version = "0.2.0" dependencies = [ + "anyhow", "brush-core", "brush-parser 0.4.0", "cfg-if", @@ -663,6 +662,7 @@ dependencies = [ "futures", "itertools 0.14.0", "nix 0.31.3", + "pretty_assertions", "procfs", "rlimit", "strum", @@ -677,6 +677,7 @@ dependencies = [ name = "brush-core" version = "0.5.0" dependencies = [ + "anyhow", "async-recursion", "async-trait", "bon", @@ -697,10 +698,13 @@ dependencies = [ "libc", "nix 0.31.3", "normalize-path", + "pretty_assertions", "rand 0.10.2", "rpds", + "serde", "strum", "strum_macros", + "tempfile", "terminfo", "thiserror 2.0.19", "tokio", @@ -739,10 +743,12 @@ dependencies = [ "indenter", "insta", "peg", + "serde", "thiserror 2.0.19", "tracing", "utf8-chars", "uuid", + "winnow 1.0.4", ] [[package]] @@ -1029,6 +1035,7 @@ dependencies = [ "iana-time-zone", "js-sys", "num-traits", + "serde", "wasm-bindgen", "windows-link 0.2.1", ] @@ -1638,6 +1645,12 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + [[package]] name = "digest" version = "0.10.7" @@ -3648,7 +3661,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f00ae1969d0a389937161b834623e5cba2d8449752a0970d71382cf9a905bb35" dependencies = [ - "bindgen", "cc", ] @@ -5183,6 +5195,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +[[package]] +name = "pretty_assertions" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" +dependencies = [ + "diff", + "yansi", +] + [[package]] name = "prettyplease" version = "0.2.37" @@ -5615,6 +5637,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e025feb26210bc196b908e72deb063b1b4000754304341cbc168a1e72c857ebc" dependencies = [ "archery", + "serde", "smallvec", ] diff --git a/Cargo.toml b/Cargo.toml index a3c7b9946..8eee3210d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,5 @@ [workspace] members = ["crates/pi-*", "crates/vendor/*"] -exclude = ["crates/vendor/brush-core", "crates/vendor/brush-builtins"] resolver = "3" [workspace.package] @@ -242,7 +241,9 @@ xxhash-rust = { version = "0.8", features = ["xxh64"] } # Audio & Realtime Media # ────────────────────────────────────────────────────────────────────────────── audiopus_sys = { version = "0.2.2", features = ["static"] } -maudio = { version = "0.1.6", features = ["generate-bindings"] } +# Pregenerated bindings (crate default): keeps bindgen/libclang out of the +# build graph so Bazel actions stay hermetic. +maudio = "0.1.6" opus = "0.3.1" webrtc = "0.17.2" diff --git a/MODULE.bazel b/MODULE.bazel new file mode 100644 index 000000000..c319aec21 --- /dev/null +++ b/MODULE.bazel @@ -0,0 +1,187 @@ +"""oh-my-pi — Bazel build for the native (Rust) side of the workspace. + +Builds the pi_natives NAPI cdylib for every shipped target with hermetic +toolchains, replacing cargo-zigbuild/cargo-xwin/sccache plus the hand-rolled +CI caches with Bazel's content-addressed action cache (see infra/bazel-remote.yaml). + +Layout: + //:natives- release-grade renamed .node artifacts (root BUILD.bazel) + //crates/... first-party crate targets + //bazel/... platforms, ISA-variant constraints, toolchains, rules + @crates//... third-party crates from Cargo.lock via crate_universe + +The cargo workspace stays authoritative for local iteration (rust-analyzer, +`cargo nextest`, napi typedef regeneration); Bazel is the artifact and CI +pipeline. Keep Cargo.toml/Cargo.lock and this module in sync: after editing +either, run `bun run bazel:repin` (CARGO_BAZEL_REPIN=1) to refresh Cargo.Bazel.lock. +""" + +module(name = "oh-my-pi") + +bazel_dep(name = "bazel_skylib", version = "1.8.2") +bazel_dep(name = "platforms", version = "1.1.0") +bazel_dep(name = "rules_rust", version = "0.71.3") +bazel_dep(name = "hermetic_cc_toolchain", version = "4.2.0") + +# --- Rust toolchains ---------------------------------------------------------- +rust = use_extension("@rules_rust//rust:extensions.bzl", "rust") +rust.toolchain( + edition = "2024", + versions = ["nightly/2026-04-29"], + extra_target_triples = [ + "x86_64-unknown-linux-gnu", + "aarch64-unknown-linux-gnu", + "x86_64-unknown-linux-musl", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "aarch64-apple-darwin", + "x86_64-pc-windows-msvc", + ], +) +use_repo( + rust, + "rust_toolchains", + # musl rustc toolchains, re-registered in //bazel/toolchains with an + # explicit @zig_sdk//libc:musl constraint: rules_rust's generated gnu and + # musl toolchains share (os, cpu) constraints, so without the extra + # constraint whichever registers first would win for both libcs. + "rust_linux_x86_64__x86_64-unknown-linux-musl__nightly_tools", + "rust_linux_x86_64__aarch64-unknown-linux-musl__nightly_tools", + "rust_macos_aarch64__x86_64-unknown-linux-musl__nightly_tools", + "rust_macos_aarch64__aarch64-unknown-linux-musl__nightly_tools", + "rust_linux_aarch64__aarch64-unknown-linux-musl__nightly_tools", + "rust_linux_aarch64__x86_64-unknown-linux-musl__nightly_tools", +) + +# Order matters: repo-local toolchains (musl disambiguation wrappers, msvc +# cross cc toolchain) MUST resolve before the generated @rust_toolchains set. +register_toolchains("//bazel/toolchains:all") +register_toolchains("@rust_toolchains//:all") + +# --- C/C++ toolchains --------------------------------------------------------- +# zig cc provides hermetic linux-gnu (pinned glibc 2.17 portability floor, same +# floor cargo-zigbuild used) and linux-musl cross toolchains, executable from +# both linux-x64 CI pods and darwin dev hosts. darwin targets use the host +# Xcode toolchain (Apple frameworks are not redistributable); win32-msvc uses +# the hermetic clang-cl+xwin toolchain in //bazel/toolchains/msvc. +zig = use_extension("@hermetic_cc_toolchain//toolchain:ext.bzl", "toolchains") +use_repo(zig, "zig_sdk") +register_toolchains( + "@zig_sdk//libc_aware/toolchain:linux_amd64_gnu.2.17", + "@zig_sdk//libc_aware/toolchain:linux_arm64_gnu.2.17", + "@zig_sdk//libc_aware/toolchain:linux_amd64_musl", + "@zig_sdk//libc_aware/toolchain:linux_arm64_musl", +) + +# --- Third-party crates (crate_universe over the cargo workspace) -------------- +crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate") +crate.render_config( + # rules_rust's builtin platform settings have no musl triples; ours in + # //bazel/triples add the @zig_sdk//libc axis. + platforms_template = "@@//bazel/triples:{triple}", +) +crate.from_cargo( + name = "crates", + cargo_lockfile = "//:Cargo.lock", + lockfile = "//:Cargo.Bazel.lock", + # Exactly the shipped addon triples: crate BUILD files get + # target_compatible_with selects over this set (defaults omit darwin-x64 + # and musl), and features/deps resolve per-triple from Cargo.lock. + supported_platform_triples = [ + "x86_64-unknown-linux-gnu", + "aarch64-unknown-linux-gnu", + "x86_64-unknown-linux-musl", + "aarch64-unknown-linux-musl", + "x86_64-apple-darwin", + "aarch64-apple-darwin", + "x86_64-pc-windows-msvc", + ], + # The root manifest covers all workspace members, including the vendored + # brush fork (members so their sources render hermetically; the + # [patch.crates-io] entries redirect brush-builtins' registry dep to them). + manifests = ["//:Cargo.toml"], +) + +# audiopus_sys builds its vendored opus via the `cmake` crate: give the build +# script a PATH that resolves cmake/make (runner image, GH runners, dev hosts) +# and the policy override its old CMakeLists needs under CMake 4.x. The cmake +# crate picks up CC/CFLAGS from the Bazel cc toolchain on its own. +crate.annotation( + crate = "audiopus_sys", + build_script_env = { + "CMAKE_POLICY_VERSION_MINIMUM": "3.5", + # msvc cross only (cmake-rs reads VAR_ before VAR; the key is + # inert for every other target): without a generator override cmake-rs + # insists on a Visual Studio generator for msvc targets, which cannot + # exist on linux/mac hosts. Ninja must be on the PATH below. + "CMAKE_GENERATOR_x86_64_pc_windows_msvc": "Ninja", + # msvc cross only: cmake's vs_link_exe insists on rc/mt tools for + # MSVC-ABI exe links (try_compile), which find_program can't locate on + # linux/mac PATH. @msvc_cc's toolchain.cmake pins compiler/linker/ + # rc/mt to the wrapper dir (self-locating via CMAKE_CURRENT_LIST_DIR). + # $${pwd} → exec root in the rules_rust runner; the canonical repo + # path must track the repo rule/name in the msvc section below. + "CMAKE_TOOLCHAIN_FILE_x86_64_pc_windows_msvc": "$${pwd}/external/+msvc_cc_repository+msvc_cc/toolchain.cmake", + # zig cc enables UBSan by default; cmake's try-compile links a test + # exe with the raw wrapper (no toolchain features), which would demand + # the UBSan runtime. Opus shipped without sanitizers under + # cargo-zigbuild too. + "CFLAGS": "-fno-sanitize=undefined", + "PATH": "/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin", + }, +) + +# Release addons must never pick up a host libpcre2 (Homebrew paths leaked into +# shipped dylibs before); always build the vendored static copy. +crate.annotation( + crate = "pcre2-sys", + build_script_env = {"PCRE2_SYS_STATIC": "1"}, +) + +# tree-sitter-just's scanner.c hard-errors when NDEBUG is set (opt-mode cc +# default). cc-rs appends env CFLAGS after its computed flags, so -UNDEBUG wins. +crate.annotation( + crate = "tree-sitter-just", + build_script_env = {"CFLAGS": "-UNDEBUG"}, +) +use_repo(crate, "crates") + + +# --- msvc cross toolchain (owned by bazel/toolchains/msvc) --------------------- +# Hermetic clang-cl + lld-link + xwin CRT/SDK toolchain for x86_64-pc-windows-msvc +# (replaces cargo-xwin). Three repos so flag iteration in cc.bzl never +# invalidates the ~2 GiB LLVM download or the ~1 GiB xwin splat: +# @llvm_msvc_tools pruned LLVM 20.1.7 release binaries for the exec host +# @xwin_sysroot MSVC CRT + Windows SDK splatted by pinned xwin 0.6.5 +# @msvc_cc wrappers + MSVC-flavored cc_toolchain (rules_cc config) +# toolchain() registrations live in //bazel/toolchains (one per exec host). +# rules_cc pin matches Bazel 9.2's own builtin dependency. +bazel_dep(name = "rules_cc", version = "0.2.17") + +llvm_msvc_tools = use_repo_rule("//bazel/toolchains/msvc:llvm.bzl", "llvm_msvc_tools_repository") + +llvm_msvc_tools(name = "llvm_msvc_tools") + +xwin_sysroot = use_repo_rule("//bazel/toolchains/msvc:sysroot.bzl", "xwin_sysroot_repository") + +xwin_sysroot(name = "xwin_sysroot") + +msvc_cc = use_repo_rule("//bazel/toolchains/msvc:cc.bzl", "msvc_cc_repository") + +msvc_cc(name = "msvc_cc") + +# blake3 assembles MASM .asm for x64 msvc targets; cc-rs resolves `ml64.exe` +# from the build-script PATH on non-windows hosts. Prepend @msvc_cc's wrapper +# dir (bin/ml64.exe → llvm-ml -m64; the dir rides into the sandbox with the +# resolved cc toolchain's all_files). ${pwd} expands to the exec root in the +# rules_rust build-script runner. The leading entry is the canonical repo path +# of @msvc_cc (`++`) — keep in sync if the rule or repo in +# this section is ever renamed. On non-msvc targets the dir simply does not +# exist and the rest of the PATH matches the audiopus_sys annotation above. +crate.annotation( + crate = "blake3", + build_script_env = { + "PATH": "$${pwd}/external/+msvc_cc_repository+msvc_cc/bin:/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin", + }, +) +# --- end msvc cross toolchain --------------------------------------------------- \ No newline at end of file diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock new file mode 100644 index 000000000..2f503bdd2 --- /dev/null +++ b/MODULE.bazel.lock @@ -0,0 +1,460 @@ +{ + "lockFileVersion": 28, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16", + "https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1", + "https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215", + "https://bcr.bazel.build/modules/abseil-cpp/20250814.1/MODULE.bazel": "51f2312901470cdab0dbdf3b88c40cd21c62a7ed58a3de45b365ddc5b11bcab2", + "https://bcr.bazel.build/modules/abseil-cpp/20250814.1/source.json": "cea3901d7e299da7320700abbaafe57a65d039f10d0d7ea601c4a66938ea4b0c", + "https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896", + "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85", + "https://bcr.bazel.build/modules/apple_support/1.21.0/MODULE.bazel": "ac1824ed5edf17dee2fdd4927ada30c9f8c3b520be1b5fd02a5da15bc10bff3e", + "https://bcr.bazel.build/modules/apple_support/1.21.1/MODULE.bazel": "5809fa3efab15d1f3c3c635af6974044bac8a4919c62238cce06acee8a8c11f1", + "https://bcr.bazel.build/modules/apple_support/1.24.1/MODULE.bazel": "f46e8ddad60aef170ee92b2f3d00ef66c147ceafea68b6877cb45bd91737f5f8", + "https://bcr.bazel.build/modules/apple_support/1.24.2/MODULE.bazel": "0e62471818affb9f0b26f128831d5c40b074d32e6dda5a0d3852847215a41ca4", + "https://bcr.bazel.build/modules/apple_support/1.24.2/source.json": "2c22c9827093250406c5568da6c54e6fdf0ef06238def3d99c71b12feb057a8d", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.23.0/MODULE.bazel": "fd1ac84bc4e97a5a0816b7fd7d4d4f6d837b0047cf4cbd81652d616af3a6591a", + "https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.33.0/MODULE.bazel": "8b8dc9d2a4c88609409c3191165bccec0e4cb044cd7a72ccbe826583303459f6", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.42.1/MODULE.bazel": "275a59b5406ff18c01739860aa70ad7ccb3cfb474579411decca11c93b951080", + "https://bcr.bazel.build/modules/bazel_features/1.50.0/MODULE.bazel": "2083ef9c7a469f520890483ccf8e0189d6e71e2117e7752e15e6554433d5ae3e", + "https://bcr.bazel.build/modules/bazel_features/1.50.0/source.json": "e0ee3debde2789ff56e4452e612d126925ba9ab64d4bde79c67f099d2902df9b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/source.json": "34a3c8bcf233b835eb74be9d628899bb32999d3e0eadef1947a0a562a2b16ffb", + "https://bcr.bazel.build/modules/buildozer/8.5.1/MODULE.bazel": "a35d9561b3fc5b18797c330793e99e3b834a473d5fbd3d7d7634aafc9bdb6f8f", + "https://bcr.bazel.build/modules/buildozer/8.5.1/source.json": "e3386e6ff4529f2442800dee47ad28d3e6487f36a1f75ae39ae56c70f0cd2fbd", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108", + "https://bcr.bazel.build/modules/googletest/1.17.0/MODULE.bazel": "dbec758171594a705933a29fcf69293d2468c49ec1f2ebca65c36f504d72df46", + "https://bcr.bazel.build/modules/googletest/1.17.0/source.json": "38e4454b25fc30f15439c0378e57909ab1fd0a443158aa35aec685da727cd713", + "https://bcr.bazel.build/modules/hermetic_cc_toolchain/4.2.0/MODULE.bazel": "368720c724c9c0afef18dcb0782ab25294275159bc6e88fa61745d63ba79aa9d", + "https://bcr.bazel.build/modules/hermetic_cc_toolchain/4.2.0/source.json": "05535cb7f04d8c92174681d62b807d0166356d5461e0f376b789214d6696c08f", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6/MODULE.bazel": "2f8d20d3b7d54143213c4dfc3d98225c42de7d666011528dc8fe91591e2e17b0", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6/source.json": "a04756d367a2126c3541682864ecec52f92cdee80a35735a3cb249ce015ca000", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/32.1/MODULE.bazel": "89cd2866a9cb07fee9ff74c41ceace11554f32e0d849de4e23ac55515cfada4d", + "https://bcr.bazel.build/modules/protobuf/33.4/MODULE.bazel": "114775b816b38b6d0ca620450d6b02550c60ceedfdc8d9a229833b34a223dc42", + "https://bcr.bazel.build/modules/protobuf/33.4/source.json": "555f8686b4c7d6b5ba731fbea13bf656b4bfd9a7ff629c1d9d3f6e1d6155de79", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34", + "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a", + "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/source.json": "2ff292be6ef3340325ce8a045ecc326e92cbfab47c7cbab4bd85d28971b97ac4", + "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a", + "https://bcr.bazel.build/modules/rules_apple/4.1.0/MODULE.bazel": "76e10fd4a48038d3fc7c5dc6e63b7063bbf5304a2e3bd42edda6ec660eebea68", + "https://bcr.bazel.build/modules/rules_apple/4.1.0/source.json": "8ee81e1708756f81b343a5eb2b2f0b953f1d25c4ab3d4a68dc02754872e80715", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.2/MODULE.bazel": "557ddc3a96858ec0d465a87c0a931054d7dcfd6583af2c7ed3baf494407fd8d0", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.0/MODULE.bazel": "b5c17f90458caae90d2ccd114c81970062946f49f355610ed89bebf954f5783c", + "https://bcr.bazel.build/modules/rules_cc/0.2.13/MODULE.bazel": "eecdd666eda6be16a8d9dc15e44b5c75133405e820f620a234acc4b1fdc5aa37", + "https://bcr.bazel.build/modules/rules_cc/0.2.14/MODULE.bazel": "353c99ed148887ee89c54a17d4100ae7e7e436593d104b668476019023b58df8", + "https://bcr.bazel.build/modules/rules_cc/0.2.17/MODULE.bazel": "1849602c86cb60da8613d2de887f9566a6d354a6df6d7009f9d04a14402f9a84", + "https://bcr.bazel.build/modules/rules_cc/0.2.17/source.json": "3832f45d145354049137c0090df04629d9c2b5493dc5c2bf46f1834040133a07", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_cc/0.2.8/MODULE.bazel": "f1df20f0bf22c28192a794f29b501ee2018fa37a3862a1a2132ae2940a23a642", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", + "https://bcr.bazel.build/modules/rules_java/9.1.0/MODULE.bazel": "ee63f27e36a3fada80342869361182f120a9819c74320e8e65b1e04ba0cd7a9d", + "https://bcr.bazel.build/modules/rules_java/9.1.0/source.json": "da589573c1dee2c9ac4a568b301269a2e8191110ff0345c1a959fa7ea6c4dfd6", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd", + "https://bcr.bazel.build/modules/rules_jvm_external/6.7/source.json": "5426f412d0a7fc6b611643376c7e4a82dec991491b9ce5cb1cfdd25fe2e92be4", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/MODULE.bazel": "002d62d9108f75bb807cd56245d45648f38275cb3a99dcd45dfb864c5d74cb96", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/source.json": "39f89066c12c24097854e8f57ab8558929f9c8d474d34b2c00ac04630ad8940e", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13", + "https://bcr.bazel.build/modules/rules_python/1.4.1/MODULE.bazel": "8991ad45bdc25018301d6b7e1d3626afc3c8af8aaf4bc04f23d0b99c938b73a6", + "https://bcr.bazel.build/modules/rules_python/1.6.0/MODULE.bazel": "7e04ad8f8d5bea40451cf80b1bd8262552aa73f841415d20db96b7241bd027d8", + "https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8", + "https://bcr.bazel.build/modules/rules_python/1.7.0/source.json": "028a084b65dcf8f4dc4f82f8778dbe65df133f234b316828a82e060d81bdce32", + "https://bcr.bazel.build/modules/rules_rust/0.71.3/MODULE.bazel": "e2390c96f77d65f00c769bf665678c5424188e9c777239cfaae2a8d2dde7b981", + "https://bcr.bazel.build/modules/rules_rust/0.71.3/source.json": "5eb5d8068571725bc893045f8137ed7937988f23d73c53ea443470e8047598ad", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca", + "https://bcr.bazel.build/modules/rules_swift/2.1.1/MODULE.bazel": "494900a80f944fc7aa61500c2073d9729dff0b764f0e89b824eb746959bc1046", + "https://bcr.bazel.build/modules/rules_swift/2.4.0/MODULE.bazel": "1639617eb1ede28d774d967a738b4a68b0accb40650beadb57c21846beab5efd", + "https://bcr.bazel.build/modules/rules_swift/3.1.2/MODULE.bazel": "72c8f5cf9d26427cee6c76c8e3853eb46ce6b0412a081b2b6db6e8ad56267400", + "https://bcr.bazel.build/modules/rules_swift/3.1.2/source.json": "e85761f3098a6faf40b8187695e3de6d97944e98abd0d8ce579cb2daf6319a66", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/MODULE.bazel": "75aab2373a4bbe2a1260b9bf2a1ebbdbf872d3bd36f80bff058dccd82e89422f", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/source.json": "5fba48bbe0ba48761f9e9f75f92876cafb5d07c0ce059cc7a8027416de94a05b", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "+Kp6j204mBZ3mxlIDDR0gBoP45BZ4jYRhRAcB8sU0qc=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedInputs": [ + "REPO_MAPPING:rules_kotlin+,bazel_tools bazel_tools" + ], + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + } + } + }, + "@@rules_python+//python/extensions:config.bzl%config": { + "general": { + "bzlTransitiveDigest": "dzD8Q2YmrP3fz8saWLHPmlwPLO91ImtTmP/c9JKTStM=", + "usagesDigest": "ZVSXMAGpD+xzVNPuvF1IoLBkty7TROO0+akMapt1pAg=", + "recordedInputs": [ + "REPO_MAPPING:rules_python+,bazel_tools bazel_tools", + "REPO_MAPPING:rules_python+,pypi__build rules_python++config+pypi__build", + "REPO_MAPPING:rules_python+,pypi__click rules_python++config+pypi__click", + "REPO_MAPPING:rules_python+,pypi__colorama rules_python++config+pypi__colorama", + "REPO_MAPPING:rules_python+,pypi__importlib_metadata rules_python++config+pypi__importlib_metadata", + "REPO_MAPPING:rules_python+,pypi__installer rules_python++config+pypi__installer", + "REPO_MAPPING:rules_python+,pypi__more_itertools rules_python++config+pypi__more_itertools", + "REPO_MAPPING:rules_python+,pypi__packaging rules_python++config+pypi__packaging", + "REPO_MAPPING:rules_python+,pypi__pep517 rules_python++config+pypi__pep517", + "REPO_MAPPING:rules_python+,pypi__pip rules_python++config+pypi__pip", + "REPO_MAPPING:rules_python+,pypi__pip_tools rules_python++config+pypi__pip_tools", + "REPO_MAPPING:rules_python+,pypi__pyproject_hooks rules_python++config+pypi__pyproject_hooks", + "REPO_MAPPING:rules_python+,pypi__setuptools rules_python++config+pypi__setuptools", + "REPO_MAPPING:rules_python+,pypi__tomli rules_python++config+pypi__tomli", + "REPO_MAPPING:rules_python+,pypi__wheel rules_python++config+pypi__wheel", + "REPO_MAPPING:rules_python+,pypi__zipp rules_python++config+pypi__zipp" + ], + "generatedRepoSpecs": { + "rules_python_internal": { + "repoRuleId": "@@rules_python+//python/private:internal_config_repo.bzl%internal_config_repo", + "attributes": { + "transition_setting_generators": {}, + "transition_settings": [] + } + }, + "pypi__build": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/e2/03/f3c8ba0a6b6e30d7d18c40faab90807c9bb5e9a1e3b2fe2008af624a9c97/build-1.2.1-py3-none-any.whl", + "sha256": "75e10f767a433d9a86e50d83f418e83efc18ede923ee5ff7df93b6cb0306c5d4", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__click": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", + "sha256": "ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__colorama": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", + "sha256": "4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__importlib_metadata": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/2d/0a/679461c511447ffaf176567d5c496d1de27cbe34a87df6677d7171b2fbd4/importlib_metadata-7.1.0-py3-none-any.whl", + "sha256": "30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__installer": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/e5/ca/1172b6638d52f2d6caa2dd262ec4c811ba59eee96d54a7701930726bce18/installer-0.7.0-py3-none-any.whl", + "sha256": "05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__more_itertools": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/50/e2/8e10e465ee3987bb7c9ab69efb91d867d93959095f4807db102d07995d94/more_itertools-10.2.0-py3-none-any.whl", + "sha256": "686b06abe565edfab151cb8fd385a05651e1fdf8f0a14191e4439283421f8684", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__packaging": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl", + "sha256": "2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__pep517": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/25/6e/ca4a5434eb0e502210f591b97537d322546e4833dcb4d470a48c375c5540/pep517-0.13.1-py3-none-any.whl", + "sha256": "31b206f67165b3536dd577c5c3f1518e8fbaf38cbc57efff8369a392feff1721", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__pip": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/8a/6a/19e9fe04fca059ccf770861c7d5721ab4c2aebc539889e97c7977528a53b/pip-24.0-py3-none-any.whl", + "sha256": "ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__pip_tools": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/0d/dc/38f4ce065e92c66f058ea7a368a9c5de4e702272b479c0992059f7693941/pip_tools-7.4.1-py3-none-any.whl", + "sha256": "4c690e5fbae2f21e87843e89c26191f0d9454f362d8acdbd695716493ec8b3a9", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__pyproject_hooks": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/ae/f3/431b9d5fe7d14af7a32340792ef43b8a714e7726f1d7b69cc4e8e7a3f1d7/pyproject_hooks-1.1.0-py3-none-any.whl", + "sha256": "7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__setuptools": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/90/99/158ad0609729111163fc1f674a5a42f2605371a4cf036d0441070e2f7455/setuptools-78.1.1-py3-none-any.whl", + "sha256": "c3a9c4211ff4c309edb8b8c4f1cbfa7ae324c4ba9f91ff254e3d305b9fd54561", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__tomli": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", + "sha256": "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__wheel": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl", + "sha256": "55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + }, + "pypi__zipp": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://files.pythonhosted.org/packages/da/55/a03fd7240714916507e1fcf7ae355bd9d9ed2e6db492595f1a67f61681be/zipp-3.18.2-py3-none-any.whl", + "sha256": "dce197b859eb796242b0622af1b8beb0a722d52aa2f57133ead08edd5bf5374e", + "type": "zip", + "build_file_content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_python//python:py_library.bzl\", \"py_library\")\n\npy_library(\n name = \"lib\",\n srcs = glob([\"**/*.py\"]),\n data = glob([\"**/*\"], exclude=[\n # These entries include those put into user-installed dependencies by\n # data_exclude to avoid non-determinism.\n \"**/*.py\",\n \"**/*.pyc\",\n \"**/*.pyc.*\", # During pyc creation, temp files named *.pyc.NNN are created\n \"**/*.dist-info/RECORD\",\n \"BUILD\",\n \"WORKSPACE\",\n ]),\n # This makes this directory a top-level in the python import\n # search path for anything that depends on this.\n imports = [\".\"],\n)\n" + } + } + } + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "ijW9KS7qsIY+yBVvJ+Nr1mzwQox09j13DnE3iIwaeTM=", + "usagesDigest": "H8dQoNZcoqP+Mu0tHZTi4KHATzvNkM5ePuEqoQdklIU=", + "recordedInputs": [ + "REPO_MAPPING:rules_python+,bazel_tools bazel_tools", + "REPO_MAPPING:rules_python+,platforms platforms" + ], + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + } + } + } + }, + "facts": {}, + "factsVersions": {} +} diff --git a/bazel/BUILD.bazel b/bazel/BUILD.bazel new file mode 100644 index 000000000..155a1976a --- /dev/null +++ b/bazel/BUILD.bazel @@ -0,0 +1 @@ +# Namespace package for repo-local Bazel rules (defs.bzl). diff --git a/bazel/clippy.bazelrc b/bazel/clippy.bazelrc new file mode 100644 index 000000000..4d7ed1ae7 --- /dev/null +++ b/bazel/clippy.bazelrc @@ -0,0 +1,48 @@ +# Generated from [workspace.lints] in Cargo.toml (see .bazelrc clippy-strict). +# Applies only to crates that opt in via `[lints] workspace = true`. +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Amismatched_lifetime_syntaxes +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Wclippy::all +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Dclippy::correctness +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Wclippy::nursery +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Wclippy::pedantic +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Wclippy::perf +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Wclippy::style +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Dclippy::suspicious +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Wclippy::allow_attributes_without_reason +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::borrow_as_ptr +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::cast_lossless +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::cast_possible_truncation +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::cast_possible_wrap +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::cast_precision_loss +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::cast_ptr_alignment +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::cast_sign_loss +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::default_trait_access +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::enum_glob_use +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::float_cmp +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::inconsistent_struct_constructor +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::inline_always +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::items_after_statements +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::let_underscore_untyped +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::match_same_arms +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::match_wildcard_for_single_variants +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::missing_errors_doc +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::missing_fields_in_debug +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::missing_panics_doc +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::must_use_candidate +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::needless_pass_by_value +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::option_if_let_else +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::ptr_as_ptr +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::redundant_closure_for_method_calls +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::ref_as_ptr +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::return_self_not_must_use +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::significant_drop_tightening +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::similar_names +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::struct_excessive_bools +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::too_many_arguments +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::too_many_lines +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::tuple_array_conversions +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Wclippy::undocumented_unsafe_blocks +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::unreadable_literal +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::unsafe_derive_deserialize +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::verbose_bit_mask +build:clippy-strict --@rules_rust//rust/settings:clippy_flag=-Aclippy::wildcard_imports diff --git a/bazel/defs.bzl b/bazel/defs.bzl new file mode 100644 index 000000000..ca2619218 --- /dev/null +++ b/bazel/defs.bzl @@ -0,0 +1,78 @@ +"""Rules for producing release-grade, canonically named pi_natives addons. + +`native_addon` transitions //crates/pi-natives:pi_natives onto a shipping +platform with the release codegen profile (opt, thin LTO, cgu=16, stripped — +mirrors the cargo `ci` profile) and renames the produced shared library to the +loader's canonical `pi_natives.-[-].node` filename. + +Encoding the profile in the transition means `bazel build //:natives-` is +always release-grade regardless of -c, and every addon shares one cache entry +per (platform, source) pair. +""" + +_ADDON_RUSTC_FLAGS = [ + "-Ccodegen-units=16", + "-Cstrip=symbols", +] + +def _addon_transition_impl(settings, attr): + return { + "//command_line_option:platforms": str(attr.platform), + "//command_line_option:compilation_mode": "opt", + "@rules_rust//rust/settings:lto": "thin", + "@rules_rust//rust/settings:extra_rustc_flags": _ADDON_RUSTC_FLAGS, + } + +_addon_transition = transition( + implementation = _addon_transition_impl, + inputs = [], + outputs = [ + "//command_line_option:platforms", + "//command_line_option:compilation_mode", + "@rules_rust//rust/settings:lto", + "@rules_rust//rust/settings:extra_rustc_flags", + ], +) + +_SHARED_LIB_EXTENSIONS = ("so", "dylib", "dll") + +def _native_addon_impl(ctx): + libs = [ + f + for f in ctx.attr.lib[0][DefaultInfo].files.to_list() + if f.extension in _SHARED_LIB_EXTENSIONS + ] + if len(libs) != 1: + fail("expected exactly one shared library from {}, got: {}".format( + ctx.attr.lib[0].label, + [f.short_path for f in libs], + )) + # Scope under the rule name: gnu and musl addons share canonical filenames + # (the loader never sees both), so bare package-level outputs would collide. + out = ctx.actions.declare_file(ctx.label.name + "/" + ctx.attr.out) + ctx.actions.symlink(output = out, target_file = libs[0]) + return [DefaultInfo(files = depset([out]))] + +native_addon = rule( + implementation = _native_addon_impl, + doc = "Release build of the pi_natives cdylib for one shipping platform, " + + "renamed to the loader's canonical .node filename.", + attrs = { + "lib": attr.label( + cfg = _addon_transition, + mandatory = True, + doc = "The rust_shared_library target (//crates/pi-natives:pi_natives).", + ), + "platform": attr.label( + mandatory = True, + doc = "//bazel/platforms platform to build for.", + ), + "out": attr.string( + mandatory = True, + doc = "Canonical addon filename, e.g. pi_natives.linux-x64-baseline.node.", + ), + "_allowlist_function_transition": attr.label( + default = "@bazel_tools//tools/allowlists/function_transition_allowlist", + ), + }, +) diff --git a/bazel/platforms/BUILD.bazel b/bazel/platforms/BUILD.bazel new file mode 100644 index 000000000..655af75f0 --- /dev/null +++ b/bazel/platforms/BUILD.bazel @@ -0,0 +1,61 @@ +# One platform per shipped pi_natives addon. linux platforms inherit the zig +# libc-aware platforms so cc toolchain resolution pins glibc 2.17 (the shipped +# portability floor) or musl; the cpu_variant constraint selects -Ctarget-cpu +# in //crates/pi-natives. darwin/win32 resolve against the host Xcode toolchain +# and //bazel/toolchains/msvc respectively. + +package(default_visibility = ["//visibility:public"]) + +platform( + name = "linux-x64-baseline", + constraint_values = ["//bazel/variants:baseline"], + parents = ["@zig_sdk//libc_aware/platform:linux_amd64_gnu.2.17"], +) + +platform( + name = "linux-x64-modern", + constraint_values = ["//bazel/variants:modern"], + parents = ["@zig_sdk//libc_aware/platform:linux_amd64_gnu.2.17"], +) + +platform( + name = "linux-arm64", + parents = ["@zig_sdk//libc_aware/platform:linux_arm64_gnu.2.17"], +) + +platform( + name = "linux-musl-x64-baseline", + constraint_values = ["//bazel/variants:baseline"], + parents = ["@zig_sdk//libc_aware/platform:linux_amd64_musl"], +) + +platform( + name = "linux-musl-arm64", + parents = ["@zig_sdk//libc_aware/platform:linux_arm64_musl"], +) + +platform( + name = "darwin-x64-baseline", + constraint_values = [ + "@platforms//os:macos", + "@platforms//cpu:x86_64", + "//bazel/variants:baseline", + ], +) + +platform( + name = "darwin-arm64", + constraint_values = [ + "@platforms//os:macos", + "@platforms//cpu:arm64", + ], +) + +platform( + name = "win32-x64-baseline", + constraint_values = [ + "@platforms//os:windows", + "@platforms//cpu:x86_64", + "//bazel/variants:baseline", + ], +) diff --git a/bazel/toolchains/BUILD.bazel b/bazel/toolchains/BUILD.bazel new file mode 100644 index 000000000..a9d17f54c --- /dev/null +++ b/bazel/toolchains/BUILD.bazel @@ -0,0 +1,83 @@ +# Repo-local toolchains, registered in MODULE.bazel BEFORE @rust_toolchains//:all. +# +# musl wrappers: rules_rust's generated gnu and musl rust toolchains share +# (os, cpu) constraints, so plain registration order would hand musl platforms +# the gnu std. These wrappers re-register the musl toolchains gated on +# @zig_sdk//libc:musl (carried by //bazel/platforms:linux-musl-*), and lose to +# nothing on gnu platforms because the constraint cannot match there. +# +# //bazel/toolchains/msvc: hermetic clang-cl + lld-link + xwin CRT/SDK +# cc toolchain for x86_64-pc-windows-msvc cross builds from linux. + +package(default_visibility = ["//visibility:public"]) + +_MUSL_RUST_TOOLCHAINS = { + "linux-x64-to-musl-x64": ( + ["@platforms//os:linux", "@platforms//cpu:x86_64"], + ["@platforms//os:linux", "@platforms//cpu:x86_64"], + "@rust_linux_x86_64__x86_64-unknown-linux-musl__nightly_tools//:rust_toolchain", + ), + "linux-x64-to-musl-arm64": ( + ["@platforms//os:linux", "@platforms//cpu:x86_64"], + ["@platforms//os:linux", "@platforms//cpu:aarch64"], + "@rust_linux_x86_64__aarch64-unknown-linux-musl__nightly_tools//:rust_toolchain", + ), + "darwin-arm64-to-musl-x64": ( + ["@platforms//os:osx", "@platforms//cpu:aarch64"], + ["@platforms//os:linux", "@platforms//cpu:x86_64"], + "@rust_macos_aarch64__x86_64-unknown-linux-musl__nightly_tools//:rust_toolchain", + ), + "darwin-arm64-to-musl-arm64": ( + ["@platforms//os:osx", "@platforms//cpu:aarch64"], + ["@platforms//os:linux", "@platforms//cpu:aarch64"], + "@rust_macos_aarch64__aarch64-unknown-linux-musl__nightly_tools//:rust_toolchain", + ), + "linux-arm64-to-musl-arm64": ( + ["@platforms//os:linux", "@platforms//cpu:aarch64"], + ["@platforms//os:linux", "@platforms//cpu:aarch64"], + "@rust_linux_aarch64__aarch64-unknown-linux-musl__nightly_tools//:rust_toolchain", + ), + "linux-arm64-to-musl-x64": ( + ["@platforms//os:linux", "@platforms//cpu:aarch64"], + ["@platforms//os:linux", "@platforms//cpu:x86_64"], + "@rust_linux_aarch64__x86_64-unknown-linux-musl__nightly_tools//:rust_toolchain", + ), +} + +[ + toolchain( + name = "rust-musl-" + name, + exec_compatible_with = exec_cv, + target_compatible_with = target_cv + ["@zig_sdk//libc:musl"], + target_settings = ["@rules_rust//rust/toolchain/channel:nightly"], + toolchain = tools, + toolchain_type = "@rules_rust//rust:toolchain", + ) + for name, (exec_cv, target_cv, tools) in _MUSL_RUST_TOOLCHAINS.items() +] + +# msvc cross cc toolchain: @msvc_cc generates its wrappers for whichever host +# fetches it, so one toolchain() per supported exec host points at the same +# cc_toolchain — only the variant matching the local host can ever resolve. +# target_compatible_with pins these to windows/x86_64, so they can never +# shadow the zig cc toolchains on linux (or the host Xcode toolchain on mac). +_MSVC_EXEC_HOSTS = { + "linux-x64": ["@platforms//os:linux", "@platforms//cpu:x86_64"], + "linux-arm64": ["@platforms//os:linux", "@platforms//cpu:aarch64"], + "darwin-arm64": ["@platforms//os:osx", "@platforms//cpu:aarch64"], + "darwin-x64": ["@platforms//os:osx", "@platforms//cpu:x86_64"], +} + +[ + toolchain( + name = "msvc-cc-from-" + name, + exec_compatible_with = exec_cv, + target_compatible_with = [ + "@platforms//os:windows", + "@platforms//cpu:x86_64", + ], + toolchain = "@msvc_cc//:cc_toolchain", + toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", + ) + for name, exec_cv in _MSVC_EXEC_HOSTS.items() +] diff --git a/bazel/toolchains/msvc/BUILD.bazel b/bazel/toolchains/msvc/BUILD.bazel new file mode 100644 index 000000000..cc940994f --- /dev/null +++ b/bazel/toolchains/msvc/BUILD.bazel @@ -0,0 +1,5 @@ +# Hermetic clang-cl + lld-link + xwin (MSVC CRT/SDK) cross toolchain for +# x86_64-pc-windows-msvc, replacing cargo-xwin. The repository rules live in +# llvm.bzl / sysroot.bzl / cc.bzl (instantiated from MODULE.bazel); the +# toolchain() registrations live in //bazel/toolchains. See NOTES.md for the +# knobs and what still needs validation on can.internal. diff --git a/bazel/toolchains/msvc/NOTES.md b/bazel/toolchains/msvc/NOTES.md new file mode 100644 index 000000000..df66d2216 --- /dev/null +++ b/bazel/toolchains/msvc/NOTES.md @@ -0,0 +1,139 @@ +# msvc cross toolchain — knobs & validation notes + +Hermetic clang-cl + lld-link + xwin (MSVC CRT/SDK) cc toolchain for +`x86_64-pc-windows-msvc`, cross-linking from linux-x64 (CI) and darwin (dev) +exec hosts. Replaces cargo-xwin. + +## Layout + +| Piece | Where | Why separate | +| --- | --- | --- | +| `@llvm_msvc_tools` | `llvm.bzl` | LLVM 20.1.7 release archive for the fetching host, pruned to clang-cl/lld-link/llvm-lib/llvm-rc/llvm-mt + `lib/clang/*/include`. Downloads (~2 GiB) are sha256-pinned → Bazel repository cache. | +| `@xwin_sysroot` | `sysroot.bzl` | xwin 0.6.5 (pinned per-host sha256) runs `splat` in the repo rule. The ~1 GiB CRT/SDK payload comes from the Microsoft CDN via xwin itself and is **not** in Bazel's repo cache — a cold output base re-downloads it. Keep `sysroot.bzl` stable. | +| `@msvc_cc` | `cc.bzl` | Wrapper scripts + `cc_toolchain` + MSVC feature config (copied from the resolved rules_cc, like `@local_config_cc`). Cheap to regenerate — iterate flags here. | +| `toolchain()`s | `//bazel/toolchains` (`msvc-cc-from-*`) | One per exec host (linux-x64/arm64, darwin-arm64/x64), all pointing at `@msvc_cc//:cc_toolchain`; only the local host's variant can resolve. `target_compatible_with = [windows, x86_64]` ⇒ can never shadow zig on linux. | +| MODULE.bazel | `# --- msvc cross toolchain ---` section | `rules_cc` 0.2.17 (= Bazel 9.2's builtin pin) + the three `use_repo_rule` instantiations. Plus one target-suffixed env key inside the existing `audiopus_sys` annotation (see below). | + +## Design decisions + +- **No toolchains_llvm**: it wants to register full host cc toolchains, which + risks shadowing the zig linux toolchains. Direct LLVM release fetch instead. +- **Wrappers self-locate from `$0`** (execroot-relative sibling repos), so they + work from Bazel actions (cwd = execroot) *and* from build scripts, where + rules_rust `${pwd}`-expands `CC`/`AR` to absolute paths and cc-rs/cmake spawn + tools from other cwds. +- **CRT: dynamic `/MD`** (rules_cc's msvc branch default outside `dbg` without + the `static_link_msvcrt` feature) — matches what napi/cc-rs produced under + cargo-xwin (rust msvc targets default to dynamic CRT without `+crt-static`). +- **SSE floor in the wrapper, not annotations**: `-msse4.1 -msse4.2` live in the + clang-cl wrapper, which only ever targets win32-x64 (baseline = x86-64-v2 ⊇ + SSE4.2). This is the old build-native.ts CFLAGS hack, windows-only by + construction. +- **cmake generator via target-suffixed env**: `crate_universe` cannot select() + annotations per platform, and a second `crate.annotation` for the same crate + hard-fails the extension (`_insert_annotation` dupe check; `annotation_select` + is unused/broken in rules_rust 0.71.3). Instead the existing `audiopus_sys` + annotation carries `CMAKE_GENERATOR_x86_64_pc_windows_msvc=Ninja` — cmake-rs + reads `VAR_` before `VAR`, so the key is inert for all other targets. + cmake-rs sets `CMAKE_SYSTEM_NAME=Windows` itself when target ≠ host. +- **cmake tool discovery**: wrappers are named bare `clang-cl`, `lld-link`, + `llvm-lib`, `llvm-rc`, `llvm-mt` (no `.sh`) because CMake's + `CMakeFindBinUtils`/`find_program` probes for those names next to + `CMAKE_C_COMPILER`, and cc-rs sniffs the MSVC/clang-cl tool family from the + basename. The clang-cl wrapper also exports link.exe-style `LIB` and passes + `-fuse-ld=lld-link` so compiler-driver links (cmake `try_compile` ABI checks) + resolve CRT import libs without a toolchain file. +- **ring 0.17.14 needs no perl/nasm**: verified in its build.rs — crates.io + tarballs use `pregenerated/*-nasm.o` objects directly for windows-msvc + (`use_nasm()` path only shells out during the maintainer packaging step). + The .o files flow through `cc::Build.object()` into llvm-lib. + +## Reproducibility / cache implications + +- First fetch per host: ~2 GiB LLVM (repo-cache backed) + ~15 MiB xwin + + ~1 GiB MS CDN splat (not repo-cache backed). Splat repo ends up ~800 MiB. +- `--manifest-version 17` pins the VS2022 channel, but Microsoft advances the + channel payload over time → splat is stable day-to-day, not bit-reproducible + forever (same property cargo-xwin had). Action keys only depend on the files + actually read, so remote-cache hit rates degrade gracefully after an MS bump. +- Toolchain binaries differ per exec host (linux vs mac clang) → win32 link + actions do not share remote-cache entries across host OSes. CI is + linux-x64-only for this target, so this only affects dev machines. + +## Already verified (darwin-arm64 dev host, 2026-07-27) + +- `bazel build --nobuild //:natives-win32-x64-baseline` analyzes clean; + `cquery deps(...)` confirms `@msvc_cc//:cc_toolchain` (not the host Xcode + toolchain) resolved for the windows target. Full fetch + splat took ~2.5 min + on a fast link. Repin (`bun run bazel:repin`) already run for the + `CMAKE_GENERATOR_x86_64_pc_windows_msvc` annotation key. +- Wrapper smoke test outside Bazel: `clang-cl /MD` compiled a windows.h + + smmintrin.h SSE4.1 program and driver-linked it via `-fuse-ld=lld-link` + + `LIB` into a valid PE32+ exe; the standalone `lld-link` wrapper (rustc's + `-Clinker` path) and `llvm-lib` also produced a PE exe / ar archive. +- xwin's `10.0.26100 -> .` self-referential version symlinks broke Bazel's + glob ("too many levels of symbolic links"); `sysroot.bzl` now prunes any + readdir entry whose realpath equals its parent, post-splat. +- blake3 MASM (`ml64.exe` from cc-rs on non-windows hosts): `bin/ml64.exe` / + `bin/ml64` shims exec `llvm-ml -m64`. All four blake3 1.8.5 + `blake3_*_x86-64_windows_msvc.asm` files assemble to valid amd64 COFF + objects through the shim (invoked cc-rs-style via PATH with joined `/Fo`). + cc-rs finds the shim through the blake3 crate.annotation, which prepends + `$${pwd}/external/+msvc_cc_repository+msvc_cc/bin` to the build-script PATH + (`$$` because annotation env runs through Bazel make-var expansion; the + rules_rust runner then substitutes `${pwd}` → exec root). The wrapper dir + reaches the sandbox via the cc toolchain's `all_files`. NOTE: the PATH entry + hardcodes @msvc_cc's canonical repo name — keep in sync if the repo rule or + repo name changes. Repin for this annotation already run. +- audiopus_sys/opus cmake exe links (can.internal finding #2): cmake's + `vs_link_exe` demands rc/mt tools that `find_program` can't locate on a + linux/mac PATH. @msvc_cc now generates `toolchain.cmake` (self-locating via + `CMAKE_CURRENT_LIST_DIR`: compiler/linker/rc/mt = the wrappers) handed to + cmake-rs through `CMAKE_TOOLCHAIN_FILE_x86_64_pc_windows_msvc` in the + audiopus_sys annotation (same `$${pwd}` + canonical-repo-path mechanism as + the blake3 shim). Second failure mode fixed in the same file: `try_compile` + defaults to the Debug config → `/MDd` → `msvcrtd.lib`, which the lean splat + (like cargo-xwin's) does not carry; toolchain.cmake pins + `CMAKE_TRY_COMPILE_CONFIGURATION=Release`, `CMAKE_POLICY_DEFAULT_CMP0091=NEW` + and `CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL` (/MD everywhere). + Verified on darwin: scratch `project(C)` + `add_executable` configures with + "Clang 20.1.7 with MSVC-like command-line" and links a valid PE32+ exe + through vs_link_exe with the wrapper rc/mt/linker. Repin already run. + +## What to verify on can.internal (linux-x64) + +1. `bazel build //:natives-win32-x64-baseline` end-to-end link; check the + produced `pi_natives.win32-x64-baseline.node` imports (dumpbin/llvm-readobj: + expect VCRUNTIME140/api-ms-win-crt-* → `/MD`, no static CRT). +2. LLVM 20.1.7 Linux-X64 binaries are built on a newish Ubuntu: confirm the + kata runner image's glibc is ≥ 2.35-ish and has `libtinfo6`/`libstdc++6` + (usual LLVM release-binary runtime deps). +3. `ninja` + `cmake` must be on the audiopus_sys build-script PATH + (`/usr/local/bin:/usr/bin:/bin`) on the kata image — same requirement the + old ensure-cmake action satisfied for cargo-xwin. +4. audiopus_sys configure: cmake should report + "Clang with MSVC-like command-line", take `toolchain.cmake` (log shows the + vs_link_exe --rc/--mt pointing into the wrapper dir), and produce opus.lib + with /MD objects. If mt is ever asked to actually merge manifests, note + the official LLVM llvm-mt lacks libxml2 and would error — not hit today. +5. tree-sitter grammar compiles via cc-rs: wrapper is picked up as `CC` + (family detection needs the basename to contain `clang-cl` — it does). +6. ring: no `nasm`/`perl` spawns in the build-script log; archive step uses + the `llvm-lib` wrapper. +7. blake3: build-script log should show `ml64.exe` resolving to the shim (no + "failed to find tool" error); spot-check the assembled objects land in the + rlib. +8. Repo fetch time/disk on the pods (first fetch ~3 GiB, ~25 min worst case); + consider pre-warming the bazel output base or a persistent + `--repository_cache` volume if it hurts. + +## Knobs + +- LLVM version/sha256s: `llvm.bzl` (`_LLVM_VERSION`, `_LLVM_DISTS`). 20.1.7 is + the newest release with archives for all four host tuples. +- xwin version + manifest channel: `sysroot.bzl` (`_XWIN_VERSION` 0.6.5 — last + release with darwin binaries; `_XWIN_MANIFEST_VERSION` "17"). +- Compile/link flags, include/libpath set, CRT choice: wrapper templates and + `cc_toolchain_config` attrs in `cc.bzl`. +- Static CRT if ever needed: build with the standard `static_link_msvcrt` + feature (`--features=static_link_msvcrt`) instead of editing flags. diff --git a/bazel/toolchains/msvc/cc.bzl b/bazel/toolchains/msvc/cc.bzl new file mode 100644 index 000000000..564aa0baf --- /dev/null +++ b/bazel/toolchains/msvc/cc.bzl @@ -0,0 +1,279 @@ +"""Repository rule generating the hermetic clang-cl + xwin MSVC cc toolchain. + +The @msvc_cc repo holds only cheap generated files — wrapper shell scripts and +the cc_toolchain/cc_toolchain_config BUILD — so iterating on flags here never +invalidates the big @llvm_msvc_tools / @xwin_sysroot downloads (their rules +live in llvm.bzl / sysroot.bzl on purpose). + +Wrappers derive every path from $0 (execroot-relative sibling repos), so they +work from Bazel actions (cwd = execroot) and from build scripts, where +rules_rust ${pwd}-expands CC/AR to absolute paths and cc-rs/cmake spawn the +tools from other working directories: + + bin/clang-cl --target=x86_64-pc-windows-msvc, /imsvc CRT+SDK includes, + -msse4.1 -msse4.2 (win32-x64 baseline floor; clang-cl + enforces per-function target features, real MSVC does not), + -fuse-ld=lld-link + exported link.exe-style LIB so driver + links (cmake try_compile) resolve the CRT import libs. + bin/lld-link /libpath for CRT + SDK libs, then pass-through; rustc uses + it via -Clinker for the msvc linker flavor. + bin/llvm-lib archiver (lib.exe replacement, cc-rs AR + cmake CMAKE_AR). + bin/llvm-rc resource compiler (cmake finds it next to the compiler). + bin/llvm-mt manifest tool (cmake CMAKE_MT probe). + bin/ml64.exe MASM shim → llvm-ml -m64 (also bare `ml64`): cc-rs looks + bin/ml64 up `ml64.exe` on PATH for x64 msvc .asm (blake3); the + blake3 crate.annotation prepends this dir to PATH. + +The MSVC-flavored feature/action config (dynamic CRT /MD by default — matching +what napi/cc-rs produced under cargo-xwin; /MT only via the standard +static_link_msvcrt feature) comes from rules_cc's own +windows_cc_toolchain_config.bzl, copied into the repo exactly like +@local_config_cc does, so it always matches the resolved rules_cc version. +""" + +_CLANG_CL_WRAPPER = """\ +#!/bin/sh +# Generated by //bazel/toolchains/msvc:cc.bzl. clang-cl driver for +# x86_64-pc-windows-msvc against the @xwin_sysroot MSVC CRT + Windows SDK. +set -eu +execroot="$(cd "$(dirname "$0")/../../.." && pwd)" +llvm="$execroot/external/{llvm}" +splat="$execroot/external/{xwin}/splat" +# lld-link (spawned through -fuse-ld for compiler-driver links, e.g. cmake +# try_compile) resolves CRT/SDK import libs via the link.exe-style LIB env. +LIB="$splat/crt/lib/x86_64;$splat/sdk/lib/um/x86_64;$splat/sdk/lib/ucrt/x86_64" +export LIB +# -msse4.1/-msse4.2: clang-cl enforces per-function target features (real MSVC +# does not); opus' silk/x86 SSE4.1 units fail without the feature enabled +# globally. The win32-x64 addon floor is x86-64-v2 (SSE4.2 inclusive), so this +# is safe for every C dep — same flags the cargo-xwin pipeline exported. +exec "$llvm/bin/clang-cl" \\ + --target=x86_64-pc-windows-msvc \\ + -fuse-ld=lld-link \\ + -msse4.1 \\ + -msse4.2 \\ + -Wno-unused-command-line-argument \\ + "/imsvc$splat/crt/include" \\ + "/imsvc$splat/sdk/include/ucrt" \\ + "/imsvc$splat/sdk/include/um" \\ + "/imsvc$splat/sdk/include/shared" \\ + "/imsvc$splat/sdk/include/winrt" \\ + "/imsvc$splat/sdk/include/cppwinrt" \\ + "$@" +""" + +_LLD_LINK_WRAPPER = """\ +#!/bin/sh +# Generated by //bazel/toolchains/msvc:cc.bzl. lld-link with the @xwin_sysroot +# CRT + SDK libpaths; rustc invokes it via -Clinker (msvc linker flavor). +set -eu +execroot="$(cd "$(dirname "$0")/../../.." && pwd)" +llvm="$execroot/external/{llvm}" +splat="$execroot/external/{xwin}/splat" +# rustc addresses lld in generic multi-flavor style ("-flavor link" first); +# the single-flavor lld-link binary would treat "link" as an input file. +if [ "${{1:-}}" = "-flavor" ]; then shift 2; fi +exec "$llvm/bin/lld-link" \\ + "/libpath:$splat/crt/lib/x86_64" \\ + "/libpath:$splat/sdk/lib/um/x86_64" \\ + "/libpath:$splat/sdk/lib/ucrt/x86_64" \\ + "$@" +""" + +_PASSTHROUGH_WRAPPER = """\ +#!/bin/sh +# Generated by //bazel/toolchains/msvc:cc.bzl. +set -eu +execroot="$(cd "$(dirname "$0")/../../.." && pwd)" +exec "$execroot/external/{llvm}/bin/{tool}" "$@" +""" + +_ML64_WRAPPER = """\ +#!/bin/sh +# Generated by //bazel/toolchains/msvc:cc.bzl. MASM shim: cc-rs assembles .asm +# for x64 msvc targets (blake3's blake3_*_x86-64_windows_msvc.asm) by invoking +# `ml64.exe` from PATH on non-windows hosts; llvm-ml is a MASM-compatible +# replacement — same shim cargo-xwin installed. The blake3 crate.annotation in +# MODULE.bazel prepends this bin/ dir to the build script PATH. +set -eu +execroot="$(cd "$(dirname "$0")/../../.." && pwd)" +exec "$execroot/external/{llvm}/bin/llvm-ml" -m64 "$@" +""" + +_NOP_WRAPPER = """\ +#!/bin/sh +# Generated by //bazel/toolchains/msvc:cc.bzl. Placeholder for tools the MSVC +# toolchain does not have (gcov/nm/objcopy/objdump/strip). +exit 0 +""" + +# CMake toolchain file for the `cmake` crate (audiopus_sys' bundled opus). +# cmake's vs_link_exe helper insists on rc/mt tools for MSVC-ABI exe links +# (try_compile links a test exe), and CMake's own find_program would only look +# for `rc`/`mt` on PATH. CMAKE_CURRENT_LIST_DIR makes the file self-locating — +# no canonical repo names involved. Handed to build scripts via the +# CMAKE_TOOLCHAIN_FILE_x86_64_pc_windows_msvc annotation env in MODULE.bazel. +_TOOLCHAIN_CMAKE = """\ +# Generated by //bazel/toolchains/msvc:cc.bzl — clang-cl + lld-link + xwin +# CRT/SDK cross toolchain for x86_64-pc-windows-msvc (mirrors the toolchain +# file cargo-xwin used to generate). +set(CMAKE_SYSTEM_NAME Windows) +set(CMAKE_SYSTEM_PROCESSOR AMD64) +set(CMAKE_C_COMPILER "${CMAKE_CURRENT_LIST_DIR}/bin/clang-cl") +set(CMAKE_CXX_COMPILER "${CMAKE_CURRENT_LIST_DIR}/bin/clang-cl") +set(CMAKE_LINKER "${CMAKE_CURRENT_LIST_DIR}/bin/lld-link") +set(CMAKE_RC_COMPILER "${CMAKE_CURRENT_LIST_DIR}/bin/llvm-rc") +set(CMAKE_MT "${CMAKE_CURRENT_LIST_DIR}/bin/llvm-mt") +# The xwin splat carries release CRT import libs only (msvcrt.lib, no +# msvcrtd.lib — same as cargo-xwin). try_compile defaults to the Debug +# configuration, whose /MDd would demand the debug CRT; pin try_compile to +# Release and the runtime library to dynamic release /MD for every config +# (CMP0091 NEW makes CMAKE_MSVC_RUNTIME_LIBRARY authoritative even for +# projects with ancient cmake_minimum_required, e.g. bundled opus). +set(CMAKE_TRY_COMPILE_CONFIGURATION Release) +set(CMAKE_POLICY_DEFAULT_CMP0091 NEW) +set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDLL) +""" + +_BUILD = """\ +# Generated by //bazel/toolchains/msvc:cc.bzl — hermetic clang-cl + lld-link + +# xwin CRT/SDK cc toolchain for x86_64-pc-windows-msvc. The toolchain() targets +# registering this live in //bazel/toolchains (one per supported exec host). + +load("@rules_cc//cc/toolchains:cc_toolchain.bzl", "cc_toolchain") +load(":windows_cc_toolchain_config.bzl", "cc_toolchain_config") + +package(default_visibility = ["//visibility:public"]) + +filegroup(name = "empty") + +filegroup( + name = "wrappers", + srcs = glob(["bin/*"]) + ["toolchain.cmake"], +) + +filegroup( + name = "all_files", + srcs = [ + ":wrappers", + "@llvm_msvc_tools//:all", + "@xwin_sysroot//:sysroot", + ], +) + +cc_toolchain_config( + name = "clang_cl_xwin_config", + abi_libc_version = "local", + abi_version = "local", + archiver_flags = ["/MACHINE:X64"], + compiler = "clang-cl", + cpu = "x64_windows", + dbg_mode_debug_flag = "/DEBUG", + default_link_flags = ["/MACHINE:X64"], + fastbuild_mode_debug_flag = "/DEBUG", + host_system_name = "local", + msvc_cl_path = "bin/clang-cl", + msvc_env_include = "{env_include}", + msvc_env_lib = "{env_lib}", + msvc_env_path = "/usr/bin:/bin", + msvc_env_tmp = "/tmp", + msvc_lib_path = "bin/llvm-lib", + msvc_link_path = "bin/lld-link", + msvc_ml_path = "bin/ml64.exe", + supports_parse_showincludes = False, + target_libc = "msvcrt", + target_system_name = "x86_64-pc-windows-msvc", + tool_paths = {{ + "ar": "bin/llvm-lib", + "cpp": "bin/clang-cl", + "gcc": "bin/clang-cl", + "gcov": "bin/msvc-nop", + "ld": "bin/lld-link", + "ml": "bin/ml64.exe", + "nm": "bin/msvc-nop", + "objcopy": "bin/msvc-nop", + "objdump": "bin/msvc-nop", + "strip": "bin/msvc-nop", + }}, + toolchain_identifier = "clang_cl_xwin_x64", +) + +cc_toolchain( + name = "cc_toolchain", + all_files = ":all_files", + ar_files = ":all_files", + as_files = ":all_files", + compiler_files = ":all_files", + dwp_files = ":empty", + linker_files = ":all_files", + objcopy_files = ":empty", + strip_files = ":empty", + supports_param_files = 1, + toolchain_config = ":clang_cl_xwin_config", + toolchain_identifier = "clang_cl_xwin_x64", +) +""" + +def _msvc_cc_impl(rctx): + llvm = rctx.attr.llvm_repo.repo_name + xwin = rctx.attr.xwin_repo.repo_name + splat = "external/{}/splat".format(xwin) + + rctx.file("bin/clang-cl", _CLANG_CL_WRAPPER.format(llvm = llvm, xwin = xwin), executable = True) + rctx.file("bin/lld-link", _LLD_LINK_WRAPPER.format(llvm = llvm, xwin = xwin), executable = True) + for tool in ("llvm-lib", "llvm-rc", "llvm-mt"): + rctx.file("bin/" + tool, _PASSTHROUGH_WRAPPER.format(llvm = llvm, tool = tool), executable = True) + rctx.file("bin/msvc-nop", _NOP_WRAPPER, executable = True) + # cc-rs resolves the x64 MASM assembler as `ml64.exe` from PATH on + # non-windows hosts (blake3); ship both spellings of the shim. + for name in ("ml64.exe", "ml64"): + rctx.file("bin/" + name, _ML64_WRAPPER.format(llvm = llvm), executable = True) + + # The MSVC feature/action-config machinery, verbatim from the resolved + # rules_cc (same mechanism @local_config_cc uses on real Windows hosts). + rctx.template("windows_cc_toolchain_config.bzl", rctx.attr._config_bzl, executable = False) + + # CMake toolchain file for the cmake crate (no placeholders — it + # self-locates via CMAKE_CURRENT_LIST_DIR, so no .format here). + rctx.file("toolchain.cmake", _TOOLCHAIN_CMAKE, executable = False) + + # INCLUDE/LIB for raw cc_* compile/link actions (cwd = execroot, so the + # execroot-relative entries resolve). The rust graph routes everything + # through the wrappers, which pass /imsvc and /libpath themselves. + env_include = ";".join([ + splat + "/crt/include", + splat + "/sdk/include/ucrt", + splat + "/sdk/include/um", + splat + "/sdk/include/shared", + splat + "/sdk/include/winrt", + splat + "/sdk/include/cppwinrt", + ]) + env_lib = ";".join([ + splat + "/crt/lib/x86_64", + splat + "/sdk/lib/um/x86_64", + splat + "/sdk/lib/ucrt/x86_64", + ]) + rctx.file( + "BUILD.bazel", + _BUILD.format(env_include = env_include, env_lib = env_lib), + executable = False, + ) + +msvc_cc_repository = repository_rule( + implementation = _msvc_cc_impl, + doc = "clang-cl/lld-link wrapper scripts + MSVC-flavored cc_toolchain for x86_64-pc-windows-msvc.", + attrs = { + "llvm_repo": attr.label( + default = "@llvm_msvc_tools//:BUILD.bazel", + doc = "Anchor into the pruned LLVM tools repo (canonical name source; not fetched here).", + ), + "xwin_repo": attr.label( + default = "@xwin_sysroot//:BUILD.bazel", + doc = "Anchor into the xwin CRT/SDK sysroot repo (canonical name source; not fetched here).", + ), + "_config_bzl": attr.label( + default = "@rules_cc//cc/private/toolchain:windows_cc_toolchain_config.bzl", + doc = "rules_cc's Windows cc_toolchain_config implementation, copied into this repo.", + ), + }, +) diff --git a/bazel/toolchains/msvc/llvm.bzl b/bazel/toolchains/msvc/llvm.bzl new file mode 100644 index 000000000..35172658c --- /dev/null +++ b/bazel/toolchains/msvc/llvm.bzl @@ -0,0 +1,126 @@ +"""Repository rule fetching the LLVM binaries used by the msvc cross toolchain. + +Downloads the official LLVM release archive for the host that fetches the repo +(linux-x64 CI pods, darwin dev hosts) and prunes it down to the clang-cl / +lld-link / llvm-lib / llvm-rc slice plus the clang builtin headers +(lib/clang//include — immintrin.h & co, required for the SSE units in +bundled opus). The pruned tree is ~300 MiB instead of ~10 GiB. + +The archive download (~1.5-2 GiB) goes through repository_ctx.download_and_extract +with a pinned sha256, so it lands in Bazel's content-addressed repository cache: +re-fetches after `bazel clean --expunge` or a .bzl edit only pay extraction. + +Checksums are the official llvm-project release assets, cross-checked against +bazel-contrib/toolchains_llvm's distribution table. +""" + +_LLVM_VERSION = "20.1.7" + +# host key -> (release asset suffix, sha256) +_LLVM_DISTS = { + "linux-arm64": ("Linux-ARM64", "832f2802a29457dc758f56e26e98558c6cd0e45fcd07186f540cb6e7f4e59385"), + "linux-x64": ("Linux-X64", "8494c98a774051a40bfe1187a2d6442f4bc107598998bbe1673d9bb1572cfd6f"), + "macos-arm64": ("macOS-ARM64", "6aa75de00575ad0663183b00f00f39992ded611b5136e57649ace1e6a53c0d16"), + "macos-x64": ("macOS-X64", "ccf82ffe7e136ee49659cb57157856a7963d0950fac3d05aabba0db75bfba26f"), +} + +# bin/ entries to keep. Symlink chains (clang-cl -> clang -> clang-20, +# llvm-lib -> llvm-ar, lld-link -> lld) are closed over at fetch time by +# resolving realpaths, so version-suffixed real binaries need no hardcoding. +_KEEP_BINS = [ + "clang", + "clang-cl", + "lld", + "lld-link", + "llvm-ar", + "llvm-lib", + "llvm-ml", + "llvm-mt", + "llvm-rc", +] + +def _host_key(rctx): + os_name = rctx.os.name.lower() + arch = rctx.os.arch.lower() + if os_name.startswith("linux"): + host_os = "linux" + elif os_name.startswith("mac") or os_name.startswith("darwin"): + host_os = "macos" + else: + fail("bazel/toolchains/msvc: unsupported exec host OS for the msvc cross toolchain: " + rctx.os.name) + if arch in ("amd64", "x86_64", "x64"): + host_cpu = "x64" + elif arch in ("aarch64", "arm64"): + host_cpu = "arm64" + else: + fail("bazel/toolchains/msvc: unsupported exec host CPU for the msvc cross toolchain: " + rctx.os.arch) + return host_os + "-" + host_cpu + +_BUILD = """\ +# Generated by //bazel/toolchains/msvc:llvm.bzl — pruned LLVM {version} for the +# msvc cross toolchain ({host} exec host). Consumed by @msvc_cc wrappers. + +package(default_visibility = ["//visibility:public"]) + +filegroup( + name = "bin", + srcs = glob(["bin/*"]), +) + +filegroup( + name = "builtin_headers", + srcs = glob(["lib/clang/*/include/**"]), +) + +filegroup( + name = "all", + srcs = [ + ":bin", + ":builtin_headers", + ], +) +""" + +def _llvm_msvc_tools_impl(rctx): + key = _host_key(rctx) + if key not in _LLVM_DISTS: + fail("bazel/toolchains/msvc: no pinned LLVM release archive for host " + key) + suffix, sha256 = _LLVM_DISTS[key] + prefix = "LLVM-{}-{}".format(_LLVM_VERSION, suffix) + rctx.report_progress("Downloading LLVM {} ({}, ~2 GiB, repository-cache backed)".format(_LLVM_VERSION, suffix)) + rctx.download_and_extract( + url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-{}/{}.tar.xz".format(_LLVM_VERSION, prefix), + sha256 = sha256, + stripPrefix = prefix, + ) + + # Close the keep-set over symlink targets, then prune bin/. + keep = {name: None for name in _KEEP_BINS} + bin_dir = rctx.path("bin") + for name in _KEEP_BINS: + tool = bin_dir.get_child(name) + if tool.exists: + keep[tool.realpath.basename] = None + for entry in bin_dir.readdir(): + if entry.basename not in keep: + rctx.delete(entry) + + # Prune everything outside bin/ and lib/clang//include. + for entry in rctx.path(".").readdir(): + if entry.basename not in ("bin", "lib"): + rctx.delete(entry) + lib_dir = rctx.path("lib") + for entry in lib_dir.readdir(): + if entry.basename != "clang": + rctx.delete(entry) + for verdir in lib_dir.get_child("clang").readdir(): + for entry in verdir.readdir(): + if entry.basename != "include": + rctx.delete(entry) + + rctx.file("BUILD.bazel", _BUILD.format(version = _LLVM_VERSION, host = key), executable = False) + +llvm_msvc_tools_repository = repository_rule( + implementation = _llvm_msvc_tools_impl, + doc = "Pruned LLVM release binaries (clang-cl/lld-link/llvm-lib/llvm-rc) for the exec host.", +) diff --git a/bazel/toolchains/msvc/sysroot.bzl b/bazel/toolchains/msvc/sysroot.bzl new file mode 100644 index 000000000..054f06b57 --- /dev/null +++ b/bazel/toolchains/msvc/sysroot.bzl @@ -0,0 +1,156 @@ +"""Repository rule materializing the MSVC CRT + Windows SDK sysroot via xwin. + +Downloads a pinned xwin release binary (github.com/Jake-Shadle/xwin) for the +host that fetches the repo and runs `xwin --accept-license splat`, producing: + + splat/crt/include VC toolset headers + splat/crt/lib/x86_64 VC toolset libs (msvcrt.lib & co) + splat/sdk/include/{ucrt,um,shared,winrt,cppwinrt} + splat/sdk/lib/{ucrt,um}/x86_64 + +Cache implications: only the small xwin binary tarball goes through Bazel's +repository cache. The CRT/SDK payload (~1 GiB) is downloaded from the +Microsoft CDN by xwin itself inside this rule, so a cold fetch (clean +--expunge, sysroot.bzl edit, new output base) re-downloads it. The xwin +download cache is deleted after splatting to keep the repo at ~800 MiB. +Keep this file stable; wrapper/toolchain iteration lives in cc.bzl precisely +so it never invalidates this repo. + +Reproducibility: --manifest-version pins the VS channel (17 = VS2022), but +Microsoft advances the channel's payload over time, so the splat is stable +day-to-day, not bit-reproducible forever — same property the cargo-xwin +pipeline had. + +xwin release binaries stop shipping darwin builds after 0.6.5; 0.6.5 is the +newest version covering linux-musl + darwin hosts, which is why it is pinned. +""" + +_XWIN_VERSION = "0.6.5" +_XWIN_MANIFEST_VERSION = "17" + +# host key -> (release triple, sha256), from the published .sha256 assets. +_XWIN_DISTS = { + "linux-arm64": ("aarch64-unknown-linux-musl", "5e131007fad7c5f30d2f41090b49937fb8f16a787e5a95b4b3140e88d174dab2"), + "linux-x64": ("x86_64-unknown-linux-musl", "9fd53950b064d067f42428a69453b927656cae68dbd7f8d3f86dcb81c80dd22d"), + "macos-arm64": ("aarch64-apple-darwin", "21acd1e35d23b72efc8c47cbeda5028989f98089174b8c87074f892b65adbc01"), + "macos-x64": ("x86_64-apple-darwin", "ecb2b19b30fa3786749fae600ad60b034b0c1c6a604ecf9f35f682c23a40e54b"), +} + +def _host_key(rctx): + os_name = rctx.os.name.lower() + arch = rctx.os.arch.lower() + if os_name.startswith("linux"): + host_os = "linux" + elif os_name.startswith("mac") or os_name.startswith("darwin"): + host_os = "macos" + else: + fail("bazel/toolchains/msvc: unsupported exec host OS for xwin: " + rctx.os.name) + if arch in ("amd64", "x86_64", "x64"): + host_cpu = "x64" + elif arch in ("aarch64", "arm64"): + host_cpu = "arm64" + else: + fail("bazel/toolchains/msvc: unsupported exec host CPU for xwin: " + rctx.os.arch) + return host_os + "-" + host_cpu + +_BUILD = """\ +# Generated by //bazel/toolchains/msvc:sysroot.bzl — MSVC CRT + Windows SDK +# splatted by xwin {version} (manifest-version {manifest}). Consumed by the +# @msvc_cc wrappers via /imsvc and /libpath. + +package(default_visibility = ["//visibility:public"]) + +filegroup( + name = "crt_includes", + srcs = glob(["splat/crt/include/**"]), +) + +filegroup( + name = "crt_libs", + srcs = glob(["splat/crt/lib/**"]), +) + +filegroup( + name = "sdk_includes", + srcs = glob(["splat/sdk/include/**"]), +) + +filegroup( + name = "sdk_libs", + srcs = glob(["splat/sdk/lib/**"]), +) + +filegroup( + name = "sysroot", + srcs = [ + ":crt_includes", + ":crt_libs", + ":sdk_includes", + ":sdk_libs", + ], +) +""" + +def _xwin_sysroot_impl(rctx): + key = _host_key(rctx) + if key not in _XWIN_DISTS: + fail("bazel/toolchains/msvc: no pinned xwin release binary for host " + key) + triple, sha256 = _XWIN_DISTS[key] + prefix = "xwin-{}-{}".format(_XWIN_VERSION, triple) + rctx.download_and_extract( + url = "https://github.com/Jake-Shadle/xwin/releases/download/{}/{}.tar.gz".format(_XWIN_VERSION, prefix), + sha256 = sha256, + stripPrefix = prefix, + ) + rctx.report_progress("Splatting MSVC CRT + Windows SDK via xwin (first fetch ~1 GiB from the Microsoft CDN)") + result = rctx.execute( + [ + rctx.path("xwin"), + "--accept-license", + "--arch", + "x86_64", + "--variant", + "desktop", + "--manifest-version", + _XWIN_MANIFEST_VERSION, + "--cache-dir", + ".xwin-cache", + "splat", + "--copy", + "--output", + "splat", + ], + timeout = 3600, + ) + if result.return_code != 0: + fail("bazel/toolchains/msvc: xwin splat failed (exit {}):\n{}\n{}".format( + result.return_code, + result.stdout, + result.stderr, + )) + + # Drop the download cache (the splat is a --copy, not links into it). + rctx.delete(".xwin-cache") + + # xwin drops ` -> .` alias symlinks (e.g. sdk/lib/10.0.26100) + # so version-qualified include/lib paths resolve. They are self-referential + # directory cycles, which Bazel's glob refuses to traverse — and nothing in + # this toolchain uses version-qualified paths, so drop them. + for dirname in ("splat/sdk/include", "splat/sdk/lib", "splat/crt/lib", "splat/crt/include"): + dirpath = rctx.path(dirname) + if not dirpath.exists: + continue + for entry in dirpath.readdir(): + if entry.realpath == dirpath.realpath: + rctx.delete(entry) + + rctx.file( + "BUILD.bazel", + _BUILD.format(version = _XWIN_VERSION, manifest = _XWIN_MANIFEST_VERSION), + executable = False, + ) + +xwin_sysroot_repository = repository_rule( + implementation = _xwin_sysroot_impl, + doc = "MSVC CRT + Windows SDK sysroot splatted by a pinned xwin release.", +) diff --git a/bazel/triples/BUILD.bazel b/bazel/triples/BUILD.bazel new file mode 100644 index 000000000..97db6ef3a --- /dev/null +++ b/bazel/triples/BUILD.bazel @@ -0,0 +1,99 @@ +# Rust target-triple config_settings for crate_universe's rendered selects +# (MODULE.bazel sets platforms_template = "@@//bazel/triples:{triple}"). +# +# rules_rust's builtin @rules_rust//rust/platform settings can't express musl: +# gnu and musl triples share (os, cpu), so the libc axis rides on +# @zig_sdk//libc. The gnu settings match both the zig gnu.2.17 platforms and +# libc-unconstrained platforms (host builds, GH runners); musl requires the +# explicit constraint carried by //bazel/platforms:linux-musl-*. + +load("@bazel_skylib//lib:selects.bzl", "selects") + +package(default_visibility = ["//visibility:public"]) + +_LINUX_CPUS = { + "x86_64": "x86_64", + "aarch64": "aarch64", +} + +[ + config_setting( + name = "_linux-{}-libc-default".format(cpu), + constraint_values = [ + "@platforms//os:linux", + "@platforms//cpu:" + cv, + "@zig_sdk//libc:unconstrained", + ], + ) + for cpu, cv in _LINUX_CPUS.items() +] + +[ + config_setting( + name = "_linux-{}-libc-gnu217".format(cpu), + constraint_values = [ + "@platforms//os:linux", + "@platforms//cpu:" + cv, + "@zig_sdk//libc:gnu.2.17", + ], + ) + for cpu, cv in _LINUX_CPUS.items() +] + +selects.config_setting_group( + name = "x86_64-unknown-linux-gnu", + match_any = [ + ":_linux-x86_64-libc-default", + ":_linux-x86_64-libc-gnu217", + ], +) + +selects.config_setting_group( + name = "aarch64-unknown-linux-gnu", + match_any = [ + ":_linux-aarch64-libc-default", + ":_linux-aarch64-libc-gnu217", + ], +) + +config_setting( + name = "x86_64-unknown-linux-musl", + constraint_values = [ + "@platforms//os:linux", + "@platforms//cpu:x86_64", + "@zig_sdk//libc:musl", + ], +) + +config_setting( + name = "aarch64-unknown-linux-musl", + constraint_values = [ + "@platforms//os:linux", + "@platforms//cpu:aarch64", + "@zig_sdk//libc:musl", + ], +) + +config_setting( + name = "x86_64-apple-darwin", + constraint_values = [ + "@platforms//os:macos", + "@platforms//cpu:x86_64", + ], +) + +config_setting( + name = "aarch64-apple-darwin", + constraint_values = [ + "@platforms//os:macos", + "@platforms//cpu:arm64", + ], +) + +config_setting( + name = "x86_64-pc-windows-msvc", + constraint_values = [ + "@platforms//os:windows", + "@platforms//cpu:x86_64", + ], +) diff --git a/bazel/variants/BUILD.bazel b/bazel/variants/BUILD.bazel new file mode 100644 index 000000000..d0bcd55c3 --- /dev/null +++ b/bazel/variants/BUILD.bazel @@ -0,0 +1,26 @@ +# x64 ISA variant axis for shipped addons: `baseline` (x86-64-v2) runs on any +# 2010+ CPU, `modern` (x86-64-v3) needs AVX2. Non-x64 targets use `default`. +# The constraint rides on //bazel/platforms:* and drives -Ctarget-cpu selects +# in //crates/pi-natives. + +package(default_visibility = ["//visibility:public"]) + +constraint_setting( + name = "cpu_variant", + default_constraint_value = ":default", +) + +constraint_value( + name = "default", + constraint_setting = ":cpu_variant", +) + +constraint_value( + name = "baseline", + constraint_setting = ":cpu_variant", +) + +constraint_value( + name = "modern", + constraint_setting = ":cpu_variant", +) diff --git a/crates/pi-ast/BUILD.bazel b/crates/pi-ast/BUILD.bazel new file mode 100644 index 000000000..79368cb56 --- /dev/null +++ b/crates/pi-ast/BUILD.bazel @@ -0,0 +1,26 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +# Owns every tree-sitter grammar dependency edge (56 grammar crates + core). +rust_library( + name = "pi-ast", + srcs = glob(["src/**/*.rs"]), + aliases = aliases(), + crate_name = "pi_ast", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "17.1.5", + deps = all_crate_deps(normal = True), +) + +rust_test( + name = "pi-ast_test", + crate = ":pi-ast", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/pi-iso/BUILD.bazel b/crates/pi-iso/BUILD.bazel new file mode 100644 index 000000000..1cca5bb9b --- /dev/null +++ b/crates/pi-iso/BUILD.bazel @@ -0,0 +1,25 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "pi-iso", + srcs = glob(["src/**/*.rs"]), + aliases = aliases(), + crate_name = "pi_iso", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "17.1.5", + deps = all_crate_deps(normal = True), +) + +rust_test( + name = "pi-iso_test", + crate = ":pi-iso", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/pi-natives/BUILD.bazel b/crates/pi-natives/BUILD.bazel new file mode 100644 index 000000000..56eb22670 --- /dev/null +++ b/crates/pi-natives/BUILD.bazel @@ -0,0 +1,66 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_shared_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +# The NAPI cdylib. build.rs is intentionally not wired in: its only effects are +# napi_build::setup() link args (hardcoded in linkopts below — see napi-build +# src/lib.rs) and a vestigial no-op filter-defs scan that belongs to pi-shell. +# TypeScript typedef regeneration stays a cargo-side dev flow +# (`bun --cwd packages/natives run build:bindings`); index.js/index.d.ts are +# committed, so artifact builds never need the napi CLI. +rust_shared_library( + name = "pi_natives", + srcs = glob(["src/**/*.rs"]), + aliases = aliases(), + compile_data = glob([ + "src/syntaxes/*.sublime-syntax", + "src/fonts/*", + ]), + crate_features = [], + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + rustc_flags = select({ + "//bazel/variants:baseline": ["-Ctarget-cpu=x86-64-v2"], + "//bazel/variants:modern": ["-Ctarget-cpu=x86-64-v3"], + "//conditions:default": [], + }) + select({ + # napi_build::setup() equivalents (build.rs is not wired into Bazel): + # napi addons resolve Node symbols at load time on macOS; DF_1_NODELETE + # keeps the addon resident across Worker teardown on linux-gnu (napi + # emits it for gnu; harmless under musl's loader). windows-msvc needs + # nothing — napi-sys v3 imports node.exe via raw-dylib. + "@platforms//os:macos": ["-Clink-arg=-Wl,-undefined,dynamic_lookup"], + "@platforms//os:linux": ["-Clink-arg=-Wl,-z,nodelete"], + "//conditions:default": [], + }) + select({ + # musl defaults to +crt-static, under which rustc silently emits no + # cdylib at all; napi musl addons have always linked the dynamic CRT. + "//bazel/triples:x86_64-unknown-linux-musl": ["-Ctarget-feature=-crt-static"], + "//bazel/triples:aarch64-unknown-linux-musl": ["-Ctarget-feature=-crt-static"], + "//conditions:default": [], + }), + version = "17.1.5", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-ast", + "//crates/pi-iso", + "//crates/pi-shell", + "//crates/pi-uutils-ctx", + "//crates/pi-walker", + ], +) + +rust_test( + name = "pi_natives_test", + crate = ":pi_natives", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True) + [ + # dev-dependency on every platform (desktop_x11's pure keysym helpers + # compile under cfg(test) everywhere), but cargo-bazel folds it into + # the linux-only normal dep entry; restore it for the test build. + "@crates//:xkeysym", + ], +) diff --git a/crates/pi-shell/BUILD.bazel b/crates/pi-shell/BUILD.bazel new file mode 100644 index 000000000..3c824dc05 --- /dev/null +++ b/crates/pi-shell/BUILD.bazel @@ -0,0 +1,104 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +# build.rs concatenates src/minimizer/defs/*.toml into OUT_DIR/builtin_filters.toml, +# consumed via include_str!(concat!(env!("OUT_DIR"), ...)) in minimizer/engine.rs. +cargo_build_script( + name = "build_script", + srcs = ["build.rs"], + data = glob(["src/minimizer/defs/*.toml"]), + edition = "2024", + deps = all_crate_deps(build = True), +) + +rust_library( + name = "pi-shell", + srcs = glob(["src/**/*.rs"]), + aliases = aliases(), + compile_data = glob([ + "src/minimizer/filters/fixtures/**", + ]), + crate_name = "pi_shell", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "17.1.5", + deps = all_crate_deps(normal = True) + [ + ":build_script", + "//crates/pi-uu-diff", + "//crates/pi-uu-grep", + "//crates/pi-uutils-ctx", + "//crates/pi-walker", + "//crates/vendor/brush-builtins", + "//crates/vendor/brush-core", + "//crates/vendor/jaq", + ] + ["//crates/vendor/" + c for c in [ + "uu-b2sum", + "uu-base32", + "uu-base64", + "uu-basename", + "uu-cat", + "uu-checksum-common", + "uu-comm", + "uu-cut", + "uu-date", + "uu-dirname", + "uu-find", + "uu-head", + "uu-hostname", + "uu-ln", + "uu-ls", + "uu-md5sum", + "uu-mkdir", + "uu-mktemp", + "uu-mv", + "uu-nproc", + "uu-paste", + "uu-printenv", + "uu-readlink", + "uu-realpath", + "uu-rm", + "uu-sed", + "uu-seq", + "uu-sha1sum", + "uu-sha224sum", + "uu-sha256sum", + "uu-sha384sum", + "uu-sha512sum", + "uu-sort", + "uu-stat", + "uu-tac", + "uu-tail", + "uu-tee", + "uu-touch", + "uu-tr", + "uu-truncate", + "uu-uname", + "uu-uniq", + "uu-wc", + "uu-whoami", + "uu-xargs", + "uu-yes", + ]], +) + +rust_test( + name = "pi-shell_test", + crate = ":pi-shell", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) + +rust_test( + name = "minimizer_fixtures_test", + srcs = ["tests/minimizer_fixtures.rs"], + data = glob(["tests/fixtures/minimizer/**"]), + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True) + [":pi-shell"], +) diff --git a/crates/pi-shell/tests/minimizer_fixtures.rs b/crates/pi-shell/tests/minimizer_fixtures.rs index b2905b780..315e54ca1 100644 --- a/crates/pi-shell/tests/minimizer_fixtures.rs +++ b/crates/pi-shell/tests/minimizer_fixtures.rs @@ -169,11 +169,16 @@ fn diff_excerpt(expected: &str, actual: &str) -> String { excerpt.trim_end().to_string() } -/// Absolute path to the fixtures tree, anchored at the crate manifest dir so -/// the harness loads identically whether run as an integration test or under a -/// different working directory. +/// Absolute path to the fixtures tree. Under cargo the compile-time manifest +/// dir exists at runtime; under Bazel the compile-time sandbox path is gone, +/// so fall back to the runfiles-relative layout (test cwd is the workspace +/// runfiles root and the fixtures ride along as `data`). fn fixtures_root() -> std::path::PathBuf { - Path::new(env!("CARGO_MANIFEST_DIR")).join("tests/fixtures/minimizer") + let manifest = Path::new(env!("CARGO_MANIFEST_DIR")).join("tests/fixtures/minimizer"); + if manifest.is_dir() { + return manifest; + } + Path::new("crates/pi-shell/tests/fixtures/minimizer").to_path_buf() } /// Walk `//.cmd` and assemble each fixture with its diff --git a/crates/pi-uu-diff/BUILD.bazel b/crates/pi-uu-diff/BUILD.bazel new file mode 100644 index 000000000..b8519c252 --- /dev/null +++ b/crates/pi-uu-diff/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "pi-uu-diff", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/lib.rs", + aliases = aliases(), + crate_name = "pi_uu_diff", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "17.1.5", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "pi-uu-diff_test", + crate = ":pi-uu-diff", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/pi-uu-grep/BUILD.bazel b/crates/pi-uu-grep/BUILD.bazel new file mode 100644 index 000000000..ff57c2490 --- /dev/null +++ b/crates/pi-uu-grep/BUILD.bazel @@ -0,0 +1,29 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "pi-uu-grep", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/lib.rs", + aliases = aliases(), + crate_name = "pi_uu_grep", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "17.1.5", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + "//crates/pi-walker", + ], +) + +rust_test( + name = "pi-uu-grep_test", + crate = ":pi-uu-grep", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/pi-uutils-ctx/BUILD.bazel b/crates/pi-uutils-ctx/BUILD.bazel new file mode 100644 index 000000000..8f2805b20 --- /dev/null +++ b/crates/pi-uutils-ctx/BUILD.bazel @@ -0,0 +1,26 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "pi-uutils-ctx", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/lib.rs", + aliases = aliases(), + crate_name = "pi_uutils_ctx", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "17.1.5", + deps = all_crate_deps(normal = True), +) + +rust_test( + name = "pi-uutils-ctx_test", + crate = ":pi-uutils-ctx", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/pi-walker/BUILD.bazel b/crates/pi-walker/BUILD.bazel new file mode 100644 index 000000000..e35a3a96f --- /dev/null +++ b/crates/pi-walker/BUILD.bazel @@ -0,0 +1,39 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "pi-walker", + srcs = glob(["src/**/*.rs"]), + aliases = aliases(), + crate_name = "pi_walker", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "17.1.5", + deps = all_crate_deps(normal = True), +) + +rust_test( + name = "pi-walker_test", + crate = ":pi-walker", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) + +[ + rust_test( + name = name + "_test", + srcs = ["tests/" + name + ".rs"], + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True) + [":pi-walker"], + ) + for name in [ + "parallel", + "perf", + ] +] diff --git a/crates/vendor/brush-builtins/BUILD.bazel b/crates/vendor/brush-builtins/BUILD.bazel new file mode 100644 index 000000000..0b6458fb7 --- /dev/null +++ b/crates/vendor/brush-builtins/BUILD.bazel @@ -0,0 +1,85 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +# Vendored fork, promoted to a workspace member so Bazel treats it as +# first-party (crate_universe's path-dep rendering is machine-local and breaks +# lockfile portability). Feature list mirrors cargo's resolved default set. +rust_library( + name = "brush-builtins", + srcs = glob(["src/**/*.rs"]), + aliases = aliases(), + crate_features = [ + "builtin.alias", + "builtin.bg", + "builtin.bind", + "builtin.break", + "builtin.builtin", + "builtin.caller", + "builtin.cd", + "builtin.colon", + "builtin.command", + "builtin.compgen", + "builtin.complete", + "builtin.compopt", + "builtin.continue", + "builtin.declare", + "builtin.dirs", + "builtin.dot", + "builtin.echo", + "builtin.enable", + "builtin.eval", + "builtin.exec", + "builtin.exit", + "builtin.export", + "builtin.false", + "builtin.fc", + "builtin.fg", + "builtin.getopts", + "builtin.hash", + "builtin.help", + "builtin.history", + "builtin.jobs", + "builtin.kill", + "builtin.let", + "builtin.mapfile", + "builtin.popd", + "builtin.printf", + "builtin.pushd", + "builtin.pwd", + "builtin.read", + "builtin.return", + "builtin.set", + "builtin.shift", + "builtin.shopt", + "builtin.suspend", + "builtin.test", + "builtin.times", + "builtin.trap", + "builtin.true", + "builtin.type", + "builtin.ulimit", + "builtin.umask", + "builtin.unalias", + "builtin.unset", + "builtin.wait", + ], + crate_name = "brush_builtins", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.2.0", + deps = all_crate_deps(normal = True) + [ + "//crates/vendor/brush-core", + ], +) + +rust_test( + name = "brush-builtins_test", + crate = ":brush-builtins", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/brush-core/BUILD.bazel b/crates/vendor/brush-core/BUILD.bazel new file mode 100644 index 000000000..f1b8d8baa --- /dev/null +++ b/crates/vendor/brush-core/BUILD.bazel @@ -0,0 +1,29 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +# Vendored fork, promoted to a workspace member so Bazel treats it as +# first-party (crate_universe's path-dep rendering is machine-local and breaks +# lockfile portability). Feature list mirrors cargo's resolved default set. +rust_library( + name = "brush-core", + srcs = glob(["src/**/*.rs"]), + aliases = aliases(), + crate_features = [], + crate_name = "brush_core", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.5.0", + deps = all_crate_deps(normal = True), +) + +rust_test( + name = "brush-core_test", + crate = ":brush-core", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/jaq/BUILD.bazel b/crates/vendor/jaq/BUILD.bazel new file mode 100644 index 000000000..db83489a4 --- /dev/null +++ b/crates/vendor/jaq/BUILD.bazel @@ -0,0 +1,29 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "jaq", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/lib.rs", + aliases = aliases(), + compile_data = ["src/help.txt"], + crate_name = "jaq", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "2.3.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "jaq_test", + crate = ":jaq", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-b2sum/BUILD.bazel b/crates/vendor/uu-b2sum/BUILD.bazel new file mode 100644 index 000000000..9a8e23104 --- /dev/null +++ b/crates/vendor/uu-b2sum/BUILD.bazel @@ -0,0 +1,22 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-b2sum", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/b2sum.rs", + aliases = aliases(), + crate_name = "uu_b2sum", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + "//crates/vendor/uu-checksum-common", + ], +) + diff --git a/crates/vendor/uu-base32/BUILD.bazel b/crates/vendor/uu-base32/BUILD.bazel new file mode 100644 index 000000000..8ff98f45c --- /dev/null +++ b/crates/vendor/uu-base32/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-base32", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/base32.rs", + aliases = aliases(), + crate_name = "uu_base32", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-base32_test", + crate = ":uu-base32", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-base64/BUILD.bazel b/crates/vendor/uu-base64/BUILD.bazel new file mode 100644 index 000000000..d53d8b207 --- /dev/null +++ b/crates/vendor/uu-base64/BUILD.bazel @@ -0,0 +1,29 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-base64", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/base64.rs", + aliases = aliases(), + crate_name = "uu_base64", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + "//crates/vendor/uu-base32", + ], +) + +rust_test( + name = "uu-base64_test", + crate = ":uu-base64", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-basename/BUILD.bazel b/crates/vendor/uu-basename/BUILD.bazel new file mode 100644 index 000000000..03553ef30 --- /dev/null +++ b/crates/vendor/uu-basename/BUILD.bazel @@ -0,0 +1,21 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-basename", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/basename.rs", + aliases = aliases(), + crate_name = "uu_basename", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + diff --git a/crates/vendor/uu-cat/BUILD.bazel b/crates/vendor/uu-cat/BUILD.bazel new file mode 100644 index 000000000..f650777c6 --- /dev/null +++ b/crates/vendor/uu-cat/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-cat", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/cat.rs", + aliases = aliases(), + crate_name = "uu_cat", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-cat_test", + crate = ":uu-cat", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-checksum-common/BUILD.bazel b/crates/vendor/uu-checksum-common/BUILD.bazel new file mode 100644 index 000000000..41140e158 --- /dev/null +++ b/crates/vendor/uu-checksum-common/BUILD.bazel @@ -0,0 +1,21 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-checksum-common", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/lib.rs", + aliases = aliases(), + crate_name = "uu_checksum_common", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + diff --git a/crates/vendor/uu-comm/BUILD.bazel b/crates/vendor/uu-comm/BUILD.bazel new file mode 100644 index 000000000..8b0f0e3ba --- /dev/null +++ b/crates/vendor/uu-comm/BUILD.bazel @@ -0,0 +1,21 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-comm", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/comm.rs", + aliases = aliases(), + crate_name = "uu_comm", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + diff --git a/crates/vendor/uu-cut/BUILD.bazel b/crates/vendor/uu-cut/BUILD.bazel new file mode 100644 index 000000000..3e5149054 --- /dev/null +++ b/crates/vendor/uu-cut/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-cut", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/cut.rs", + aliases = aliases(), + crate_name = "uu_cut", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-cut_test", + crate = ":uu-cut", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-date/BUILD.bazel b/crates/vendor/uu-date/BUILD.bazel new file mode 100644 index 000000000..b95737a58 --- /dev/null +++ b/crates/vendor/uu-date/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-date", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/date.rs", + aliases = aliases(), + crate_name = "uu_date", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-date_test", + crate = ":uu-date", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-dirname/BUILD.bazel b/crates/vendor/uu-dirname/BUILD.bazel new file mode 100644 index 000000000..e40ffb71a --- /dev/null +++ b/crates/vendor/uu-dirname/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-dirname", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/dirname.rs", + aliases = aliases(), + crate_name = "uu_dirname", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-dirname_test", + crate = ":uu-dirname", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-find/BUILD.bazel b/crates/vendor/uu-find/BUILD.bazel new file mode 100644 index 000000000..e7dc4259a --- /dev/null +++ b/crates/vendor/uu-find/BUILD.bazel @@ -0,0 +1,45 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-find", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/lib.rs", + aliases = aliases(), + crate_name = "uu_find", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + "//crates/pi-walker", + ], +) + +# Unit tests assume cargo's cwd (bare `test_data/...` paths) and create +# symlinks inside the source tree — incompatible with Bazel's runfiles +# execution. Run them via `cargo nextest` when touching this vendored fork; +# bsd_compat_test below covers the CLI contract hermetically. +rust_test( + name = "uu-find_test", + crate = ":uu-find", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + tags = ["manual"], + deps = all_crate_deps(normal_dev = True), +) + +rust_test( + name = "bsd_compat_test", + srcs = ["tests/bsd_compat.rs"], + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True) + [ + ":uu-find", + "//crates/pi-uutils-ctx", + ], +) diff --git a/crates/vendor/uu-head/BUILD.bazel b/crates/vendor/uu-head/BUILD.bazel new file mode 100644 index 000000000..fdb306aef --- /dev/null +++ b/crates/vendor/uu-head/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-head", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/head.rs", + aliases = aliases(), + crate_name = "uu_head", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-head_test", + crate = ":uu-head", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-hostname/BUILD.bazel b/crates/vendor/uu-hostname/BUILD.bazel new file mode 100644 index 000000000..7f4fb98e8 --- /dev/null +++ b/crates/vendor/uu-hostname/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-hostname", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/hostname.rs", + aliases = aliases(), + crate_name = "uu_hostname", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-hostname_test", + crate = ":uu-hostname", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-ln/BUILD.bazel b/crates/vendor/uu-ln/BUILD.bazel new file mode 100644 index 000000000..ede22d695 --- /dev/null +++ b/crates/vendor/uu-ln/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-ln", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/ln.rs", + aliases = aliases(), + crate_name = "uu_ln", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-ln_test", + crate = ":uu-ln", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-ls/BUILD.bazel b/crates/vendor/uu-ls/BUILD.bazel new file mode 100644 index 000000000..ba191558f --- /dev/null +++ b/crates/vendor/uu-ls/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-ls", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/ls.rs", + aliases = aliases(), + crate_name = "uu_ls", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-ls_test", + crate = ":uu-ls", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-md5sum/BUILD.bazel b/crates/vendor/uu-md5sum/BUILD.bazel new file mode 100644 index 000000000..0bbe81c8e --- /dev/null +++ b/crates/vendor/uu-md5sum/BUILD.bazel @@ -0,0 +1,21 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-md5sum", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/md5sum.rs", + aliases = aliases(), + crate_name = "uu_md5sum", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/vendor/uu-checksum-common", + ], +) + diff --git a/crates/vendor/uu-mkdir/BUILD.bazel b/crates/vendor/uu-mkdir/BUILD.bazel new file mode 100644 index 000000000..b5bcb7652 --- /dev/null +++ b/crates/vendor/uu-mkdir/BUILD.bazel @@ -0,0 +1,21 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-mkdir", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/mkdir.rs", + aliases = aliases(), + crate_name = "uu_mkdir", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + diff --git a/crates/vendor/uu-mktemp/BUILD.bazel b/crates/vendor/uu-mktemp/BUILD.bazel new file mode 100644 index 000000000..1ea6da8e3 --- /dev/null +++ b/crates/vendor/uu-mktemp/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-mktemp", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/mktemp.rs", + aliases = aliases(), + crate_name = "uu_mktemp", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-mktemp_test", + crate = ":uu-mktemp", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-mv/BUILD.bazel b/crates/vendor/uu-mv/BUILD.bazel new file mode 100644 index 000000000..ddc83ced1 --- /dev/null +++ b/crates/vendor/uu-mv/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-mv", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/mv.rs", + aliases = aliases(), + crate_name = "uu_mv", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-mv_test", + crate = ":uu-mv", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-nproc/BUILD.bazel b/crates/vendor/uu-nproc/BUILD.bazel new file mode 100644 index 000000000..c5c24a922 --- /dev/null +++ b/crates/vendor/uu-nproc/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-nproc", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/nproc.rs", + aliases = aliases(), + crate_name = "uu_nproc", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-nproc_test", + crate = ":uu-nproc", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-paste/BUILD.bazel b/crates/vendor/uu-paste/BUILD.bazel new file mode 100644 index 000000000..591763f58 --- /dev/null +++ b/crates/vendor/uu-paste/BUILD.bazel @@ -0,0 +1,21 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-paste", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/paste.rs", + aliases = aliases(), + crate_name = "uu_paste", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + diff --git a/crates/vendor/uu-printenv/BUILD.bazel b/crates/vendor/uu-printenv/BUILD.bazel new file mode 100644 index 000000000..35da08e1a --- /dev/null +++ b/crates/vendor/uu-printenv/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-printenv", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/printenv.rs", + aliases = aliases(), + crate_name = "uu_printenv", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-printenv_test", + crate = ":uu-printenv", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-readlink/BUILD.bazel b/crates/vendor/uu-readlink/BUILD.bazel new file mode 100644 index 000000000..ec4b5cb0f --- /dev/null +++ b/crates/vendor/uu-readlink/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-readlink", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/readlink.rs", + aliases = aliases(), + crate_name = "uu_readlink", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-readlink_test", + crate = ":uu-readlink", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-realpath/BUILD.bazel b/crates/vendor/uu-realpath/BUILD.bazel new file mode 100644 index 000000000..40f052de1 --- /dev/null +++ b/crates/vendor/uu-realpath/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-realpath", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/realpath.rs", + aliases = aliases(), + crate_name = "uu_realpath", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-realpath_test", + crate = ":uu-realpath", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-rm/BUILD.bazel b/crates/vendor/uu-rm/BUILD.bazel new file mode 100644 index 000000000..1beb7475e --- /dev/null +++ b/crates/vendor/uu-rm/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-rm", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/rm.rs", + aliases = aliases(), + crate_name = "uu_rm", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-rm_test", + crate = ":uu-rm", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-sed/BUILD.bazel b/crates/vendor/uu-sed/BUILD.bazel new file mode 100644 index 000000000..516d4651a --- /dev/null +++ b/crates/vendor/uu-sed/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-sed", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/lib.rs", + aliases = aliases(), + crate_name = "uu_sed", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.1.1", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-sed_test", + crate = ":uu-sed", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-seq/BUILD.bazel b/crates/vendor/uu-seq/BUILD.bazel new file mode 100644 index 000000000..25ba81002 --- /dev/null +++ b/crates/vendor/uu-seq/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-seq", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/seq.rs", + aliases = aliases(), + crate_name = "uu_seq", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-seq_test", + crate = ":uu-seq", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-sha1sum/BUILD.bazel b/crates/vendor/uu-sha1sum/BUILD.bazel new file mode 100644 index 000000000..bbb84d839 --- /dev/null +++ b/crates/vendor/uu-sha1sum/BUILD.bazel @@ -0,0 +1,22 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-sha1sum", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/sha1sum.rs", + aliases = aliases(), + crate_name = "uu_sha1sum", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + "//crates/vendor/uu-checksum-common", + ], +) + diff --git a/crates/vendor/uu-sha224sum/BUILD.bazel b/crates/vendor/uu-sha224sum/BUILD.bazel new file mode 100644 index 000000000..bdfda2c25 --- /dev/null +++ b/crates/vendor/uu-sha224sum/BUILD.bazel @@ -0,0 +1,22 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-sha224sum", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/sha224sum.rs", + aliases = aliases(), + crate_name = "uu_sha224sum", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + "//crates/vendor/uu-checksum-common", + ], +) + diff --git a/crates/vendor/uu-sha256sum/BUILD.bazel b/crates/vendor/uu-sha256sum/BUILD.bazel new file mode 100644 index 000000000..0aabb0726 --- /dev/null +++ b/crates/vendor/uu-sha256sum/BUILD.bazel @@ -0,0 +1,22 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-sha256sum", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/sha256sum.rs", + aliases = aliases(), + crate_name = "uu_sha256sum", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + "//crates/vendor/uu-checksum-common", + ], +) + diff --git a/crates/vendor/uu-sha384sum/BUILD.bazel b/crates/vendor/uu-sha384sum/BUILD.bazel new file mode 100644 index 000000000..e9d3a57b4 --- /dev/null +++ b/crates/vendor/uu-sha384sum/BUILD.bazel @@ -0,0 +1,22 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-sha384sum", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/sha384sum.rs", + aliases = aliases(), + crate_name = "uu_sha384sum", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + "//crates/vendor/uu-checksum-common", + ], +) + diff --git a/crates/vendor/uu-sha512sum/BUILD.bazel b/crates/vendor/uu-sha512sum/BUILD.bazel new file mode 100644 index 000000000..39d820742 --- /dev/null +++ b/crates/vendor/uu-sha512sum/BUILD.bazel @@ -0,0 +1,22 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-sha512sum", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/sha512sum.rs", + aliases = aliases(), + crate_name = "uu_sha512sum", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + "//crates/vendor/uu-checksum-common", + ], +) + diff --git a/crates/vendor/uu-sort/BUILD.bazel b/crates/vendor/uu-sort/BUILD.bazel new file mode 100644 index 000000000..29da79fec --- /dev/null +++ b/crates/vendor/uu-sort/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-sort", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/sort.rs", + aliases = aliases(), + crate_name = "uu_sort", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-sort_test", + crate = ":uu-sort", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-sort/src/ext_sort/threaded.rs b/crates/vendor/uu-sort/src/ext_sort/threaded.rs index 879d88839..9efce0ebf 100644 --- a/crates/vendor/uu-sort/src/ext_sort/threaded.rs +++ b/crates/vendor/uu-sort/src/ext_sort/threaded.rs @@ -109,9 +109,8 @@ pub fn ext_sort( // exit 0 with truncated or empty output. match sorter_handle.join() { Ok(()) => result, - Err(_) => { - result.and(Err(USimpleError::new(2, "sort: sorter thread terminated unexpectedly".to_string()))) - }, + Err(_) => result + .and(Err(USimpleError::new(2, "sort: sorter thread terminated unexpectedly".to_string()))), } } @@ -320,10 +319,10 @@ mod tests { use super::*; /// External (multi-chunk) sort must run to completion and emit fully sorted - /// output. Regression guard for #6760: `ext_sort` now joins the sorter thread - /// after `read_write_loop`. A tiny explicit buffer forces spilling to - /// temporary files, so the join runs on the `WroteChunksToFile` path — it - /// must surface sorted output rather than deadlock or truncate. + /// output. Regression guard for #6760: `ext_sort` now joins the sorter + /// thread after `read_write_loop`. A tiny explicit buffer forces spilling + /// to temporary files, so the join runs on the `WroteChunksToFile` path — + /// it must surface sorted output rather than deadlock or truncate. #[test] fn ext_sort_spills_to_files_and_sorts() { let input: String = (0..200u32).rev().map(|i| format!("{i:04}\n")).collect(); @@ -335,9 +334,8 @@ mod tests { let out_dir = tempfile::tempdir().expect("temp dir"); let out_path = out_dir.path().join("sorted.txt"); - let mut files = std::iter::once(Ok( - Box::new(Cursor::new(input.into_bytes())) as Box, - )); + let mut files = + std::iter::once(Ok(Box::new(Cursor::new(input.into_bytes())) as Box)); let output = Output::new(Some(out_path.as_os_str())).expect("open output"); let mut tmp_dir = TmpDirWrapper::new(std::env::temp_dir()); diff --git a/crates/vendor/uu-stat/BUILD.bazel b/crates/vendor/uu-stat/BUILD.bazel new file mode 100644 index 000000000..2c2596f0d --- /dev/null +++ b/crates/vendor/uu-stat/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-stat", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/stat.rs", + aliases = aliases(), + crate_name = "uu_stat", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-stat_test", + crate = ":uu-stat", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-tac/BUILD.bazel b/crates/vendor/uu-tac/BUILD.bazel new file mode 100644 index 000000000..cf879da2a --- /dev/null +++ b/crates/vendor/uu-tac/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-tac", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/tac.rs", + aliases = aliases(), + crate_name = "uu_tac", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-tac_test", + crate = ":uu-tac", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-tail/BUILD.bazel b/crates/vendor/uu-tail/BUILD.bazel new file mode 100644 index 000000000..2a07e3cf2 --- /dev/null +++ b/crates/vendor/uu-tail/BUILD.bazel @@ -0,0 +1,31 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-tail", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/tail.rs", + aliases = aliases(), + crate_name = "uu_tail", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + "//crates/vendor/uu-tac", + ], +) + +rust_test( + name = "uu-tail_test", + # rstest's macro verifies Cargo.toml exists in the manifest dir. + compile_data = ["Cargo.toml"], + crate = ":uu-tail", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-tee/BUILD.bazel b/crates/vendor/uu-tee/BUILD.bazel new file mode 100644 index 000000000..7d69e9789 --- /dev/null +++ b/crates/vendor/uu-tee/BUILD.bazel @@ -0,0 +1,21 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-tee", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/tee.rs", + aliases = aliases(), + crate_name = "uu_tee", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + diff --git a/crates/vendor/uu-touch/BUILD.bazel b/crates/vendor/uu-touch/BUILD.bazel new file mode 100644 index 000000000..486516c4e --- /dev/null +++ b/crates/vendor/uu-touch/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-touch", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/touch.rs", + aliases = aliases(), + crate_name = "uu_touch", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-touch_test", + crate = ":uu-touch", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-tr/BUILD.bazel b/crates/vendor/uu-tr/BUILD.bazel new file mode 100644 index 000000000..8493ed4b2 --- /dev/null +++ b/crates/vendor/uu-tr/BUILD.bazel @@ -0,0 +1,21 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-tr", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/tr.rs", + aliases = aliases(), + crate_name = "uu_tr", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + diff --git a/crates/vendor/uu-truncate/BUILD.bazel b/crates/vendor/uu-truncate/BUILD.bazel new file mode 100644 index 000000000..8363a73e3 --- /dev/null +++ b/crates/vendor/uu-truncate/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-truncate", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/truncate.rs", + aliases = aliases(), + crate_name = "uu_truncate", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-truncate_test", + crate = ":uu-truncate", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-uname/BUILD.bazel b/crates/vendor/uu-uname/BUILD.bazel new file mode 100644 index 000000000..cb85a0d3c --- /dev/null +++ b/crates/vendor/uu-uname/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-uname", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/uname.rs", + aliases = aliases(), + crate_name = "uu_uname", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-uname_test", + crate = ":uu-uname", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-uniq/BUILD.bazel b/crates/vendor/uu-uniq/BUILD.bazel new file mode 100644 index 000000000..3b8c6038a --- /dev/null +++ b/crates/vendor/uu-uniq/BUILD.bazel @@ -0,0 +1,21 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-uniq", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/uniq.rs", + aliases = aliases(), + crate_name = "uu_uniq", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + diff --git a/crates/vendor/uu-wc/BUILD.bazel b/crates/vendor/uu-wc/BUILD.bazel new file mode 100644 index 000000000..e916429b1 --- /dev/null +++ b/crates/vendor/uu-wc/BUILD.bazel @@ -0,0 +1,21 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-wc", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/wc.rs", + aliases = aliases(), + crate_name = "uu_wc", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + diff --git a/crates/vendor/uu-whoami/BUILD.bazel b/crates/vendor/uu-whoami/BUILD.bazel new file mode 100644 index 000000000..3351fb527 --- /dev/null +++ b/crates/vendor/uu-whoami/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-whoami", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/whoami.rs", + aliases = aliases(), + crate_name = "uu_whoami", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-whoami_test", + crate = ":uu-whoami", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-xargs/BUILD.bazel b/crates/vendor/uu-xargs/BUILD.bazel new file mode 100644 index 000000000..f504b6776 --- /dev/null +++ b/crates/vendor/uu-xargs/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-xargs", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/lib.rs", + aliases = aliases(), + crate_name = "uu_xargs", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-xargs_test", + crate = ":uu-xargs", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/crates/vendor/uu-yes/BUILD.bazel b/crates/vendor/uu-yes/BUILD.bazel new file mode 100644 index 000000000..3f7a33b39 --- /dev/null +++ b/crates/vendor/uu-yes/BUILD.bazel @@ -0,0 +1,28 @@ +load("@crates//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["Cargo.toml"]) + +rust_library( + name = "uu-yes", + srcs = glob(["src/**/*.rs"]), + crate_root = "src/yes.rs", + aliases = aliases(), + crate_name = "uu_yes", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro = True), + version = "0.8.0", + deps = all_crate_deps(normal = True) + [ + "//crates/pi-uutils-ctx", + ], +) + +rust_test( + name = "uu-yes_test", + crate = ":uu-yes", + edition = "2024", + proc_macro_deps = all_crate_deps(proc_macro_dev = True), + deps = all_crate_deps(normal_dev = True), +) diff --git a/docs/natives-build-release-debugging.md b/docs/natives-build-release-debugging.md index 7aca9d3d7..3b4443dd5 100644 --- a/docs/natives-build-release-debugging.md +++ b/docs/natives-build-release-debugging.md @@ -2,61 +2,229 @@ This runbook describes how `@oh-my-pi/pi-natives` produces `.node` addons, generated declarations, and compiled-binary embedded payloads, and how to debug loader/build failures. +Addon **artifacts are built by Bazel** (`rules_rust` + `crate_universe` + hermetic cc toolchains); the cargo workspace stays authoritative for local Rust iteration (rust-analyzer, `cargo nextest`) and for napi typedef regeneration. Runtime loading and embedding are unchanged. + It follows the architecture terms from `docs/natives-architecture.md`: -- **build-time artifact production** (`scripts/build-native.ts`) +- **build-time artifact production** (Bazel `//:natives-` via `scripts/bazel-natives.ts`) - **embedded addon manifest generation** (`scripts/embed-native.ts`) - **runtime addon loading** (`native/index.js`, `native/loader-state.js`) ## Implementation files -- `packages/natives/scripts/build-native.ts` -- `packages/natives/scripts/embed-native.ts` -- `packages/natives/scripts/gen-enums.ts` +Build side: + +- `BUILD.bazel` (root) — the eight `//:natives-` addon targets + aggregate filegroups +- `bazel/defs.bzl` — the `native_addon` rule/transition +- `bazel/platforms/BUILD.bazel` — one `platform()` per shipped addon +- `bazel/variants/BUILD.bazel` — `baseline`/`modern` ISA constraint values +- `bazel/toolchains/` — musl rustc disambiguation + the msvc cross cc toolchain (`msvc/NOTES.md`) +- `bazel/clippy.bazelrc` — generated from `[workspace.lints]` in `Cargo.toml` +- `MODULE.bazel`, `.bazelrc`, `.bazelversion` (Bazel 9.2.0), `Cargo.Bazel.lock` +- `scripts/bazel-natives.ts` — the canonical driver (build + locate + install) +- `crates/pi-natives/BUILD.bazel`, `crates/pi-natives/Cargo.toml` + +Package side (unchanged runtime/packaging): + +- `packages/natives/scripts/build-bindings.ts` — dev-only typedef regeneration +- `packages/natives/scripts/embed-native.ts`, `gen-enums.ts`, `gen-npm-packages.ts` - `packages/natives/package.json` -- `packages/natives/native/index.js` -- `packages/natives/native/loader-state.js` -- `crates/pi-natives/Cargo.toml` +- `packages/natives/native/index.js`, `native/loader-state.js` -## Build pipeline overview +## Build architecture -### 1) Build entrypoints +### 1) `//:natives-` addon targets -`packages/natives/package.json` scripts: +Root `BUILD.bazel` instantiates one `native_addon` per shipped `(platform, arch, ISA-variant)`: -- `bun scripts/build-native.ts` (`build`) → N-API build, addon install, generated declarations install, explicit ESM export and enum runtime patch. -- `bun scripts/embed-native.ts` (`gen:native`) → generate `native/embedded-addon.js` plus `native/embedded-addons..tar.gz` from built files. -- `bun scripts/gen-npm-packages.ts` (`gen:npm`) → generate per-platform npm leaf packages (`@oh-my-pi/pi-natives--`, installed as optional dependencies of the core package) under `npm/` from built addon files. +| Target | Platform | Canonical output | +| --------------------------------- | --------------------------------------- | ------------------------------------ | +| `//:natives-linux-x64-baseline` | `//bazel/platforms:linux-x64-baseline` | `pi_natives.linux-x64-baseline.node` | +| `//:natives-linux-x64-modern` | `//bazel/platforms:linux-x64-modern` | `pi_natives.linux-x64-modern.node` | +| `//:natives-linux-arm64` | `//bazel/platforms:linux-arm64` | `pi_natives.linux-arm64.node` | +| `//:natives-linux-musl-x64-baseline` | `//bazel/platforms:linux-musl-x64-baseline` | `pi_natives.linux-x64-baseline.node` | +| `//:natives-linux-musl-arm64` | `//bazel/platforms:linux-musl-arm64` | `pi_natives.linux-arm64.node` | +| `//:natives-darwin-x64-baseline` | `//bazel/platforms:darwin-x64-baseline` | `pi_natives.darwin-x64-baseline.node` | +| `//:natives-darwin-arm64` | `//bazel/platforms:darwin-arm64` | `pi_natives.darwin-arm64.node` | +| `//:natives-win32-x64-baseline` | `//bazel/platforms:win32-x64-baseline` | `pi_natives.win32-x64-baseline.node` | -Root scripts include `build:native` as `bun --cwd=packages/natives run build`. +Notes: -### 2) N-API/Rust artifact build +- musl addons **intentionally reuse** the plain `linux-` filenames — the loader never sees gnu and musl side by side; release jobs keep them in separate invocations/dest dirs (`scripts/bazel-natives.ts` hard-errors on a basename collision within one run). +- Aggregates: `//:natives-linux-all` (all linux targets + the msvc cross build, i.e. everything buildable from a linux-x64 host) and `//:natives-darwin-all` (mac hosts only). -`build-native.ts` invokes the `@napi-rs/cli` binary directly from `node_modules/.bin` with: +### 2) `native_addon` rule (`bazel/defs.bzl`) -- `napi build` -- `--manifest-path crates/pi-natives/Cargo.toml` -- `--package-json-path packages/natives/package.json` -- `--platform` -- `--no-js` -- `--dts index.d.ts` -- `--profile local` for non-CI local native builds, otherwise `--profile ci` -- `-o ` -- optional `--target ` plus `--cross-compile` (napi picks the `cargo-zigbuild` or `cargo-xwin` backend from the target) for cross builds +`native_addon` wraps `//crates/pi-natives:pi_natives` (a `rust_shared_library`) in a configuration transition that pins, per target: -`crates/pi-natives/Cargo.toml` declares `crate-type = ["cdylib"]`; napi-rs emits `.node` artifacts plus generated `index.d.ts` in an isolated temporary output directory under `packages/natives/native/.build/`. +- `--platforms=` +- `--compilation_mode=opt` +- `@rules_rust//rust/settings:lto=thin` +- extra rustc flags `-Ccodegen-units=16 -Cstrip=symbols` -### 3) Artifact install +This mirrors the old cargo `ci` profile. Because the profile lives **in the transition**, a bare `bazel build //:natives-` is always release-grade regardless of `-c`, and every addon shares one cache entry per (platform, source) pair. The rule then symlinks the produced shared library to the loader's canonical `pi_natives.-[-].node` name, scoped under the rule name (`bazel-bin/natives-/…`) so gnu/musl outputs with identical basenames cannot collide at the package level. -After napi-rs succeeds, `build-native.ts`: +Per-target codegen that is not part of the transition lives in `crates/pi-natives/BUILD.bazel` `rustc_flags` selects: `-Ctarget-cpu=x86-64-v2` (baseline) / `x86-64-v3` (modern) via `//bazel/variants`, the napi link args (`-Wl,-undefined,dynamic_lookup` on macOS, `-Wl,-z,nodelete` on linux — `build.rs`/`napi_build::setup()` is deliberately not wired in), and `-Ctarget-feature=-crt-static` for musl. -1. resolves the built addon in the isolated output directory; -2. normalizes its name to `pi_natives.-(-variant).node` when needed; -3. installs the addon into `packages/natives/native/` with temp-file + rename semantics; -4. copies generated `index.d.ts` into `packages/natives/native/`; -5. runs `generateEnumExports()` to render explicit named ESM exports for classes/functions and runtime enum objects in the checked-in `native/index.js`. +### 3) Platforms and toolchains -Windows locked-DLL update failures are handled at runtime by staging install candidates into the versioned native cache; install/rename failures during local builds still include explicit file-operation diagnostics. +| Target family | cc toolchain | Notes | +| --- | --- | --- | +| linux gnu (x64/arm64) | `@zig_sdk//libc_aware/toolchain:linux_*_gnu.2.17` (hermetic zig cc) | glibc **2.17** portability floor — same floor the previous cross builds used | +| linux musl (x64/arm64) | `@zig_sdk//libc_aware/toolchain:linux_*_musl` | dynamic CRT (`-Ctarget-feature=-crt-static` in the crate BUILD) | +| darwin (x64/arm64) | host Xcode toolchain | Apple frameworks aren't redistributable; darwin addons build on mac hosts only | +| win32-x64 msvc | `//bazel/toolchains/msvc` (`@msvc_cc`): clang-cl + lld-link + xwin CRT/SDK | hermetic cross-link from linux-x64 CI pods and darwin dev hosts; see `bazel/toolchains/msvc/NOTES.md` | + +Rust toolchains are nightly (pinned in `MODULE.bazel`), with repo-local musl re-registrations in `//bazel/toolchains` carrying an explicit `@zig_sdk//libc:musl` constraint (rules_rust's generated gnu and musl toolchains otherwise share (os, cpu) constraints). + +### 4) Third-party crates (`crate_universe`) + +`@crates//...` is generated from the workspace `Cargo.toml`/`Cargo.lock` (lockfile: `Cargo.Bazel.lock`), restricted to exactly the seven shipped triples. Crate-specific build fixes live as `crate.annotation`s in `MODULE.bazel` (see the debugging playbook below). + +**Repin flow:** after any `Cargo.toml`/`Cargo.lock` change (or annotation edit), run + +```bash +bun run bazel:repin # = CARGO_BAZEL_REPIN=1 bazelisk fetch @crates//... +``` + +and commit the updated `Cargo.Bazel.lock`. A stale lockfile fails analysis with a "lockfile out of date" style error. + +## Local development + +### Building addons + +```bash +# Addon for the current host (x64 hosts pick modern vs baseline via AVX2 detection), +# installed into packages/natives/native/: +bun --cwd=packages/natives run build # = bun ../../scripts/bazel-natives.ts host --dest native +# same, from the repo root: +bun run build:native + +# The driver directly — targets are //:natives-* names plus pseudo-targets +# host / linux-all / darwin-all: +bun scripts/bazel-natives.ts ... [--dest ] [-- ] +bun scripts/bazel-natives.ts linux-x64-baseline linux-x64-modern --dest packages/natives/native +bun scripts/bazel-natives.ts darwin-all + +# Or bazelisk directly (outputs stay in bazel-bin, nothing is installed): +bazelisk build //:natives-darwin-arm64 +bazelisk build //:natives-linux-all +``` + +The driver runs one `bazel build` for all requested targets, locates outputs via `bazel cquery --output=files` (falling back to the `bazel-bin/natives-/.node` path convention), and copies them dereferenced into `--dest` (default `packages/natives/native`). Extra args after `--` go to bazel verbatim. It resolves `bazelisk` (or `bazel`) from `PATH` and honors an `OMP_BAZEL_RC` env var as a `--bazelrc=` startup option (that's how CI injects cache wiring). + +Building `linux-all` into one dest would clobber gnu addons with musl ones (shared basenames) — the driver refuses; use separate invocations with separate `--dest` dirs. + +### Typedef regeneration (napi CLI, dev-only) + +`native/index.js`/`index.d.ts` are **committed**, so Bazel artifact builds never need the napi CLI. Only when the Rust API surface changes its exported typedefs: + +```bash +bun --cwd=packages/natives run build:bindings # = bun scripts/build-bindings.ts +``` + +This runs the napi CLI (host-only, local cargo profile) against `crates/pi-natives`, installs the regenerated `index.d.ts`, normalizes the addon filename, and re-renders the explicit ESM exports + runtime enum objects via `gen-enums.ts`. Commit the resulting `index.js`/`index.d.ts` changes. + +### Opt-in remote cache (`.bazelrc.user`) + +`.bazelrc` ends with `try-import %workspace%/.bazelrc.user` (gitignored). The bazel-remote endpoint is cluster-internal only; if you can reach it (VPN/tailnet), wire it read-only: + +``` +# .bazelrc.user +build --config=cache-ro +build --remote_cache=grpcs://bazel-remote.bazel-cache.svc.cluster.local:9092 +build --tls_certificate=infra/bazel-remote/ca.crt +``` + +`cache-ro`/`cache-rw` in `.bazelrc` carry only policy (upload on/off, `--remote_local_fallback`, retries/timeout so a cache outage never fails the build); endpoint + credentials are always composed by the consumer. A plain `--disk_cache=` line also works fine here. + +## CI + +### `rust` job (validate + cache warm) + +`.github/workflows/ci.yml` `rust` runs on `omp-kata` pods for pushes and `ubuntu-22.04` for PRs, composes cache wiring via the `bazel-cache` action, then: + +```bash +bazelisk --bazelrc="$rc" test //crates/... # full Rust suite +# clippy scope mirrors `cargo clippy --workspace` (libraries only), split by +# lint policy via a query kind filter: +bazelisk query "kind('rust_library|rust_shared_library', //crates/pi-ast/... + //crates/pi-iso/... + //crates/pi-natives/... + //crates/pi-shell/... + //crates/pi-walker/...)" \ + | xargs bazelisk --bazelrc="$rc" build --config=clippy-strict -- +bazelisk query "kind('rust_library|rust_shared_library', //crates/... - (…strict set…) - //crates/vendor/brush-core/... - //crates/vendor/brush-builtins/...)" \ + | xargs bazelisk --bazelrc="$rc" build --config=clippy -- +bazelisk --bazelrc="$rc" build --config=rustfmt //crates/... +``` + +- `--config=clippy` = rules_rust clippy aspect + `-Dwarnings`; `--config=clippy-strict` layers the generated `bazel/clippy.bazelrc` (rendered from `[workspace.lints]` in `Cargo.toml` — regenerate it when workspace lints change) for the crates with `[lints] workspace = true`. +- `--config=rustfmt` = rustfmt aspect against the workspace `rustfmt.toml`. +- On main pushes (read-write cache) the job additionally runs `bazelisk build //:natives-linux-all` to warm the shared cache for every downstream job. + +No toolchain setup steps: bazelisk is on the GitHub images and baked into the kata runner image; Bazel fetches Rust/zig/LLVM/xwin hermetically. + +### `bazel-cache` action (`.github/actions/bazel-cache`) + +Single source of truth for cache wiring, emitted as a bazelrc fragment (its `rc` output) that consumers pass via `bazelisk --bazelrc=...` (or `OMP_BAZEL_RC` for the driver). Two modes, detected via `BAZEL_REMOTE_USER`/`BAZEL_REMOTE_PASSWORD` (injected from the `bazel-remote-ci` secret on kata pods only): + +| Runner | Fragment contents | +| --- | --- | +| omp-kata pod | `--config=ci --config=cache-rw --remote_cache=grpcs://bazel-remote.bazel-cache.svc.cluster.local:9092 --tls_certificate=infra/bazel-remote/ca.crt --remote_header='authorization=Basic '` | +| GitHub-hosted | `--config=ci --disk_cache=~/.cache/omp-bazel-disk --repository_cache=~/.cache/omp-bazel-repo`, persisted by `actions/cache` keyed on `bazel-disk----` | + +The remote endpoint resolves **only inside the cluster** (see `infra/bazel-remote/` and `infra/docs/04-arc-and-caching.md` §5); GitHub-hosted runners never talk to it. The `scope` input separates disk-cache keys per target set (`linux-x64-pair`, `release-`, …) so jobs don't evict each other's entries. + +### `bazel-natives` action (`.github/actions/bazel-natives`) + +Thin composite: `bazel-cache` (with `cache-scope`) → `OMP_BAZEL_RC= bun scripts/bazel-natives.ts --dest `. Every TS test job uses it with `targets: linux-x64-baseline linux-x64-modern`, `cache-scope: linux-x64-pair`. + +### `release_binary` + +Release runners are GitHub-hosted and build addons **inline** (disk-cache mode — repeat releases with unchanged Rust are mostly local cache hits): the `bazel-natives` action runs with the matrix's `native_targets` (`linux-x64-baseline linux-x64-modern`, `linux-musl-x64-baseline`, `linux-arm64`, `linux-musl-arm64`, `darwin-all` on both mac runners, `win32-x64-baseline` cross-built from `ubuntu-22.04`) and `cache-scope: release-`, then `bun run ci:release:build-binaries` embeds and compiles. + +## Debugging playbook + +### Where things land / how to inspect + +```bash +# Outputs (workspace-relative): bazel-bin/natives-/pi_natives.<...>.node +bazelisk cquery --output=files //:natives-linux-x64-baseline + +# What actions/flags a target produces (add the same --config flags as the build): +bazelisk aquery 'outputs(".*\.node", deps(//:natives-linux-arm64))' +bazelisk aquery 'mnemonic("Rustc", deps(//crates/pi-natives:pi_natives))' + +# Which toolchain resolved (e.g. confirm @msvc_cc, not host cc, for win32): +bazelisk cquery 'deps(//:natives-win32-x64-baseline)' | grep msvc_cc + +# Keep the sandbox dir + print the full command line of a failing action: +bazelisk build --sandbox_debug --verbose_failures //:natives- + +# Analyze without building (cheap cross-target sanity check): +bazelisk build --nobuild //:natives-win32-x64-baseline +``` + +`scripts/bazel-natives.ts` streams bazel stderr live and repeats a 40-line tail on failure; when its cquery step fails it falls back to the `bazel-bin` path convention. + +### Common failure classes (seen during bring-up — fixes already in tree, cite when they resurface) + +| Symptom | Cause | Fix (in tree) | +| --- | --- | --- | +| musl build "succeeds" but emits no `.node` | musl defaults to `+crt-static`; rustc silently emits no cdylib | `-Ctarget-feature=-crt-static` select in `crates/pi-natives/BUILD.bazel` | +| opus/cmake `try_compile` fails linking UBSan runtime | zig cc enables UBSan by default; cmake's test exe links with the raw wrapper (no toolchain features) | `CFLAGS=-fno-sanitize=undefined` in the `audiopus_sys` annotation (`MODULE.bazel`) | +| `tree-sitter-just` scanner.c `#error` under opt | scanner hard-errors when `NDEBUG` is set (opt-mode cc default) | `CFLAGS=-UNDEBUG` annotation (cc-rs appends env CFLAGS last, so `-U` wins) | +| rstest macro: "Cargo.toml not found" in a vendored test | rstest verifies `Cargo.toml` exists in the manifest dir | `compile_data = ["Cargo.toml"]` on the `rust_test` (see `crates/vendor/uu-tail/BUILD.bazel`) | +| vendored tests fail on bare `test_data/...` paths / symlink into srcs | tests assume cargo's cwd, incompatible with runfiles execution | `tags = ["manual"]` (e.g. `//crates/vendor/uu-find:uu-find_test`); run via `cargo nextest` when touching the fork; hermetic sibling test covers the contract | +| blake3 msvc: `ml64.exe` not found | cc-rs resolves MASM from build-script PATH on non-windows hosts | `bin/ml64.exe → llvm-ml -m64` shim in `@msvc_cc`, prepended via the `blake3` annotation PATH | +| audiopus_sys msvc: cmake demands VS generator / rc+mt tools; `try_compile` wants `msvcrtd.lib` | cross cmake on linux/mac hosts; Debug config → `/MDd` which the lean xwin splat lacks | `CMAKE_GENERATOR_x86_64_pc_windows_msvc=Ninja` + `@msvc_cc`'s `toolchain.cmake` (`CMAKE_TOOLCHAIN_FILE_x86_64_pc_windows_msvc`) pinning wrappers + Release try-compile + `/MD` | +| win32 link oddities generally | — | read `bazel/toolchains/msvc/NOTES.md` first: wrapper self-location, `lld-link` flavor/driver-link behavior, `LIB`, `/MD` CRT choice, xwin splat caveats | +| `rust_test(crate = ...)` "can't find crate" at macro expansion | rmeta-only pipelined deps break macro_rules re-export harness compiles | rust pipelined_compilation stays OFF (`.bazelrc` note) | +| build script can't find cmake/ninja | `--incompatible_strict_action_env` — no host env leaks | explicit `PATH` in the crate annotation (`MODULE.bazel`), not host env | + +### Cache behavior + +- **omp-kata (push/main, release_binary is not here):** read-write gRPC to in-cluster bazel-remote (`grpcs://bazel-remote.bazel-cache.svc.cluster.local:9092`, TLS via the committed `infra/bazel-remote/ca.crt`, htpasswd user `ci`). Expect `remote cache hit` counts in the build summary; the `rust` job's `//:natives-linux-all` warm build on main pushes is what seeds it. `--remote_local_fallback` + retries mean a cache outage degrades to a local build, never a failure. +- **GitHub-hosted (PRs, macOS, releases):** no remote cache at all — `--disk_cache`/`--repository_cache` persisted by `actions/cache`, keyed on `(scope, os, arch, hash(Cargo.Bazel.lock, MODULE.bazel, rust-toolchain.toml))` with a prefix restore key. A lockfile/module change starts from the nearest previous entry. +- **msvc repos:** the ~2 GiB LLVM download is sha256-pinned and repository-cache backed; the ~1 GiB xwin CRT/SDK splat is fetched from the Microsoft CDN inside the repo rule and is **not** repo-cache backed — a cold output base re-downloads it. Microsoft advances the VS channel payload over time, so remote-cache hit rates for win32 actions degrade gracefully after an MS bump (same property the previous cross toolchain had). Win32 link actions also don't share cache entries across host OSes (linux vs mac clang binaries). +- Server-side operations (deploy, TLS/auth, egress, poisoning boundary): `infra/docs/04-arc-and-caching.md` §5. ## Target/variant model and naming conventions @@ -68,12 +236,12 @@ Both build and runtime use platform tag: ## Variant model (x64 only) -x64 supports CPU variants: +x64 supports CPU variants, encoded as `//bazel/variants` constraint values on the platform (baseline → `-Ctarget-cpu=x86-64-v2`, modern → `x86-64-v3`): - `modern` (AVX2-capable path) - `baseline` (fallback) -Non-x64 uses a single default artifact with no variant suffix. +Non-x64 uses a single default artifact with no variant suffix. There is no build-time variant *switch*: each variant is its own `//:natives-*` target, and the `host` pseudo-target picks modern vs baseline via AVX2 detection. ### Output filenames @@ -82,50 +250,14 @@ Non-x64 uses a single default artifact with no variant suffix. Runtime x64 candidate order also includes the unsuffixed default filename after the selected variant candidates. -## Environment flags and build options - ## Runtime flags - `PI_NATIVE_VARIANT`: x64 runtime override; valid values are `modern` and `baseline`. - `PI_COMPILED`: legacy compiled-mode signal. A populated embedded-addon manifest is also a compiled-mode signal; compiled release builds additionally define `process.env.PI_COMPILED="true"` during `bun build --compile`. -## Build-time flags/options +## Embed lifecycle (`embed-native.ts`) -- `CROSS_TARGET`: passed to napi-rs as `--target `. -- `TARGET_PLATFORM`: override output platform tag naming. -- `TARGET_ARCH`: override output arch naming. -- `TARGET_VARIANT` (x64 only): force `modern` or `baseline` for output filename and RUSTFLAGS policy. -- `CARGO_TARGET_DIR`: respected if set; otherwise the default `target/` dir is used so `Swatinem/rust-cache` can cache cleanly. -- `RUSTFLAGS`: - - if unset and not cross-compiling, script sets: - - modern: `-C target-cpu=x86-64-v3` - - baseline: `-C target-cpu=x86-64-v2` - - non-x64 / no variant: `-C target-cpu=native` - - if already set, script does not override. - -## Build state/lifecycle transitions - -### Build lifecycle (`build-native.ts`) - -1. **Init**: parse env, resolve target tuple, cross/local mode, profile label. -2. **Variant resolve**: - - non-x64 → no variant; - - x64 + `TARGET_VARIANT` → explicit variant; - - x64 cross-build without `TARGET_VARIANT` → hard error; - - x64 local build without override → detect host AVX2. -3. **CPU policy**: set `RUSTFLAGS` for the resolved variant unless the caller already provided one. -4. **Compile**: run napi-rs against `crates/pi-natives` into an isolated output directory. -5. **Locate artifact**: accept the canonical filename or a single napi-rs-generated `pi_natives.-*.node` candidate. -6. **Install**: copy/rename addon into `packages/natives/native`. -7. **Install generated declarations**: copy `index.d.ts`. -8. **Patch exports/enums**: regenerate explicit ESM exports and enum runtime objects. -9. **Cleanup**: remove the temporary build output directory. - -Failure exits have explicit error text for invalid variants, failed napi build, missing/multiple output artifacts, generated binding install failure, stripped CI ELF artifacts that still contain forbidden symbol/string-table sections, and install/rename failure. - -### Embed lifecycle (`embed-native.ts`) - -1. **Init**: compute platform tag from `TARGET_PLATFORM`/`TARGET_ARCH` or host values. +1. **Init**: compute the platform tag (host values, overridable by the release packaging script for cross-target archives). 2. **Candidate set**: - x64 looks for `modern` and `baseline` files; - non-x64 looks for one default file. @@ -143,7 +275,7 @@ Typical local loop: 1. Build addon: `bun --cwd=packages/natives run build`. 2. Loader resolves platform npm leaf-package candidates (`@oh-my-pi/pi-natives--`, when resolvable), then package-local `native/` and executable-dir fallback candidates. -3. Generated declarations in `native/index.d.ts` describe the public TS API. +3. Generated declarations in `native/index.d.ts` describe the public TS API (regenerate with `build:bindings` only when the Rust API surface changes). ## Shipped/compiled binary workflow @@ -176,14 +308,12 @@ Generated declarations currently include exports from these Rust modules: ## Build-time failures -- Invalid variant configuration: - - `TARGET_VARIANT` set on non-x64 → immediate error. - - unsupported `TARGET_VARIANT` value → immediate error. - - x64 cross-build without explicit `TARGET_VARIANT` → immediate error. -- napi-rs build failure: script surfaces non-zero exit and stderr. -- Artifact not found or ambiguous: script prints expected/candidate filenames and output directory contents. -- Install failure: explicit message; Windows includes locked-file hint. -- Generated binding install failure: explicit source/destination message. +- Bazel analysis/compile failure: `scripts/bazel-natives.ts` surfaces the exit code plus a stderr tail; re-run the printed `bazel build` line directly (add `--verbose_failures`, `--sandbox_debug`) to iterate. +- Unknown target name: the driver errors with the full known-target list (`//:natives-*` names + `host`/`linux-all`/`darwin-all`). +- No `.node` outputs located after a successful build: driver exits 1 (check `bazel cquery --output=files` manually). +- Basename collision (gnu + musl in one invocation): driver refuses to install and names both sources — split into separate `--dest` dirs. +- Stale `Cargo.Bazel.lock` after a `Cargo.{toml,lock}` change: run `bun run bazel:repin`. +- `build:bindings` (napi) failure: script surfaces non-zero exit and stderr; artifact builds are unaffected (Bazel never runs the napi CLI). ## Runtime loader failures (`native/loader-state.js`) @@ -196,22 +326,30 @@ Generated declarations currently include exports from these Rust modules: | Symptom | Likely cause | Verify | Fix | | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `Cannot find module` or dynamic library load error for every candidate | Missing release artifact, wrong platform tag, or stale compiled cache | Inspect loader error list and `packages/natives/native` filenames | Build correct target/variant; delete stale cache for the package version | +| `Cannot find module` or dynamic library load error for every candidate | Missing release artifact, wrong platform tag, or stale compiled cache | Inspect loader error list and `packages/natives/native` filenames | Build correct target (`bun scripts/bazel-natives.ts --dest packages/natives/native`); delete stale cache for the package version | | Export is missing at runtime but present in TypeScript | Stale `.node` loaded, generated declarations newer than binary, or Rust export not compiled | Require the actual candidate and inspect `Object.keys(mod)` | Rebuild native package and remove stale candidate/cache paths | -| x64 machine loads baseline when modern expected | `PI_NATIVE_VARIANT=baseline`, no AVX2 detected, or modern file unavailable | Check env and filenames in `native/` | Build modern variant (`TARGET_VARIANT=modern ... build`) and ship it | -| Cross-build produces wrong-labeled binary | Mismatch between `CROSS_TARGET` and `TARGET_PLATFORM`/`TARGET_ARCH`, or missing x64 variant | Confirm env tuple and output filename | Re-run with consistent env values and explicit x64 `TARGET_VARIANT` | +| x64 machine loads baseline when modern expected | `PI_NATIVE_VARIANT=baseline`, no AVX2 detected, or modern file unavailable | Check env and filenames in `native/` | Build and ship the modern target (`bun scripts/bazel-natives.ts linux-x64-modern --dest packages/natives/native`) | +| gnu addon overwritten by musl (or vice versa) | Both built into one dest — they share canonical basenames by design | Compare `bazel-bin/natives-/` sources vs installed file | Separate invocations with separate `--dest` dirs (release matrix already does this) | | Compiled binary fails after upgrade | Stale extracted cache, embedded archive mismatch, or embedded manifest version mismatch | Inspect `/` and loader error list | Delete versioned cache for the package version; regenerate embedded archive/manifest during packaging | | `gen:native` fails with `No native addons found` | Required platform artifact was not built before embedding | Check expected list in error text | Build at least one expected artifact for the target, then rerun `gen:native` | ## Operational commands ```bash -# Release artifact for current host +# Addon for the current host, installed into packages/natives/native/ bun --cwd=packages/natives run build -# Build explicit x64 variants -TARGET_VARIANT=modern bun --cwd=packages/natives run build -TARGET_VARIANT=baseline bun --cwd=packages/natives run build +# Explicit targets (x64 variants are separate targets, not env switches) +bun scripts/bazel-natives.ts linux-x64-modern linux-x64-baseline --dest packages/natives/native + +# Raw bazel (output: bazel-bin/natives-/pi_natives.<...>.node) +bazelisk build //:natives-darwin-arm64 + +# Refresh Cargo.Bazel.lock after Cargo.{toml,lock} or annotation changes +bun run bazel:repin + +# Regenerate TS typedefs + enum exports (napi CLI, only on Rust API changes) +bun --cwd=packages/natives run build:bindings # Generate embedded addon manifest from built native files bun run gen:native @@ -245,11 +383,11 @@ The key is `sha256` over `(path \t git-tree-hash \n)` pairs for the following in 2. `Cargo.lock` 3. `Cargo.toml` 4. `rust-toolchain.toml` -5. `packages/natives` (whole subtree — build script, `scripts/*`, package.json with napi config) +5. `packages/natives` (whole subtree — build script, `scripts/*`, package.json) -Tree hashes come from one `git cat-file --batch-check` invocation against `HEAD`; paths missing from `HEAD` fold in as a fixed null hash so the key stays deterministic across repos that don't ship every input. The target-triple suffix matches the napi addon basename convention (`-` for non-x64, `--` for x64). When `TARGET_VARIANT` is unset on an x64 host the variant component is `host` rather than autodetected — the key is stable on a given machine but a `modern`/`baseline` build with an explicit `TARGET_VARIANT` gets a different key. +Tree hashes come from one `git cat-file --batch-check` invocation against `HEAD`; paths missing from `HEAD` fold in as a fixed null hash so the key stays deterministic across repos that don't ship every input. The target-triple suffix matches the addon basename convention (`-` for non-x64, `--` for x64). -Anything outside this input set (Rust toolchain auto-installed delta, host glibc, env vars other than `TARGET_VARIANT`) is **not** in the key. If you need to invalidate after such a change, delete the cache directory by hand or bump one of the input files. +Anything outside this input set (Bazel definition files like `MODULE.bazel`/`BUILD.bazel`/`Cargo.Bazel.lock`, host glibc, env vars) is **not** in the key. If you need to invalidate after such a change, delete the cache directory by hand or bump one of the input files. ### Layout and ownership @@ -261,7 +399,7 @@ Anything outside this input set (Rust toolchain auto-installed delta, host glibc ### Populate and capture semantics -- **Populate** (workspace ← cache) runs inside `ensure_workspace`. On a key hit the `.node` is **hardlinked** into the workspace (zero-copy, shared inode); the companion `index.d.ts` / `index.js` / `embedded-addon.js` are **copied** (independent inodes) because the napi build's `installGeneratedBindings` and `gen-enums.ts` rewrite those files via `open(..., 'w')` — an in-place truncate that would otherwise propagate through a hardlink and corrupt the cache. Cross-device hardlink failures (`EXDEV`) fall back to copy. +- **Populate** (workspace ← cache) runs inside `ensure_workspace`. On a key hit the `.node` is **hardlinked** into the workspace (zero-copy, shared inode); the companion `index.d.ts` / `index.js` / `embedded-addon.js` are **copied** (independent inodes) because the bindings regeneration flow (`build-bindings.ts`'s `installGeneratedBindings` and `gen-enums.ts`) rewrites those files via `open(..., 'w')` — an in-place truncate that would otherwise propagate through a hardlink and corrupt the cache. Cross-device hardlink failures (`EXDEV`) fall back to copy. - **Capture** (cache ← workspace) runs from the post-task success path when the build produced a complete artifact set. Capture uses **copy**, not hardlink: hardlinking a slot-owned workspace file would preserve slot UID ownership on the cached inode and defeat the shared-group model. Copying creates a fresh root-owned, `gid=omp` inode via the setgid cache root. Capture is idempotent under the per-repo flock: a concurrent capture for the same key returns the existing entry. ### Garbage collection diff --git a/infra/bazel-remote/bazel-remote.yaml b/infra/bazel-remote/bazel-remote.yaml new file mode 100644 index 000000000..b43235dcd --- /dev/null +++ b/infra/bazel-remote/bazel-remote.yaml @@ -0,0 +1,109 @@ +# bazel-remote cache for the self-hosted Bazel pipeline. +# +# One replica, node-local storage (RWO local-path PVC), TLS + htpasswd auth from +# secrets created by setup.sh (run that script on the CI host; it generates the +# CA/server cert and credentials, then applies this file). +# +# Exposure: ClusterIP `bazel-remote` only — gRPC :9092 + HTTP :8080 for +# in-cluster runner pods (kata microVMs). Nothing is published outside the +# cluster: GitHub-hosted runners never talk to this infrastructure (they use +# an actions/cache-backed bazel disk cache instead). +# +# Clients verify the self-signed server cert against the CA committed at +# infra/bazel-remote/ca.crt (`--tls_certificate=infra/bazel-remote/ca.crt`). +apiVersion: v1 +kind: Namespace +metadata: + name: bazel-cache + labels: + kubernetes.io/metadata.name: bazel-cache +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: bazel-remote-data + namespace: bazel-cache +spec: + accessModes: [ReadWriteOnce] + storageClassName: local-path + resources: + requests: + storage: 100Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: bazel-remote + namespace: bazel-cache + labels: { app: bazel-remote } +spec: + replicas: 1 + strategy: { type: Recreate } + selector: + matchLabels: { app: bazel-remote } + template: + metadata: + labels: { app: bazel-remote } + spec: + # kubelet's legacy service-link envs (BAZEL_REMOTE_PORT=tcp://...) collide + # with bazel-remote's own BAZEL_REMOTE_* config env prefix. + enableServiceLinks: false + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + fsGroup: 1000 + fsGroupChangePolicy: OnRootMismatch + containers: + - name: bazel-remote + image: buchgr/bazel-remote-cache:v2.6.2 + imagePullPolicy: IfNotPresent + args: + - --max_size=90 + - --dir=/data + - --grpc_address=:9092 + - --http_address=:8080 + - --tls_cert_file=/tls/tls.crt + - --tls_key_file=/tls/tls.key + - --htpasswd_file=/auth/htpasswd + - --allow_unauthenticated_reads + ports: + - { name: grpc, containerPort: 9092 } + - { name: http, containerPort: 8080 } + volumeMounts: + - { name: data, mountPath: /data } + - { name: tls, mountPath: /tls, readOnly: true } + - { name: auth, mountPath: /auth, readOnly: true } + # TLS is enabled, so /status is served over HTTPS on the http port. + # Kubelet probes skip certificate verification. + readinessProbe: + httpGet: { path: /status, port: http, scheme: HTTPS } + initialDelaySeconds: 5 + periodSeconds: 5 + livenessProbe: + httpGet: { path: /status, port: http, scheme: HTTPS } + initialDelaySeconds: 15 + periodSeconds: 20 + resources: + requests: { cpu: "500m", memory: "2Gi" } + # Concurrent uploads of ~150MB addon artifacts spike RSS well past + # 4Gi (memcg OOM-killed the server mid-build); 10Gi gives headroom + # for a full 8-target push wave. + limits: { cpu: "4", memory: "10Gi" } + volumes: + - name: data + persistentVolumeClaim: { claimName: bazel-remote-data } + - name: tls + secret: { secretName: bazel-remote-tls } + - name: auth + secret: { secretName: bazel-remote-auth } +--- +apiVersion: v1 +kind: Service +metadata: + name: bazel-remote + namespace: bazel-cache +spec: + selector: { app: bazel-remote } + ports: + - { name: grpc, port: 9092, targetPort: grpc, protocol: TCP } + - { name: http, port: 8080, targetPort: http, protocol: TCP } diff --git a/infra/bazel-remote/ca.crt b/infra/bazel-remote/ca.crt new file mode 100644 index 000000000..954965c60 --- /dev/null +++ b/infra/bazel-remote/ca.crt @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFJTCCAw2gAwIBAgIUPoZBmg9lfv5jlya7JGstFUYiri8wDQYJKoZIhvcNAQEL +BQAwGjEYMBYGA1UEAwwPYmF6ZWwtcmVtb3RlLWNhMB4XDTI2MDcyNzA3NDMzM1oX +DTM2MDcyNDA3NDMzM1owGjEYMBYGA1UEAwwPYmF6ZWwtcmVtb3RlLWNhMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAn1iBTWdr/SOKFzRSNsFJCnf6JaDQ +tSQfO92oMrNSoHEjC0tFsB7D98GnCJySut+rlHCJy1OGzl1x3WdWxWkqNLdlfHLc +VrM3ATXpmtfSXvTOHP4o57awOR5W8gcwvKvs1xcMjKYyR0XcH9HN3Aq42n1e53uq +vGParr2EbMvTqjhMLlUpuxERHVYBUhUOspBS/r+MGJQOnJUzde3bhpYCMLseM0gq +V/Boav/4M/wf8ECYpHyr5qZGl4o8zlySOZpSb35+TKQcGIysyKQ/xVQWzjy0ay9w +TSHcI6p1y/Sfsw3ejd6g5e8F9YyLJd8Nr00vBJZ+/b/RCRwHvwGWw8BeZiq9iIZ2 ++awNNE7NxchiCZQJCWSacPHMLsEJHCwUpbOtrojQqGoHZvpB0p4WVhxiBU2MYDwG +XPdpbRByrfuNIOrvE5FrdlYbIUYLBXQLuqygCMez+LRUn+ksxgWr70Vfe+Tm55Bv +94Zn9Dm81+zS5YJKHkBD0g3e2hAqG++hGc7RMrMZMDyOexdSJUjKzr7UwPsXhH6T +DfyCj4m9Mub33EeBRLxHrAXU+HzhS3ugx5p54xGijduGMCSpTWAIDWXZA3ktmFlt +DmkSkDWkmR0c8mUMSBQVkwihC3IJ1vji4mVsWXZSqWlmhIvTlKdQPOs+A8d6Q9Q0 +Okr2G1IjkCP6DPsCAwEAAaNjMGEwHQYDVR0OBBYEFM1VckaC0O8tTYxHIcUWa1Vd +9QMSMB8GA1UdIwQYMBaAFM1VckaC0O8tTYxHIcUWa1Vd9QMSMA8GA1UdEwEB/wQF +MAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQCKFcunEEYG +mMRFRxgvQmxFMwG7NcQmozR6gH1HUxPpgENTB2o0Vxtz4QcZBqPh00iwKiNGrfJB +Kf/YXCMP10nmlDg0N0B8td8+IiFyjeRCXT3OUMIQ0PTBs+OG5BzlIWRB/WHPpAMV +3xCCg1FhL8IYC5/qOjneO+D3rzNMlthy5CKIh1E6sOUifxuA1bdi4r3I/iR3i8c2 +5wkKVfeXH0D/c7oOQcecvM70Y37Pi6uW1Enr2QrMHs9bJH1yRgwhwOfuLETi75Xm +kU5cKK3VRPHn+DxNauzdTRCXR0QMbLwJ1SdHSbhk32JvQb1dZ/CvINV9EUTroMEH +W3W8VI2c4JYnjEwFAaZxlAI/UIz0uoybuRwx1e+Q+cfmDzGAzb/SsZF1wWvcBkX0 +DcAej3cY9p6JsSxzjhmk0DiJ+F0UZEvEaiozg2wwTxLufKbExptxT4qhpxKaywY+ +WnW+M+jTQx18ljnbvBx1hENaeYEbk8VRS3M/nb6AbucnjK8zzw5XGDaA+yC9v7qq +jy1UGL/FbwU1JglMmw8lA4JBCRD2Xrz3N4GmuoX3KemLg4nEi8GERdvpGGypTH/V +UaumBZRrGwy0NeqWJlrcRjTGqL+VePYzNI4yKOgH5fgdvt1ENYah5ODTmqo0fmwu +bg5jTuxPpqe0OKG2ysdPSxAmrRLKM1Upcw== +-----END CERTIFICATE----- diff --git a/infra/bazel-remote/runner-egress-patch.yaml b/infra/bazel-remote/runner-egress-patch.yaml new file mode 100644 index 000000000..be14f4f1c --- /dev/null +++ b/infra/bazel-remote/runner-egress-patch.yaml @@ -0,0 +1,24 @@ +# JSON-patch (kubectl --type=json --patch-file) appending the bazel-remote +# egress rule to the arc-runners `runner-egress-lockdown` NetworkPolicy. +# Mirrors the existing sccache/RustFS rule (service CIDR + namespaceSelector). +# +# NOT idempotent on its own - `add` on `/spec/egress/-` appends every time. +# setup.sh guards it with a jq presence check; apply by hand the same way: +# +# kubectl -n arc-runners get networkpolicy runner-egress-lockdown -o json \ +# | jq -e '.spec.egress[].to[]? | select(.namespaceSelector.matchLabels["kubernetes.io/metadata.name"] == "bazel-cache")' >/dev/null \ +# || kubectl -n arc-runners patch networkpolicy runner-egress-lockdown \ +# --type=json --patch-file=infra/bazel-remote/runner-egress-patch.yaml +- op: add + path: /spec/egress/- + value: + # bazel-remote shared cache (gRPC) over the cluster network. + to: + - ipBlock: + cidr: 10.43.0.0/16 + - namespaceSelector: + matchLabels: + kubernetes.io/metadata.name: bazel-cache + ports: + - port: 9092 + protocol: TCP diff --git a/infra/bazel-remote/setup.sh b/infra/bazel-remote/setup.sh new file mode 100755 index 000000000..97b912a1f --- /dev/null +++ b/infra/bazel-remote/setup.sh @@ -0,0 +1,157 @@ +#!/usr/bin/env bash +# Idempotent bazel-remote cache bootstrap. Run ON the CI host (root), with the +# two YAML files from this directory next to it: +# +# ./setup.sh +# +# What it does (safe to re-run; every step is guarded or apply-based): +# 1. Generates a self-signed CA + server cert (SANs: in-cluster service DNS +# plus the host's private admin name) under $STATE_DIR. +# 2. Creates/updates secrets: +# bazel-cache/bazel-remote-tls - server cert + key (kubernetes.io/tls) +# bazel-cache/bazel-remote-auth - htpasswd (bcrypt, user `ci`) +# arc-runners/bazel-remote-ci - BAZEL_REMOTE_USER / BAZEL_REMOTE_PASSWORD +# 3. Applies bazel-remote.yaml (namespace, PVC, Deployment, ClusterIP service). +# 4. Appends the bazel-cache:9092 egress rule to the arc-runners +# runner-egress-lockdown NetworkPolicy (guarded, via runner-egress-patch.yaml). +# 5. Removes the retired public exposure if present (NodePort service + +# firewalld 30992/tcp): the cache is strictly cluster-internal; nothing +# about this infrastructure is reachable from — or committed to — the +# public repo beyond the CA certificate. +# 6. Prints the CA cert (commit it as infra/bazel-remote/ca.crt). +# +# Env knobs: +# KUBECONFIG kubeconfig path [/etc/rancher/k3s/k3s.yaml] +# STATE_DIR where CA/certs/password persist [/root/bazel-remote-cache] +# ADMIN_SAN optional extra DNS SAN for host-side debugging [can.internal] +# CERT_DAYS CA + server cert lifetime [3650] +set -euo pipefail + +export KUBECONFIG="${KUBECONFIG:-/etc/rancher/k3s/k3s.yaml}" +STATE_DIR="${STATE_DIR:-/root/bazel-remote-cache}" +ADMIN_SAN="${ADMIN_SAN:-can.internal}" +CERT_DAYS="${CERT_DAYS:-3650}" +NS=bazel-cache +ARC_NS=arc-runners + +here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +for f in bazel-remote.yaml runner-egress-patch.yaml; do + [ -f "$here/$f" ] || { echo "missing $here/$f (run from a checkout of infra/bazel-remote/)" >&2; exit 1; } +done +for bin in kubectl openssl jq; do + command -v "$bin" >/dev/null || { echo "missing required tool: $bin" >&2; exit 1; } +done +if ! command -v htpasswd >/dev/null; then + echo "==> htpasswd missing; installing httpd-tools/apache2-utils" + if command -v dnf >/dev/null; then dnf install -y httpd-tools + elif command -v apt-get >/dev/null; then apt-get update && apt-get install -y apache2-utils + else echo "cannot install htpasswd (no dnf/apt-get); install it manually" >&2; exit 1 + fi +fi + +mkdir -p "$STATE_DIR" +chmod 700 "$STATE_DIR" +cd "$STATE_DIR" + +# --- 1. CA + server certificate ------------------------------------------- +if [ ! -s ca.crt ] || [ ! -s ca.key ]; then + echo "==> [1/6] generating CA" + openssl req -x509 -newkey rsa:4096 -sha256 -nodes -days "$CERT_DAYS" \ + -keyout ca.key -out ca.crt \ + -subj "/CN=bazel-remote-ca" \ + -addext "basicConstraints=critical,CA:TRUE" \ + -addext "keyUsage=critical,keyCertSign,cRLSign" + chmod 600 ca.key +else + echo "==> [1/6] reusing existing CA ($STATE_DIR/ca.crt)" +fi + +if [ ! -s server.crt ] || [ ! -s server.key ]; then + echo "==> [1/6] generating server certificate" + openssl req -newkey rsa:4096 -sha256 -nodes \ + -keyout server.key -out server.csr \ + -subj "/CN=bazel-remote.${NS}.svc.cluster.local" + cat > server.ext < [1/6] reusing existing server certificate" +fi + +# --- 2. Credentials + secrets ---------------------------------------------- +if [ ! -s ci-password ]; then + echo "==> [2/6] generating ci password" + openssl rand -base64 24 | tr -d '/+=' > ci-password + chmod 600 ci-password +else + echo "==> [2/6] reusing existing ci password" +fi +CI_PASSWORD="$(cat ci-password)" +htpasswd -Bbc htpasswd ci "$CI_PASSWORD" >/dev/null 2>&1 +chmod 600 htpasswd + +echo "==> [2/6] applying secrets" +kubectl create namespace "$NS" --dry-run=client -o yaml | kubectl apply -f - +kubectl -n "$NS" create secret tls bazel-remote-tls \ + --cert=server.crt --key=server.key \ + --dry-run=client -o yaml | kubectl apply -f - +kubectl -n "$NS" create secret generic bazel-remote-auth \ + --from-file=htpasswd=htpasswd \ + --dry-run=client -o yaml | kubectl apply -f - +kubectl -n "$ARC_NS" create secret generic bazel-remote-ci \ + --from-literal=BAZEL_REMOTE_USER=ci \ + --from-literal=BAZEL_REMOTE_PASSWORD="$CI_PASSWORD" \ + --dry-run=client -o yaml | kubectl apply -f - + +# --- 3. bazel-remote itself ------------------------------------------------- +echo "==> [3/6] applying bazel-remote.yaml" +kubectl apply -f "$here/bazel-remote.yaml" + +# --- 4. Runner egress: allow bazel-cache:9092 ------------------------------- +echo "==> [4/6] patching runner-egress-lockdown (bazel-cache:9092)" +if kubectl -n "$ARC_NS" get networkpolicy runner-egress-lockdown -o json \ + | jq -e '.spec.egress[].to[]? | select(.namespaceSelector.matchLabels["kubernetes.io/metadata.name"] == "bazel-cache")' >/dev/null; then + echo " egress rule already present; skipping" +else + kubectl -n "$ARC_NS" patch networkpolicy runner-egress-lockdown \ + --type=json --patch-file="$here/runner-egress-patch.yaml" +fi + +# --- 5. Retire any previous public exposure ----------------------------------- +echo "==> [5/6] ensuring the cache is cluster-internal only" +if kubectl -n "$NS" get service bazel-remote-public >/dev/null 2>&1; then + kubectl -n "$NS" delete service bazel-remote-public + echo " removed retired NodePort service bazel-remote-public" +fi +if firewall-cmd --permanent --query-port=30992/tcp >/dev/null 2>&1; then + firewall-cmd --permanent --remove-port=30992/tcp + firewall-cmd --reload + echo " closed retired firewalld port 30992/tcp" +fi + +# --- 6. Operator hand-off ----------------------------------------------------- +echo "==> [6/6] done. Manual follow-ups:" +echo +echo "1. Commit the CA cert into the repo as infra/bazel-remote/ca.crt" +echo " (this script cannot commit; the cert is public, only ca.key is secret):" +echo " --- $STATE_DIR/ca.crt ---" +cat ca.crt +echo " --- end ca.crt ---" +echo +echo "2. Runner pods need 'envFrom: [{secretRef: {name: bazel-remote-ci}}]'." +echo " infra/reload-runner.sh now inserts this into the ARC values file on the" +echo " next reload; to wire it without an image reload, add under" +echo " template.spec.containers[0].envFrom in /root/arc-omp-values.yaml:" +echo " - secretRef:" +echo " name: bazel-remote-ci" +echo " then re-run the helm upgrade from infra/docs/04-arc-and-caching.md §3." +echo +echo "Endpoint: grpcs://bazel-remote.${NS}.svc.cluster.local:9092 (in-cluster only)" diff --git a/infra/docs/03-runner-image.md b/infra/docs/03-runner-image.md index d2b6d3531..e42cdc8bf 100644 --- a/infra/docs/03-runner-image.md +++ b/infra/docs/03-runner-image.md @@ -27,14 +27,16 @@ The base `ghcr.io/actions/actions-runner:latest` is a clean Ubuntu 24.04 runner. On a normal (GitHub-hosted-style) runner, the CI workflow installs its system dependencies at the start of every job: the cairo/pango native stack for canvas builds, `fd`/`ripgrep`/`imagemagick`, `bun`, `sccache`, Zig, the cargo-native -helper CLIs (`cargo-nextest`, `cargo-zigbuild`, `cargo-xwin`), and a pinned Rust +helper CLIs (`cargo-nextest`, `cargo-zigbuild`, `cargo-xwin`), `bazelisk` with a +pre-warmed pinned Bazel for the Bazel native pipeline, and a pinned Rust nightly with the cross targets/components. Inside a Kata microVM that is destroyed after a single job, paying that apt/bun/rustup/tool-download cost on **every** job is pure latency - the microVM starts cold each time. The preloaded image moves that work to build time. Every ephemeral runner then starts with the toolchain already present: apt deps are not re-fetched, `bun`, -`cargo`/`rustc`, `sccache`, `zig`, and the cargo helper CLIs are on `PATH`, and +`cargo`/`rustc`, `sccache`, `zig`, `bazel`(isk), and the cargo helper CLIs are +on `PATH`, and the pinned Rust toolchain is already the default so target/component installs in CI become no-ops. @@ -462,5 +464,5 @@ afterward as shown. --- Continue to [04-arc-and-caching.md](./04-arc-and-caching.md) for how ARC -wires in the shared `sccache`/Bun/Cargo cache storage, and locks down runner -egress. +wires in the shared bazel-remote/Bun/Cargo cache storage, and locks down +runner egress. diff --git a/infra/docs/04-arc-and-caching.md b/infra/docs/04-arc-and-caching.md index fc84ae179..302adae50 100644 --- a/infra/docs/04-arc-and-caching.md +++ b/infra/docs/04-arc-and-caching.md @@ -5,7 +5,7 @@ RuntimeClass ([02-kata-runtime.md](02-kata-runtime.md)) and the preloaded runner image has been imported into the cluster containerd ([03-runner-image.md](03-runner-image.md)). Here we install **actions-runner-controller (ARC)**, register an ephemeral **scale set** whose pods each boot inside their own Kata microVM, stand up the -in-cluster **RustFS (S3)** `sccache` backend and the runner cache PVC, and lock +in-cluster **bazel-remote** Bazel cache and the runner cache PVC, and lock down runner egress with a NetworkPolicy. See [README.md](README.md) for the architecture overview. @@ -178,10 +178,9 @@ template: command: ["/home/runner/run.sh"] envFrom: - secretRef: - name: sccache-s3 - env: - - name: OMP_NATIVE_CACHE_DIR - value: /home/runner/.cache/omp-native-artifacts + name: bazel-remote-ci + - secretRef: + name: sccache-s3 # legacy - removed together with the cargo CI pipeline volumeMounts: - name: runner-cache mountPath: /home/runner/.bun/install/cache @@ -192,9 +191,12 @@ template: - name: runner-cache mountPath: /home/runner/.cargo/registry/index subPath: cargo-registry/index + # Shared Bazel repository cache: pods are ephemeral, so without it + # every job re-downloads toolchains and crate archives. Content- + # addressed and written atomically, safe to share across pods. - name: runner-cache - mountPath: /home/runner/.cache/omp-native-artifacts - subPath: native-artifacts + mountPath: /home/runner/.cache/omp-bazel-repo + subPath: bazel-repo-cache resources: requests: cpu: "8" @@ -233,9 +235,10 @@ Field by field: here when you rebuild the image (see [Operate](#7-operate)). - **`command: ["/home/runner/run.sh"]`** - the stock actions-runner entrypoint; overridden explicitly because the custom image keeps the upstream layout. -- **`envFrom.secretRef.name: sccache-s3`** - injects only the S3 configuration that - `sccache` needs ([step 5](#5-shared-caches-rustfs-s3--runner-pvc)). Bun and - Cargo no longer use RustFS. +- **`envFrom.secretRef`** - injects the bazel-remote cache credentials + (`bazel-remote-ci`, [step 5](#5-shared-caches-bazel-remote--runner-pvc)) that + every runner needs for read-write cache access. `sccache-s3` is the legacy + sccache wiring and disappears with it ([5e](#5e-legacy-sccacherustfs-removed)). - **`securityContext.fsGroup: 1001`** - makes the mounted PVC writable by the image's `runner` user without replacing image-owned `~/.cargo/bin` or `~/.rustup`. - **`initContainers.prepare-runner-cache`** - uses the same locally imported image @@ -301,203 +304,112 @@ a compromised job is boxed into a throwaway VM with no cluster reach. --- -## 5. Shared caches (RustFS S3 + runner PVC) +## 5. Shared caches (bazel-remote + runner PVC) GitHub's hosted cache backend is only reachable over the node's NAT egress, so on a busy matrix (many concurrent jobs) it becomes the bottleneck. This setup keeps the hot paths inside the cluster: -- **RustFS S3** backs `sccache` for Rust compiler outputs. +- **bazel-remote** serves the Bazel remote cache (CAS + action cache) for the + native pipeline. Rust compilation, clippy, rustfmt, tests, and the final + `.node` addons are all Bazel actions, so this one content-addressed store + replaces the previous sccache/RustFS backend, the rolling Cargo `target/` + snapshots, and the native-artifact PVC directory ([5e](#5e-legacy-sccacherustfs-removed)). - **`runner-cache` PVC** is mounted into every runner for Bun's global package store and Cargo's crates.io registry cache. -### 5a. Deploy RustFS +### 5a. Deploy bazel-remote -The store lives in its own `sccache` namespace: a `local-path` PVC for durability, -a single-replica Deployment, and a ClusterIP Service. This is `rustfs.yaml` -verbatim (no secrets inline - credentials come from a separate secret): +Unlike the legacy stack, the whole deployment lives in the repo under +[`infra/bazel-remote/`](../bazel-remote/): -```yaml -apiVersion: v1 -kind: Namespace -metadata: - name: sccache - labels: - kubernetes.io/metadata.name: sccache ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: rustfs-data - namespace: sccache -spec: - accessModes: [ReadWriteOnce] - storageClassName: local-path - resources: - requests: - storage: 100Gi ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: rustfs - namespace: sccache - labels: { app: rustfs } -spec: - replicas: 1 - strategy: { type: Recreate } - selector: - matchLabels: { app: rustfs } - template: - metadata: - labels: { app: rustfs } - spec: - containers: - - name: rustfs - image: rustfs/rustfs:latest - imagePullPolicy: IfNotPresent - env: - - name: RUSTFS_ACCESS_KEY - valueFrom: { secretKeyRef: { name: rustfs-creds, key: RUSTFS_ACCESS_KEY } } - - name: RUSTFS_SECRET_KEY - valueFrom: { secretKeyRef: { name: rustfs-creds, key: RUSTFS_SECRET_KEY } } - - name: RUSTFS_VOLUMES - value: "/data" - - name: RUSTFS_ADDRESS - value: ":9000" - - name: RUSTFS_CONSOLE_ENABLE - value: "false" - - name: RUSTFS_OBS_LOG_DIRECTORY - value: "/logs" - ports: - - { name: s3, containerPort: 9000 } - volumeMounts: - - { name: data, mountPath: /data } - - { name: logs, mountPath: /logs } - readinessProbe: - tcpSocket: { port: 9000 } - initialDelaySeconds: 5 - periodSeconds: 5 - livenessProbe: - tcpSocket: { port: 9000 } - initialDelaySeconds: 15 - periodSeconds: 20 - resources: - requests: { cpu: "200m", memory: "256Mi" } - limits: { cpu: "2", memory: "2Gi" } - volumes: - - name: data - persistentVolumeClaim: { claimName: rustfs-data } - - name: logs - emptyDir: {} ---- -apiVersion: v1 -kind: Service -metadata: - name: rustfs - namespace: sccache -spec: - selector: { app: rustfs } - ports: - - { name: s3, port: 9000, targetPort: 9000, protocol: TCP } -``` +- [`bazel-remote.yaml`](../bazel-remote/bazel-remote.yaml) - namespace + `bazel-cache`, a 100Gi `local-path` PVC (`bazel-remote-data`), a + single-replica `Recreate` Deployment pinned to + `buchgr/bazel-remote-cache:v2.6.2` (`--max_size 90` GiB LRU, gRPC `:9092`, + HTTP `:8080`, TLS + htpasswd from secret mounts, + `--allow_unauthenticated_reads`), and the ClusterIP Service `bazel-remote` + (9092 grpc + 8080 http). There is deliberately **no public exposure**: the + cache is reachable only inside the cluster. +- [`setup.sh`](../bazel-remote/setup.sh) - the idempotent bootstrap, run **on + the CI host** as root: -Notes: + ```bash + ./setup.sh # from a checkout of infra/bazel-remote/ on the host + ``` -- **`strategy: Recreate`** with a single replica and an RWO `local-path` PVC: the - data is node-local and only one pod ever mounts it. -- **`RUSTFS_CONSOLE_ENABLE: "false"`** - only the S3 API on `:9000` is exposed; - no admin console. -- The `kubernetes.io/metadata.name: sccache` namespace label is what the egress - NetworkPolicy's `namespaceSelector` matches ([step 6](#6-runner-egress-lockdown)). + It generates a self-signed CA + server certificate (SANs: + `bazel-remote.bazel-cache.svc.cluster.local`, `bazel-remote.bazel-cache.svc`, + plus a private admin name via `ADMIN_SAN`), creates the secrets + ([5b](#5b-endpoints-tls-and-auth)), applies `bazel-remote.yaml`, patches the + egress policy ([step 6](#6-runner-egress-lockdown)), and removes any retired + public exposure (NodePort service, firewalld `30992/tcp`) from earlier + iterations. + Re-running is safe: the CA, server cert, and `ci` password persist under + `/root/bazel-remote-cache`, and every kubectl step is `apply`-based or + guarded by a presence check. -The RustFS pod credentials come from a two-key secret in the `sccache` namespace -(values are the object-store root credentials - use placeholders): +Verify: ```bash -kubectl -n sccache create secret generic rustfs-creds \ - --from-literal=RUSTFS_ACCESS_KEY= \ - --from-literal=RUSTFS_SECRET_KEY= +kubectl -n bazel-cache get deploy,svc,pvc +# deployment.apps/bazel-remote 1/1 +# service/bazel-remote ClusterIP 10.43.x.x 9092/TCP,8080/TCP +# (no public/NodePort service: the cache is cluster-internal only) +# persistentvolumeclaim/bazel-remote-data Bound 100Gi local-path + +# Status endpoint (TLS is on, so use https; -k or --cacert the committed CA): +curl -sk "https://$(kubectl -n bazel-cache get pod -l app=bazel-remote \ + -o jsonpath='{.items[0].status.podIP}'):8080/status" +# {"CurrSize": ..., "MaxSize": 96636764160, "NumFiles": ..., ...} ``` -Apply and verify: +### 5b. Endpoints, TLS, and auth -```bash -kubectl apply -f rustfs.yaml -kubectl -n sccache get deploy,svc,pvc -# deployment.apps/rustfs 1/1 -# service/rustfs ClusterIP 10.43.x.x 9000/TCP -# persistentvolumeclaim/rustfs-data Bound 100Gi local-path -``` +One endpoint, one auth model — **reads are unauthenticated, writes require the +`ci` credentials**, and only in-cluster clients can reach it at all: -Create the `sccache` bucket once (any S3 client - e.g. the `aws` CLI or `mc` -pointed at the endpoint with the root creds): `mb s3://sccache`. +| Client | Endpoint | Writes | +| --- | --- | --- | +| omp-kata runner pods (trusted `push`/main + release) | `grpcs://bazel-remote.bazel-cache.svc.cluster.local:9092` | yes - `ci` credentials injected via the `bazel-remote-ci` secret | +| GitHub-hosted runners (PRs, macOS, release) | — never touch this infrastructure; they persist a local `--disk_cache`/`--repository_cache` via `actions/cache` (`.github/actions/bazel-cache`) | n/a | -### 5b. The `sccache-s3` secret (injected into every runner) - -Every runner pod gets the `sccache` S3 configuration via `envFrom` ([step 3](#3-scale-set-values-arc-omp-valuesyaml)). -The secret lives in `arc-runners` (the runners' namespace) and has six keys: - -```bash -kubectl -n arc-runners get secret sccache-s3 \ - -o go-template='{{range $k,$v := .data}}{{$k}}{{"\n"}}{{end}}' -# AWS_ACCESS_KEY_ID -# AWS_SECRET_ACCESS_KEY -# SCCACHE_BUCKET -# SCCACHE_ENDPOINT -# SCCACHE_REGION -# SCCACHE_S3_USE_SSL -``` - -Recreate it (the two credential values must equal the `rustfs-creds` above; the -rest are non-sensitive cluster-local config): - -```bash -kubectl -n arc-runners create secret generic sccache-s3 \ - --from-literal=AWS_ACCESS_KEY_ID= \ - --from-literal=AWS_SECRET_ACCESS_KEY= \ - --from-literal=SCCACHE_BUCKET=sccache \ - --from-literal=SCCACHE_ENDPOINT=rustfs.sccache.svc.cluster.local:9000 \ - --from-literal=SCCACHE_REGION=us-east-1 \ - --from-literal=SCCACHE_S3_USE_SSL=false -``` - -- `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` - the **only sensitive entries**; - RustFS's root credentials (S3 SigV4 auth). -- `SCCACHE_BUCKET: sccache` - bucket name. -- `SCCACHE_ENDPOINT` - the in-cluster Service DNS + port. -- `SCCACHE_REGION: us-east-1` - arbitrary region label SigV4 requires. -- `SCCACHE_S3_USE_SSL: false` - the endpoint is plain HTTP on the cluster network. +- **TLS.** The server certificate is signed by a self-signed CA committed at + [`infra/bazel-remote/ca.crt`](../bazel-remote/ca.crt); every client passes + `--tls_certificate=infra/bazel-remote/ca.crt`. Only the CA *key* stays on the + host (`/root/bazel-remote-cache/ca.key`). `setup.sh` echoes the CA cert so + the operator can commit it (the script cannot commit). +- **Secrets** (all maintained by `setup.sh`): + - `bazel-cache/bazel-remote-tls` - server cert + key, mounted at `/tls`; + - `bazel-cache/bazel-remote-auth` - bcrypt htpasswd with the single user + `ci`, mounted at `/auth` (`--allow_unauthenticated_reads` keeps reads open); + - `arc-runners/bazel-remote-ci` - `BAZEL_REMOTE_USER` / `BAZEL_REMOTE_PASSWORD`, + injected into every runner pod via `envFrom` + ([step 3](#3-scale-set-values-arc-omp-valuesyaml); `infra/reload-runner.sh` + inserts the `envFrom` entry into `arc-omp-values.yaml` idempotently on the + next image reload). +- **No GitHub secrets.** Nothing outside the cluster holds cache credentials; + the public repo carries only the CA *certificate*. ### 5c. The cache consumers -The presence of `$SCCACHE_BUCKET` in the environment is the repo's single signal -for "am I on the self-hosted infra?". Cache behavior branches on it and falls -back to GitHub-hosted cache backends off-infra. Off-infra covers GitHub-hosted -macOS/arm runners (which never get the secret and cannot reach the private -RustFS) and **every pull request**: `ci.yml` pins PR jobs to GitHub-hosted -`ubuntu-22.04`, so omp-kata only runs trusted `push`/main + release builds (see -[5d](#5d-poisoning-boundary-and-pressure)). +**(a) Bazel remote cache** - `.bazelrc` carries the cache *policy* configs +(`cache-rw` / `cache-ro`); CI composes the endpoint and credentials per +environment: -**(a) sccache for Rust compiler outputs** - -[`.github/actions/build-native`](../../.github/actions/build-native/action.yml). -One action serves both environments: a "Detect runner environment" step reads -`$SCCACHE_BUCKET` and branches each toolchain/cache step on it. It sets -`RUSTC_WRAPPER=sccache` and `CARGO_INCREMENTAL=0` (sccache silently no-ops with -incremental enabled). The sccache backend is conditional: +```bash +bazel build \ + --config=cache-rw \ + --remote_cache=grpcs://bazel-remote.bazel-cache.svc.cluster.local:9092 \ + --tls_certificate=infra/bazel-remote/ca.crt \ + --remote_header="authorization=Basic $(printf %s "$BAZEL_REMOTE_USER:$BAZEL_REMOTE_PASSWORD" | base64 -w0)" \ + //:natives-linux-all +``` -- `$SCCACHE_BUCKET` set (omp-kata) - sccache reads `SCCACHE_BUCKET/ENDPOINT/REGION` - and the AWS creds straight from the inherited pod env and uses the **shared S3 - (RustFS)**; toolchains come from the baked image via the `ensure-*` actions. -- otherwise (GitHub-hosted) - it installs the toolchains, exports - `SCCACHE_GHA_ENABLED=true`, and uses the **GitHub Actions cache**. - -`Swatinem/rust-cache` keeps Cargo registry/tool data on GitHub-hosted runners. -An explicit rolling `actions/cache` entry restores and saves `target/` across -source hashes, which is essential for the slower Intel macOS build. On omp-kata, -[`scripts/ci-target-cache.ts`](../../scripts/ci-target-cache.ts) stores the -rolling `target/` snapshot in RustFS while sccache covers individual compiler -outputs. +On omp-kata the credentials come from the injected pod env +(`bazel-remote-ci` secret) and `.github/actions/bazel-cache` composes the rc +fragment. GitHub-hosted jobs get the disk-cache branch of the same action — +no remote endpoint, no credentials, no infrastructure knowledge. **(b) Cargo registry cache** - the scale-set pod template mounts only the immutable download cache and sparse index at @@ -505,12 +417,7 @@ immutable download cache and sparse index at Source extraction, lock files, Cargo git checkouts, and `target/` remain job-local; virtio-fs does not propagate Cargo's file locks safely across VMs. -**(c) Native addon artifacts** - completed `.node` outputs are copied atomically -to the runner-cache PVC under their native source hash. Native-dependent jobs on -omp-kata restore both Linux x64 variants locally; GitHub-hosted jobs fall back to -the trusted Actions artifact run. - -**(d) Bun package store** - +**(c) Bun package store** - [`.github/actions/bun-install`](../../.github/actions/bun-install/action.yml) wraps `bun install --frozen-lockfile`. On omp-kata, the pod template mounts `runner-cache:/bun-store` at Bun's default store path @@ -525,44 +432,48 @@ package tarball/extract store. ### 5d. Poisoning boundary and pressure -The shared writable PVC and the sccache S3 bucket are both poisonable by any job -that runs on `omp-kata`, and a poisoned entry could be consumed by a later -trusted build (a supply-chain risk). The primary defense is to **keep untrusted -code off the self-hosted runner entirely**: +The bazel-remote store is content-addressed and **writes require the `ci` +credentials**, so the poisoning surface is exactly the set of jobs holding those +credentials. The primary defense is to keep untrusted code away from them: -- `ci.yml` routes every pull-request job to GitHub-hosted `ubuntu-22.04` +- `ci.yml` routes every pull-request job to GitHub-hosted runners (`runs-on` resolves to `omp-kata` only for `push`/main, manual dispatch, and release). That expression lives in the base workflow, which GitHub uses - verbatim for `pull_request` events, so a fork cannot override it. Fork/PR code - therefore never sees the PVC, the `sccache-s3` creds, or RustFS - it runs - sandboxed on GitHub-hosted runners with the off-infra cache backends. + verbatim for `pull_request` events, so a fork cannot override it. PR jobs + never talk to the cluster at all — they build against a local + `actions/cache`-backed disk cache — and fork code never sees + `bazel-remote-ci` (the cache has no publicly reachable endpoint to attack). - As defense in depth, set the repo's **Settings -> Actions -> Fork pull request workflows** policy to *Require approval for all outside collaborators* (or all - forks). GitHub's public-repo default only gates first-time contributors, which - would otherwise let a returning contributor's workflow start without review. + forks). GitHub's public-repo default only gates first-time contributors. -omp-kata thus only ever serves trusted `push`/main + release builds. The -mounted-cache design also narrows the blast radius of those trusted runs: +The mounted-cache design still narrows the blast radius of trusted runs: no +shared `node_modules`, no shared Cargo `target/`, Bun installs from `bun.lock`, +and Cargo registry entries are checked against lockfile/source checksums. -- no shared `node_modules`; -- no shared Cargo `target/`; -- no shared Cargo git checkouts; -- Bun still installs from `bun.lock`; -- Cargo registry entries are checked against Cargo's lockfile/source checksums; -- Rust compiler outputs stay in sccache's content-addressed backend. +Pressure is mostly self-managing: -Pressure now has two places to watch: +- `bazel-cache/bazel-remote-data` - bazel-remote evicts LRU at `--max_size 90` + GiB on its own; watch `CurrSize` on `/status` and grow the PVC/flag together + if hit rates drop. +- `arc-runners/runner-cache` - coarse manual cleanup: scale `omp-kata` to zero, + delete `bun-store/` or `cargo-registry/` from the bound local-path volume, + let the next jobs repopulate it. -- `sccache/rustfs-data` for Rust compiler objects; -- `arc-runners/runner-cache` for Bun store + Cargo registry files. +### 5e. Legacy: sccache/RustFS (removed) -For the runner PVC, the safe cleanup is simple and coarse: scale `omp-kata` to -zero, delete either `bun-store/` or `cargo-registry/` from the bound local-path -volume, then let the next jobs repopulate it. There are no RustFS Bun objects and -no `node_modules` archives to prune anymore. +The previous cache stack - RustFS (S3) in the `sccache` namespace backing +sccache, rolling Cargo `target/` snapshots via `scripts/ci-target-cache.ts`, +and source-hash-addressed `.node` artifacts on the runner PVC - is superseded +by the Bazel pipeline above. Once no workflow references remain, tear it down: -RustFS remains inside the egress allow-list on `tcp/9000` because sccache still -uses it ([step 6](#6-runner-egress-lockdown)). +```bash +kubectl -n arc-runners delete secret sccache-s3 +kubectl delete namespace sccache # removes RustFS and the rustfs-data PVC +# then: drop the sccache tcp/9000 rule from runner-egress-lockdown, and remove +# the sccache-s3 envFrom entry, the native-artifacts subPath mount, and +# OMP_NATIVE_CACHE_DIR from arc-omp-values.yaml (+ helm upgrade). +``` --- @@ -617,7 +528,7 @@ spec: - 169.254.0.0/16 - 100.64.0.0/10 - /32 - # 3. RustFS shared cache (S3) over the cluster network. + # 3. RustFS shared cache (S3) - legacy, removed together with sccache. - to: - ipBlock: cidr: 10.43.0.0/16 @@ -627,6 +538,16 @@ spec: ports: - port: 9000 protocol: TCP + # 4. bazel-remote shared cache (gRPC) over the cluster network. + - to: + - ipBlock: + cidr: 10.43.0.0/16 + - namespaceSelector: + matchLabels: + kubernetes.io/metadata.name: bazel-cache + ports: + - port: 9092 + protocol: TCP ``` The allow-list, rule by rule: @@ -639,9 +560,22 @@ The allow-list, rule by rule: used by the **tailnet** (`100.64.0.0/10`), and the **host's own public IP** (`/32`). Note `10.0.0.0/8` covers the pod CIDR (`10.42.0.0/16`) and service CIDR (`10.43.0.0/16`), so this rule alone gives a job **zero** in-cluster - reach - rules 1 and 3 punch the only two holes the job legitimately needs. -- **Rule 3 - RustFS cache.** TCP 9000 to the service CIDR (`10.43.0.0/16`) and the - `sccache` namespace - the sccache backend from [step 5](#5-shared-caches-rustfs-s3--runner-pvc). + reach - the remaining rules punch the only holes the job legitimately needs. +- **Rule 3 - RustFS cache (legacy).** TCP 9000 to the service CIDR + (`10.43.0.0/16`) and the `sccache` namespace - drop this rule when the legacy + stack is torn down ([5e](#5e-legacy-sccacherustfs-removed)). +- **Rule 4 - bazel-remote cache.** TCP 9092 to the service CIDR + (`10.43.0.0/16`) and the `bazel-cache` namespace - the Bazel remote cache + from [step 5](#5-shared-caches-bazel-remote--runner-pvc). `setup.sh` appends + this rule idempotently via + [`runner-egress-patch.yaml`](../bazel-remote/runner-egress-patch.yaml): + + ```bash + kubectl -n arc-runners get networkpolicy runner-egress-lockdown -o json \ + | jq -e '.spec.egress[].to[]? | select(.namespaceSelector.matchLabels["kubernetes.io/metadata.name"] == "bazel-cache")' >/dev/null \ + || kubectl -n arc-runners patch networkpolicy runner-egress-lockdown \ + --type=json --patch-file=infra/bazel-remote/runner-egress-patch.yaml + ``` - **Ingress.** `policyTypes` lists `Ingress` but no ingress rule is defined, which is a **default-deny**: nothing can open a connection *into* a runner pod. @@ -657,7 +591,8 @@ Egress that survives rule 2 leaves the node via the host's firewalld masquerade - **No cluster rights.** Jobs run under `omp-kata-gha-rs-no-permission` with no RBAC ([step 4](#4-job-lifecycle-and-the-no-permission-serviceaccount)). - **Constrained network.** The policy above blocks the host, LAN, tailnet, and - arbitrary cluster pods; only DNS, the public internet, and RustFS are reachable. + arbitrary cluster pods; only DNS, the public internet, and the shared caches + (bazel-remote, plus legacy RustFS until torn down) are reachable. - **Ephemeral.** One job per VM, destroyed afterward - no state, secret, or artifact survives into the next job. - **Public-repo recommendation.** For a public repo, require approval for fork @@ -692,12 +627,12 @@ kubectl -n arc-systems logs deploy/arc-gha-rs-controller -f kubectl -n arc-runners logs ``` -**Verify the caches are being used.** A warm job logs -`bun cache backend: mounted PVC (...)` and -`sccache backend: shared S3 (sccache @ rustfs.sccache.svc.cluster.local:9000)` in -its step output. To inspect the mounted cache, scale to zero and check the -`runner-cache` local-path volume on the host; to inspect sccache objects, point -an S3 client at RustFS and list `s3://sccache/`. +**Verify the caches are being used.** A warm Bazel build on omp-kata logs +`remote cache hit` counts in its build summary; `curl -sk https://:8080/status` +shows `CurrSize`/`NumFiles` growing ([5a](#5a-deploy-bazel-remote)). A warm job +also logs `bun cache backend: mounted PVC (...)`. To inspect the mounted +runner cache, scale to zero and check the `runner-cache` local-path volume on +the host. **Resize a job's VM** - edit the `resources` block in `arc-omp-values.yaml` ([step 3](#3-scale-set-values-arc-omp-valuesyaml); requests = guaranteed VM size, diff --git a/infra/docs/README.md b/infra/docs/README.md index 98eaf30a6..4c4e95ef4 100644 --- a/infra/docs/README.md +++ b/infra/docs/README.md @@ -25,10 +25,10 @@ flowchart LR end end subgraph CACHE["shared caches"] - RUSTFS["ns: sccache
RustFS (S3) svc rustfs:9000 · PVC rustfs-data 100Gi"] + BRC["ns: bazel-cache
bazel-remote svc :9092 grpcs (cluster-internal) · PVC bazel-remote-data 100Gi"] PVC["ns: arc-runners
PVC runner-cache 100Gi
Bun store + Cargo registry"] end - SEC["Secret sccache-s3
S3 creds + endpoint"] + SEC["Secret bazel-remote-ci
cache write credentials"] end end @@ -38,8 +38,8 @@ flowchart LR POD --> VM SEC -.->|"envFrom"| POD NP -.->|"filters egress"| POD - JOB -->|"sccache (S3 SigV4)"| RUSTFS - JOB -->|"Bun/Cargo stores + native artifacts"| PVC + JOB -->|"Bazel remote cache (grpcs)"| BRC + JOB -->|"Bun/Cargo stores"| PVC POD -->|"allowed egress"| NAT NAT -->|"checkout / API / internet"| GH ``` @@ -50,16 +50,16 @@ Key properties baked into this design: - **Scale-to-zero.** `minRunners: 0` / `maxRunners: 4` — when no jobs are queued, zero runner pods (and zero microVMs) exist. - **Host-kernel isolation.** Jobs see the microVM's guest kernel, not the host kernel, so a kernel exploit in a job does not reach the host. - **No external registry.** The runner image is built on the host and imported straight into k3s' containerd. -- **Shared, in-cluster cache.** RustFS stores sccache outputs and rolling Cargo target snapshots; the runner-cache PVC stores Bun/Cargo downloads and source-hash-addressed native addons. Cache traffic stays on the host. +- **Shared, in-cluster cache.** bazel-remote stores Bazel action results and CAS blobs (Rust compilation, tests, native `.node` addons) behind TLS + htpasswd auth, with a public read-mostly NodePort for GitHub-hosted runners; the runner-cache PVC stores Bun/Cargo downloads. Cache traffic stays on the host. ## End-to-end job lifecycle 1. A workflow job targeting the self-hosted label (`runs-on:`) is **queued** on GitHub. 2. The **scale-set listener** in `arc-systems` is long-polling the GitHub Actions service and receives the job-assignment message. 3. The listener signals demand to the **ARC controller**, which scales the **EphemeralRunnerSet** up by one. -4. The controller creates a single **JIT-registered ephemeral runner pod** in `arc-runners`, with `runtimeClassName: kata-qemu` and the `sccache-s3` secret injected via `envFrom`. +4. The controller creates a single **JIT-registered ephemeral runner pod** in `arc-runners`, with `runtimeClassName: kata-qemu` and the `bazel-remote-ci` secret injected via `envFrom`. 5. containerd hands the pod to the Kata shim, which **boots a fresh QEMU/KVM microVM** (own guest kernel; the container rootfs is shared in over virtio-fs). No templating — every job gets a clean VM. -6. The runner agent inside the microVM **registers just-in-time and picks up exactly one job**. Steps run isolated from the host, using RustFS for Rust compilation caches, mounted PVC paths for package/native-artifact caches, and NAT egress for the public internet, all constrained by the `runner-egress-lockdown` NetworkPolicy. +6. The runner agent inside the microVM **registers just-in-time and picks up exactly one job**. Steps run isolated from the host, using bazel-remote for Bazel action/CAS caches, mounted PVC paths for package caches, and NAT egress for the public internet, all constrained by the `runner-egress-lockdown` NetworkPolicy. 7. The job finishes; the ephemeral runner **deregisters and the pod (and its microVM) is destroyed** — never reused. 8. When no jobs remain queued, the EphemeralRunnerSet **scales back to zero**, leaving no idle runners or VMs. @@ -71,7 +71,7 @@ Key properties baked into this design: | Kata Containers runtime | QEMU/KVM microVM runtime: containerd drop-in registering `kata-qemu` + the `kata-qemu` RuntimeClass | Kata `3.31.0` | [02-kata-runtime.md](02-kata-runtime.md) | | Preloaded runner image | Custom `actions/runner` image (build toolchain, Bun, Rust nightly + cross targets, native-build deps) built on the host and imported into k3s containerd — no registry | local dated tag | [03-runner-image.md](03-runner-image.md) | | ARC (runner scale set) | actions-runner-controller, `gha-runner-scale-set` flavor: controller in `arc-systems`, one scale set + listener, GitHub App auth | ARC `0.14.2` | [04-arc-and-caching.md](04-arc-and-caching.md) | -| Shared caches | RustFS S3 (`svc rustfs:9000`, 100Gi PVC) backs sccache and rolling Cargo target snapshots; `arc-runners/runner-cache` (100Gi PVC) holds Bun/Cargo downloads and immutable native addons; the `sccache-s3` secret and egress NetworkPolicy wire access | in-cluster services/storage | [04-arc-and-caching.md](04-arc-and-caching.md) | +| Shared caches | bazel-remote `v2.6.2` (`svc bazel-remote:9092` grpcs, cluster-internal only, 100Gi PVC) is the Bazel action/CAS cache; `arc-runners/runner-cache` (100Gi PVC) holds Bun/Cargo downloads; the `bazel-remote-ci` secret and egress NetworkPolicy wire access | in-cluster services/storage | [04-arc-and-caching.md](04-arc-and-caching.md) | ## Prerequisites @@ -96,11 +96,10 @@ The configs in this doc set are copied verbatim from the live host and then reda | `` | Your GitHub App ID | | `` | Your GitHub App installation ID | | `` | Your GitHub App private key (PEM) | -| `` | RustFS/S3 access key ID | -| `` | RustFS/S3 secret access key | +| `` / `` | Legacy RustFS/S3 credentials (only while the legacy sccache stack survives) | | `` | Any other password/key/token (named in context where it appears) | -Secret **values** never appear in these docs — only key names and placeholders. The following are intentionally **kept as-is** because they are not sensitive and are needed to follow along: the pod CIDR `10.42.0.0/16`, the service CIDR `10.43.0.0/16`, the CoreDNS service IP `10.43.0.10`, the bucket name `sccache`, in-cluster service DNS names and ports, and all version numbers. +Secret **values** never appear in these docs — only key names and placeholders. The following are intentionally **kept as-is** because they are not sensitive and are needed to follow along: the pod CIDR `10.42.0.0/16`, the service CIDR `10.43.0.0/16`, the CoreDNS service IP `10.43.0.10`, in-cluster service DNS names and ports (including `bazel-remote.bazel-cache.svc.cluster.local:9092` and NodePort `30992`), and all version numbers. ## Recommended setup order @@ -109,4 +108,4 @@ Work through the numbered guides in order — each builds on the previous: 1. **[01-host-and-cluster.md](01-host-and-cluster.md)** — Host prep (KVM, firewall/NAT) and the single-node k3s install, networking, and CNI. 2. **[02-kata-runtime.md](02-kata-runtime.md)** — Install Kata Containers, wire it into k3s' containerd, and register the `kata-qemu` RuntimeClass. 3. **[03-runner-image.md](03-runner-image.md)** — Build the preloaded runner image and import it into k3s containerd. -4. **[04-arc-and-caching.md](04-arc-and-caching.md)** — Install ARC and the runner scale set, deploy RustFS for `sccache`, add the runner cache PVC for Bun/Cargo, wire up the `sccache-s3` secret, and apply the egress NetworkPolicy. +4. **[04-arc-and-caching.md](04-arc-and-caching.md)** — Install ARC and the runner scale set, deploy the bazel-remote cache (`infra/bazel-remote/setup.sh`), add the runner cache PVC for Bun/Cargo, wire up the `bazel-remote-ci` secret, and apply the egress NetworkPolicy. diff --git a/infra/reload-runner.sh b/infra/reload-runner.sh index c84756bdc..6e7949493 100755 --- a/infra/reload-runner.sh +++ b/infra/reload-runner.sh @@ -154,7 +154,7 @@ verify_baked_tools() { local runner="$1" "$runner" --namespace k8s.io run --rm --entrypoint bash "$IMAGE" -lc ' set -e - for b in gh fd rg magick bun cargo rustc pkg-config clang lld sccache zstd zig cmake ninja cargo-nextest cargo-zigbuild cargo-xwin; do + for b in gh fd rg magick bun cargo rustc pkg-config clang lld sccache zstd zig cmake ninja cargo-nextest cargo-zigbuild cargo-xwin bazelisk bazel; do command -v "$b" >/dev/null || { echo "MISSING: $b"; exit 1; } done echo "tools OK | bun $(bun --version) | rust $(rustc --version) | sccache $(set -- $(sccache --version); echo "$2") | zstd $(zstd --version) | zig $(zig version) | cmake $(set -- $(cmake --version | head -1); echo "$3") | ninja $(ninja --version) | gh $(set -- $(gh --version | head -1); echo "$3")" @@ -186,7 +186,7 @@ build_with_docker() { echo "==> [2/5] verifying baked tools" docker run --rm --entrypoint bash "$IMAGE" -lc ' set -e - for b in gh fd rg magick bun cargo rustc pkg-config clang lld sccache zstd zig cmake ninja cargo-nextest cargo-zigbuild cargo-xwin; do + for b in gh fd rg magick bun cargo rustc pkg-config clang lld sccache zstd zig cmake ninja cargo-nextest cargo-zigbuild cargo-xwin bazelisk bazel; do command -v "$b" >/dev/null || { echo "MISSING: $b"; exit 1; } done echo "tools OK | bun $(bun --version) | rust $(rustc --version) | sccache $(set -- $(sccache --version); echo "$2") | zstd $(zstd --version) | zig $(zig version) | cmake $(set -- $(cmake --version | head -1); echo "$3") | ninja $(ninja --version) | gh $(set -- $(gh --version | head -1); echo "$3")" @@ -233,6 +233,13 @@ esac echo "==> [4/5] pointing ARC runner scale set at $IMAGE" sed -i "s#image: omp-kata-runner:.*#image: $IMAGE#" "$ARC_VALUES" sed -i -E "s/^maxRunners:.*/maxRunners: $RUNNER_MAX_RUNNERS/" "$ARC_VALUES" +# Ensure the bazel-remote cache credentials reach every runner pod (idempotent; +# the secret is created by infra/bazel-remote/setup.sh). +if ! grep -q 'name: bazel-remote-ci' "$ARC_VALUES"; then + awk '1; /^ envFrom:/ { print " - secretRef:"; print " name: bazel-remote-ci" }' \ + "$ARC_VALUES" > "$ARC_VALUES.tmp" && mv "$ARC_VALUES.tmp" "$ARC_VALUES" + grep -q 'name: bazel-remote-ci' "$ARC_VALUES" || { echo "failed to add bazel-remote-ci envFrom to $ARC_VALUES (no 'envFrom:' anchor?)" >&2; exit 1; } +fi helm upgrade "$ARC_RELEASE" --namespace "$ARC_NAMESPACE" --version "$ARC_CHART_VERSION" \ -f "$ARC_VALUES" \ --set-string "template.spec.containers[0].resources.requests.cpu=$RUNNER_CPU" \ diff --git a/infra/runner.Dockerfile b/infra/runner.Dockerfile index e09b4302f..1926cf0eb 100644 --- a/infra/runner.Dockerfile +++ b/infra/runner.Dockerfile @@ -10,6 +10,7 @@ # - C/build toolchain the native + canvas builds need # - bun (system-wide, on PATH) # - sccache + Zig + cmake/ninja + cargo-nextest/cargo-zigbuild/cargo-xwin for native builds +# - bazelisk (+ pre-warmed bazel 9.2.0) for the Bazel native pipeline # - rust nightly (pinned) + clippy/rustfmt/rust-analyzer + linux-arm64/windows-msvc targets # # Rebuild + reimport (see /root/omp-kata-runner.md) after bumping the ARGs below @@ -22,6 +23,8 @@ ARG SCCACHE_VERSION=0.15.0 ARG ZIG_VERSION=0.16.0 ARG CMAKE_VERSION=4.1.2 ARG NINJA_VERSION=1.13.1 +ARG BAZELISK_VERSION=1.29.0 +ARG BAZEL_VERSION=9.2.0 USER root ENV DEBIAN_FRONTEND=noninteractive @@ -70,6 +73,20 @@ RUN curl -fsSL "https://github.com/ninja-build/ninja/releases/download/v${NINJA_ && chmod +x /usr/local/bin/ninja \ && rm -f /tmp/ninja.zip +# bazelisk + pre-warmed bazel for the Bazel native pipeline. The prewarm run +# downloads the pinned bazel into BAZELISK_HOME at build time so runner jobs +# never fetch it; /opt/bazelisk is world-readable so the runner user reuses it. +ENV BAZELISK_HOME=/opt/bazelisk +RUN arch="$(dpkg --print-architecture)" \ + && curl -fsSL "https://github.com/bazelbuild/bazelisk/releases/download/v${BAZELISK_VERSION}/bazelisk-linux-${arch}" \ + -o /usr/local/bin/bazelisk \ + && chmod +x /usr/local/bin/bazelisk \ + && ln -sf /usr/local/bin/bazelisk /usr/local/bin/bazel \ + && mkdir -p "$BAZELISK_HOME" \ + && USE_BAZEL_VERSION="${BAZEL_VERSION}" bazelisk version +RUN chmod -R a+rX "$BAZELISK_HOME" \ + && rm -rf /root/.cache/bazel /root/.bazelrc + # rust toolchain + cargo helpers for the runner user; rustup default == pinned # nightly so Rust setup becomes a no-op on the preloaded image. USER runner diff --git a/package.json b/package.json index 6117fb558..37bc383fe 100644 --- a/package.json +++ b/package.json @@ -117,8 +117,9 @@ "build:native": "bun --cwd=packages/natives run build", "test": "bun scripts/ci-test-ts.ts local", "test:ts": "bun scripts/ci-test-ts.ts local-ts", - "test:scripts": "bun test scripts/ci-build-native.test.ts scripts/ci-concurrency.test.ts scripts/ci-release-build-binaries.test.ts scripts/ci-release-notes.test.ts scripts/ci-release-publish.test.ts scripts/ci-target-cache.test.ts scripts/fix-dts-extensions.test.ts scripts/link-omp.test.ts scripts/musl-release.test.ts", + "test:scripts": "bun test scripts/bazel-natives.test.ts scripts/ci-concurrency.test.ts scripts/ci-release-build-binaries.test.ts scripts/ci-release-notes.test.ts scripts/ci-release-publish.test.ts scripts/fix-dts-extensions.test.ts scripts/link-omp.test.ts scripts/musl-release.test.ts", "test:rs": "bun scripts/run-rs-task.ts test:rs", + "bazel:repin": "CARGO_BAZEL_REPIN=1 bazelisk fetch @crates//...", "check": "bun run --parallel check:ts check:rs", "check:ts": "bun run check:tools && bun run --workspaces --if-present check", "check:tools": "biome check . --no-errors-on-unmatched", @@ -140,7 +141,6 @@ "fix:changelogs": "bun scripts/fix-changelogs.ts", "fix:rs": "bun scripts/run-rs-task.ts fix:rs", "ci:check:full": "bun run check:ts", - "ci:build:native": "bun scripts/ci-build-native.ts", "ci:test:full": "bun run ci:test:ts && bun run test:rs", "ci:test:ts": "bun scripts/ci-test-ts.ts all", "ci:test:ts:workspace": "bun scripts/ci-test-ts.ts workspace", diff --git a/packages/natives/CHANGELOG.md b/packages/natives/CHANGELOG.md index 055d45f82..07aa1966b 100644 --- a/packages/natives/CHANGELOG.md +++ b/packages/natives/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Changed + +- Native addons now build with Bazel (rules_rust + hermetic zig cc toolchains for linux-gnu/musl, host Xcode for darwin, and a hermetic clang-cl + xwin toolchain for windows-msvc) instead of the napi CLI + cargo-zigbuild/cargo-xwin pipeline. `bun run build` drives `scripts/bazel-natives.ts`; TypeScript binding regeneration moved to `bun run build:bindings` (needed only when the Rust API surface changes). CI caches through a content-addressed bazel-remote action cache instead of sccache + target-directory snapshots, cutting warm native rebuilds from ~20 minutes to seconds and cold cache-hit builds to ~2.5 minutes. + ## [17.1.5] - 2026-07-27 ### Fixed diff --git a/packages/natives/native/loader-state.js b/packages/natives/native/loader-state.js index 68bb1b159..9f2299eba 100644 --- a/packages/natives/native/loader-state.js +++ b/packages/natives/native/loader-state.js @@ -688,7 +688,7 @@ function buildHelpMessage(ctx) { return ( "If installed via npm/bun, try reinstalling: bun install @oh-my-pi/pi-natives\n" + "If developing locally, build with: bun --cwd=packages/natives run build\n" + - "Optional x64 variants: TARGET_VARIANT=baseline|modern bun --cwd=packages/natives run build" + "Explicit targets: bun scripts/bazel-natives.ts --dest packages/natives/native" ); } diff --git a/packages/natives/package.json b/packages/natives/package.json index 1539b41ab..96fa99c5c 100644 --- a/packages/natives/package.json +++ b/packages/natives/package.json @@ -29,7 +29,8 @@ "main": "./native/index.js", "types": "./native/index.d.ts", "scripts": { - "build": "bun scripts/build-native.ts", + "build": "bun ../../scripts/bazel-natives.ts host --dest native", + "build:bindings": "bun scripts/build-bindings.ts", "check": "biome check . && bun run check:types", "check:types": "tsgo -p tsconfig.json --noEmit", "lint": "biome lint .", diff --git a/packages/natives/scripts/build-bindings.ts b/packages/natives/scripts/build-bindings.ts new file mode 100644 index 000000000..f0bfc810b --- /dev/null +++ b/packages/natives/scripts/build-bindings.ts @@ -0,0 +1,197 @@ +/** + * Dev-only napi build that regenerates the TypeScript bindings + * (native/index.d.ts) and the runtime enum exports. Shipping addons are built + * by Bazel (`bun run build` → scripts/bazel-natives.ts); run this + * (`bun run build:bindings`) only when the Rust API changes its exported + * typedefs. Host target only, local cargo profile — no cross-compilation. + */ +import * as fs from "node:fs/promises"; +import * as path from "node:path"; +import { $ } from "bun"; +import { detectHostAvx2Support } from "../../../scripts/host-detect"; +import { generateEnumExports } from "./gen-enums"; + +// pcre2-sys prefers a system libpcre2 when pkg-config finds one. Keep the +// static build so the local addon never retains host Homebrew paths. +process.env.PCRE2_SYS_STATIC ??= "1"; + +// audiopus_sys builds its bundled opus via CMake; that opus tree declares a +// cmake_minimum_required below 3.5, which CMake 4.x refuses without this +// policy override. +process.env.CMAKE_POLICY_VERSION_MINIMUM ??= "3.5"; + +const repoRoot = path.join(import.meta.dir, "../../.."); +const rustDir = path.join(repoRoot, "crates/pi-natives"); +const nativeDir = path.join(import.meta.dir, "../native"); +const packageJsonPath = path.join(import.meta.dir, "../package.json"); + +type X64Variant = "modern" | "baseline"; + +const effectiveVariant: X64Variant | null = + process.arch === "x64" ? (detectHostAvx2Support() ? "modern" : "baseline") : null; +const variantSuffix = effectiveVariant ? `-${effectiveVariant}` : ""; + +// Pin Rust target-cpu so x64 baseline/modern variants get a reproducible ISA floor +// instead of inheriting the host CPU when RUSTFLAGS is unset. Non-x64 builds keep +// the target's default CPU features: `-C target-cpu=native` would bake the build +// host's CPU features into the addon and trips ring 0.17's aarch64-apple +// const assertion (CAPS_STATIC == MIN_STATIC_FEATURES). +if (!Bun.env.RUSTFLAGS) { + if (effectiveVariant === "modern") { + Bun.env.RUSTFLAGS = "-C target-cpu=x86-64-v3"; + } else if (effectiveVariant === "baseline") { + Bun.env.RUSTFLAGS = "-C target-cpu=x86-64-v2"; + } +} + +async function cleanupStaleTemps(dir: string): Promise { + try { + const entries = await fs.readdir(dir); + for (const entry of entries) { + if (entry.includes(".tmp.") || entry.includes(".old.") || entry.includes(".new.")) { + await fs.unlink(path.join(dir, entry)).catch(() => {}); + } + } + } catch { + // Directory might not exist yet + } +} + +async function installBinary(src: string, dest: string): Promise { + const tempPath = `${dest}.tmp.${process.pid}`; + + await fs.copyFile(src, tempPath); + + try { + // Atomic rename - works even if dest is loaded on Linux/macOS (old inode stays valid) + await fs.rename(tempPath, dest); + } catch { + // On Windows, loaded DLLs cannot be overwritten via rename + // Try delete-then-rename as fallback + try { + await fs.unlink(dest); + } catch (unlinkErr) { + if ((unlinkErr as NodeJS.ErrnoException).code !== "ENOENT") { + await fs.unlink(tempPath).catch(() => {}); + const isWindows = process.platform === "win32"; + throw new Error( + `Cannot replace ${path.basename(dest)}${isWindows ? " (file may be in use - close any running processes)" : ""}: ${(unlinkErr as Error).message}`, + ); + } + } + try { + await fs.rename(tempPath, dest); + } catch (finalErr) { + await fs.unlink(tempPath).catch(() => {}); + throw new Error(`Failed to install ${path.basename(dest)}: ${(finalErr as Error).message}`); + } + } +} + +async function resolveBuiltAddonPath(outputDir: string, canonicalFilename: string): Promise { + // napi-rs 3.x emits `${binaryName}.${platformArchABI}.node` where + // platformArchABI is e.g. `darwin-x64`, `linux-x64-gnu`, `win32-x64-msvc`, + // `darwin-arm64`. Build into an isolated output dir so only this invocation's + // outputs are considered fresh candidates. + const entries = await fs.readdir(outputDir); + + if (entries.includes(canonicalFilename)) { + return path.join(outputDir, canonicalFilename); + } + + const generatedCandidates = entries.filter( + entry => entry.startsWith(`pi_natives.${process.platform}-${process.arch}`) && entry.endsWith(".node"), + ); + + if (generatedCandidates.length === 1) { + return path.join(outputDir, generatedCandidates[0]); + } + + if (generatedCandidates.length === 0) { + throw new Error( + `napi build succeeded but did not emit a native addon for ${process.platform}-${process.arch}. Expected ${canonicalFilename} or an environment-tagged variant in ${outputDir}. Directory contents: ${entries.join(", ") || "(empty)"}.`, + ); + } + + const formattedCandidates = generatedCandidates.map(candidate => ` - ${candidate}`).join("\n"); + throw new Error( + `napi build emitted multiple unrecognized native addons for ${process.platform}-${process.arch}:\n${formattedCandidates}`, + ); +} + +async function installGeneratedBindings(outputDir: string): Promise { + const sourcePath = path.join(outputDir, "index.d.ts"); + const destPath = path.join(nativeDir, "index.d.ts"); + try { + await fs.copyFile(sourcePath, destPath); + } catch (err) { + const message = err instanceof Error ? err.message : String(err); + throw new Error(`Failed to install generated index.d.ts: ${message}`); + } +} + +const canonicalAddonFilename = `pi_natives.${process.platform}-${process.arch}${variantSuffix}.node`; +const canonicalAddonPath = path.join(nativeDir, canonicalAddonFilename); + +console.log(`Building pi-natives bindings for ${process.platform}-${process.arch}${variantSuffix} (local)…`); + +await fs.mkdir(nativeDir, { recursive: true }); +await cleanupStaleTemps(nativeDir); +await fs.mkdir(path.join(nativeDir, ".build"), { recursive: true }); +const buildOutputDir = await fs.mkdtemp( + path.join(nativeDir, ".build", `${process.platform}-${process.arch}-${effectiveVariant ?? "default"}-local-`), +); + +// Resolve napi bin directly: `bunx @napi-rs/cli` can pick up the wrong bin on +// systems where `cli` exists on PATH (e.g. Mono's /usr/bin/cli on Ubuntu). +const napiBin = Bun.which("napi", { + PATH: [ + path.join(import.meta.dir, "..", "node_modules", ".bin"), + path.join(repoRoot, "node_modules", ".bin"), + process.env.PATH ?? "", + ].join(path.delimiter), +}); +if (!napiBin) { + throw new Error("Could not locate @napi-rs/cli `napi` binary in node_modules/.bin"); +} + +const napiArgs = [ + "build", + "--manifest-path", + path.join(rustDir, "Cargo.toml"), + "--package-json-path", + packageJsonPath, + "--platform", + "--no-js", + "--dts", + "index.d.ts", + "-o", + buildOutputDir, + "--profile", + "local", +]; + +try { + // The package declares Bun as its build runtime. Invoke napi's JavaScript + // entry through this Bun process instead of its `#!/usr/bin/env node` shim so + // an old host Node installation cannot make an otherwise supported Bun build fail. + const buildResult = await $`${process.execPath} ${napiBin} ${napiArgs}`.nothrow(); + if (buildResult.exitCode !== 0) { + const stderr = buildResult.stderr?.toString("utf-8") ?? ""; + throw new Error(`napi build failed${stderr ? `:\n${stderr}` : ""}`); + } + + const builtAddonPath = await resolveBuiltAddonPath(buildOutputDir, canonicalAddonFilename); + if (builtAddonPath !== canonicalAddonPath) { + console.log(`Normalizing native addon filename: ${path.basename(builtAddonPath)} → ${canonicalAddonFilename}`); + await installBinary(builtAddonPath, canonicalAddonPath); + } + + await installGeneratedBindings(buildOutputDir); + + await generateEnumExports(); + + console.log("Bindings build complete."); +} finally { + await fs.rm(buildOutputDir, { recursive: true, force: true }); +} diff --git a/packages/natives/scripts/build-native.ts b/packages/natives/scripts/build-native.ts deleted file mode 100644 index 419e595b1..000000000 --- a/packages/natives/scripts/build-native.ts +++ /dev/null @@ -1,465 +0,0 @@ -import * as fs from "node:fs/promises"; -import * as path from "node:path"; -import { $ } from "bun"; -import { detectHostAvx2Support } from "../../../scripts/host-detect"; -import { generateEnumExports } from "./gen-enums"; - -// pcre2-sys prefers a system libpcre2 when pkg-config finds one. Release addons -// must not retain host Homebrew paths such as /opt/homebrew/opt/pcre2/*.dylib. -process.env.PCRE2_SYS_STATIC ??= "1"; - -// audiopus_sys builds its bundled opus via CMake; that opus tree declares a -// cmake_minimum_required below 3.5, which CMake 4.x refuses without this -// policy override. -process.env.CMAKE_POLICY_VERSION_MINIMUM ??= "3.5"; - -const repoRoot = path.join(import.meta.dir, "../../.."); -const rustDir = path.join(repoRoot, "crates/pi-natives"); -const nativeDir = path.join(import.meta.dir, "../native"); -const packageJsonPath = path.join(import.meta.dir, "../package.json"); - -const crossTarget = Bun.env.CROSS_TARGET; -const targetPlatform = Bun.env.TARGET_PLATFORM || process.platform; -const targetArch = Bun.env.TARGET_ARCH || process.arch; -const configuredVariantRaw = Bun.env.TARGET_VARIANT; -const isCrossCompile = Boolean(crossTarget) || targetPlatform !== process.platform || targetArch !== process.arch; - -type X64Variant = "modern" | "baseline"; - -let configuredVariant: X64Variant | undefined; -if (configuredVariantRaw) { - if (targetArch !== "x64") { - throw new Error(`TARGET_VARIANT is only supported for x64 builds, got ${targetPlatform}-${targetArch}.`); - } - if (configuredVariantRaw !== "modern" && configuredVariantRaw !== "baseline") { - throw new Error(`Unsupported TARGET_VARIANT: ${configuredVariantRaw}. Expected "modern" or "baseline".`); - } - configuredVariant = configuredVariantRaw; -} - -function resolveEffectiveVariant(): X64Variant | null { - if (targetArch !== "x64") return null; - if (configuredVariant) return configuredVariant; - if (isCrossCompile) { - throw new Error("x64 cross-builds require TARGET_VARIANT=modern or TARGET_VARIANT=baseline."); - } - return detectHostAvx2Support() ? "modern" : "baseline"; -} -const effectiveVariant = resolveEffectiveVariant(); -const variantSuffix = effectiveVariant ? `-${effectiveVariant}` : ""; - -// Pin Rust target-cpu so x64 baseline/modern variants get a reproducible ISA floor -// instead of inheriting the host CPU when RUSTFLAGS is unset. Non-x64 builds keep -// the target's default CPU features: `-C target-cpu=native` would bake the build -// host's CPU features into shipped artifacts and trips ring 0.17's aarch64-apple -// const assertion (CAPS_STATIC == MIN_STATIC_FEATURES). -if (!isCrossCompile && !Bun.env.RUSTFLAGS) { - if (effectiveVariant === "modern") { - Bun.env.RUSTFLAGS = "-C target-cpu=x86-64-v3"; - } else if (effectiveVariant === "baseline") { - Bun.env.RUSTFLAGS = "-C target-cpu=x86-64-v2"; - } -} - -async function cleanupStaleTemps(dir: string): Promise { - try { - const entries = await fs.readdir(dir); - for (const entry of entries) { - if (entry.includes(".tmp.") || entry.includes(".old.") || entry.includes(".new.")) { - await fs.unlink(path.join(dir, entry)).catch(() => {}); - } - } - } catch { - // Directory might not exist yet - } -} - -async function resolveCargoTargetDir(): Promise { - // Mirror napi's resolution order (CARGO_BUILD_TARGET_DIR, else `cargo - // metadata`'s target_directory, which already honors CARGO_TARGET_DIR and - // config files) so a symlink we create lands exactly where napi looks. - const explicit = process.env.CARGO_BUILD_TARGET_DIR; - if (explicit) return path.resolve(explicit); - const meta = await $`cargo metadata --no-deps --format-version 1`.cwd(rustDir).quiet().nothrow(); - if (meta.exitCode !== 0) return null; - try { - const parsed = JSON.parse(meta.stdout.toString("utf-8")) as { target_directory?: string }; - return parsed.target_directory ?? null; - } catch { - return null; - } -} - -async function ensureZigbuildTargetDirLink(suffixedTriple: string, bareTriple: string): Promise { - // napi 3.7.0 reads the cdylib from `/<--target>//`, using - // the full `--target` string verbatim. cargo-zigbuild strips the `.` - // floor suffix before invoking cargo, so the cdylib actually lands under the - // bare-triple directory. Point the suffixed directory napi expects at the - // bare one or postBuild aborts with "Failed to copy artifact". No-op for - // targets without a floor suffix (arch-only cross builds, MSVC). - if (suffixedTriple === bareTriple) return; - const targetDir = await resolveCargoTargetDir(); - if (!targetDir) { - console.warn(`Could not resolve cargo target dir; skipping zigbuild target-dir link for ${suffixedTriple}.`); - return; - } - const linkPath = path.join(targetDir, suffixedTriple); - await fs.mkdir(targetDir, { recursive: true }); - let exists = false; - let isSymlink = false; - try { - const stats = await fs.lstat(linkPath); - exists = true; - isSymlink = stats.isSymbolicLink(); - } catch { - exists = false; - } - // Never clobber a real build directory; only replace a stale symlink. - if (exists && !isSymlink) return; - if (exists) await fs.unlink(linkPath); - await fs.symlink(bareTriple, linkPath); -} - -async function installBinary(src: string, dest: string): Promise { - const tempPath = `${dest}.tmp.${process.pid}`; - - await fs.copyFile(src, tempPath); - - try { - // Atomic rename - works even if dest is loaded on Linux/macOS (old inode stays valid) - await fs.rename(tempPath, dest); - } catch { - // On Windows, loaded DLLs cannot be overwritten via rename - // Try delete-then-rename as fallback - try { - await fs.unlink(dest); - } catch (unlinkErr) { - if ((unlinkErr as NodeJS.ErrnoException).code !== "ENOENT") { - await fs.unlink(tempPath).catch(() => {}); - const isWindows = process.platform === "win32"; - throw new Error( - `Cannot replace ${path.basename(dest)}${isWindows ? " (file may be in use - close any running processes)" : ""}: ${(unlinkErr as Error).message}`, - ); - } - } - try { - await fs.rename(tempPath, dest); - } catch (finalErr) { - await fs.unlink(tempPath).catch(() => {}); - throw new Error(`Failed to install ${path.basename(dest)}: ${(finalErr as Error).message}`); - } - } -} -async function resolveBuiltAddonPath(outputDir: string, canonicalFilename: string): Promise { - // napi-rs 3.x emits `${binaryName}.${platformArchABI}.node` where - // platformArchABI is e.g. `darwin-x64`, `linux-x64-gnu`, `win32-x64-msvc`, - // `darwin-arm64`. Build into an isolated output dir so only this invocation's - // outputs are considered fresh candidates. - const entries = await fs.readdir(outputDir); - - if (entries.includes(canonicalFilename)) { - return path.join(outputDir, canonicalFilename); - } - - const generatedCandidates = entries.filter(entry => { - if (!entry.startsWith(`pi_natives.${targetPlatform}-${targetArch}`) || !entry.endsWith(".node")) { - return false; - } - return true; - }); - - if (generatedCandidates.length === 1) { - return path.join(outputDir, generatedCandidates[0]); - } - - if (generatedCandidates.length === 0) { - throw new Error( - `napi build succeeded but did not emit a native addon for ${targetPlatform}-${targetArch}. Expected ${canonicalFilename} or an environment-tagged variant in ${outputDir}. Directory contents: ${entries.join(", ") || "(empty)"}.`, - ); - } - - const formattedCandidates = generatedCandidates.map(candidate => ` - ${candidate}`).join("\n"); - throw new Error( - `napi build emitted multiple unrecognized native addons for ${targetPlatform}-${targetArch}:\n${formattedCandidates}`, - ); -} - -function resolveBuildOutputDirPrefix(profileLabel: string): string { - const buildTarget = crossTarget ?? `${targetPlatform}-${targetArch}`; - const variantLabel = effectiveVariant ?? "default"; - return path.join(nativeDir, ".build", `${buildTarget}-${variantLabel}-${profileLabel}-`); -} - -async function installGeneratedBindings(outputDir: string): Promise { - const sourcePath = path.join(outputDir, "index.d.ts"); - const destPath = path.join(nativeDir, "index.d.ts"); - try { - await fs.copyFile(sourcePath, destPath); - } catch (err) { - const message = err instanceof Error ? err.message : String(err); - throw new Error(`Failed to install generated index.d.ts: ${message}`); - } -} - -async function isElfFile(filePath: string): Promise { - const handle = await fs.open(filePath, "r"); - try { - const buffer = Buffer.alloc(4); - const { bytesRead } = await handle.read(buffer, 0, buffer.length, 0); - return bytesRead === 4 && buffer[0] === 0x7f && buffer[1] === 0x45 && buffer[2] === 0x4c && buffer[3] === 0x46; - } finally { - await handle.close(); - } -} - -function readElfUint(buffer: Buffer, offset: number, byteLength: 2 | 4 | 8, littleEndian: boolean): number { - if (offset < 0 || offset + byteLength > buffer.length) { - throw new Error("ELF section table is truncated."); - } - if (byteLength === 2) return littleEndian ? buffer.readUInt16LE(offset) : buffer.readUInt16BE(offset); - if (byteLength === 4) return littleEndian ? buffer.readUInt32LE(offset) : buffer.readUInt32BE(offset); - const value = littleEndian ? buffer.readBigUInt64LE(offset) : buffer.readBigUInt64BE(offset); - const numberValue = Number(value); - if (!Number.isSafeInteger(numberValue)) { - throw new Error(`ELF integer exceeds JavaScript's safe range: ${value}`); - } - return numberValue; -} - -function readCString(buffer: Buffer, offset: number): string { - if (offset < 0 || offset >= buffer.length) return ""; - let end = offset; - while (end < buffer.length && buffer[end] !== 0) end++; - return buffer.toString("utf8", offset, end); -} - -function readElfSectionNames(buffer: Buffer): string[] { - if (buffer.length < 0x40 || buffer[0] !== 0x7f || buffer[1] !== 0x45 || buffer[2] !== 0x4c || buffer[3] !== 0x46) { - return []; - } - const elfClass = buffer[4]; - const endian = buffer[5]; - if (elfClass !== 1 && elfClass !== 2) throw new Error(`Unsupported ELF class: ${elfClass}`); - if (endian !== 1 && endian !== 2) throw new Error(`Unsupported ELF endian marker: ${endian}`); - - const is64Bit = elfClass === 2; - const littleEndian = endian === 1; - const sectionHeaderOffset = is64Bit - ? readElfUint(buffer, 0x28, 8, littleEndian) - : readElfUint(buffer, 0x20, 4, littleEndian); - const sectionHeaderEntrySize = readElfUint(buffer, is64Bit ? 0x3a : 0x2e, 2, littleEndian); - const sectionHeaderCount = readElfUint(buffer, is64Bit ? 0x3c : 0x30, 2, littleEndian); - const sectionNameTableIndex = readElfUint(buffer, is64Bit ? 0x3e : 0x32, 2, littleEndian); - if (sectionHeaderOffset === 0 || sectionHeaderCount === 0) return []; - if (sectionNameTableIndex >= sectionHeaderCount) { - throw new Error("ELF section name table index is out of bounds."); - } - - const sectionHeadersEnd = sectionHeaderOffset + sectionHeaderEntrySize * sectionHeaderCount; - if (sectionHeadersEnd > buffer.length) { - throw new Error("ELF section headers extend past the end of the file."); - } - - const sectionHeader = (index: number) => sectionHeaderOffset + sectionHeaderEntrySize * index; - const sectionNameTableHeader = sectionHeader(sectionNameTableIndex); - const nameTableOffset = readElfUint( - buffer, - sectionNameTableHeader + (is64Bit ? 0x18 : 0x10), - is64Bit ? 8 : 4, - littleEndian, - ); - const nameTableSize = readElfUint( - buffer, - sectionNameTableHeader + (is64Bit ? 0x20 : 0x14), - is64Bit ? 8 : 4, - littleEndian, - ); - if (nameTableOffset + nameTableSize > buffer.length) { - throw new Error("ELF section name table extends past the end of the file."); - } - - const names: string[] = []; - const nameTable = buffer.subarray(nameTableOffset, nameTableOffset + nameTableSize); - for (let index = 0; index < sectionHeaderCount; index++) { - const nameOffset = readElfUint(buffer, sectionHeader(index), 4, littleEndian); - names.push(readCString(nameTable, nameOffset)); - } - return names; -} - -const forbiddenStrippedElfSections = new Set([".symtab", ".strtab"]); - -function getForbiddenElfSections(sectionNames: string[]): string[] { - return sectionNames.filter( - sectionName => - forbiddenStrippedElfSections.has(sectionName) || - sectionName.startsWith(".debug_") || - sectionName.startsWith(".zdebug_"), - ); -} - -async function runStripTool(addonPath: string): Promise { - const toolSpecs = [ - { command: "llvm-strip", args: ["--strip-unneeded"] }, - { command: "strip", args: ["--strip-unneeded"] }, - ]; - for (const tool of toolSpecs) { - const executable = Bun.which(tool.command); - if (!executable) continue; - const proc = Bun.spawn([executable, ...tool.args, addonPath], { - stdout: "pipe", - stderr: "pipe", - }); - const exitCode = await proc.exited; - if (exitCode === 0) return; - } -} - -async function stripAndVerifyNativeAddon(addonPath: string): Promise { - if (profileLabel !== "ci") return; - if (!(await isElfFile(addonPath))) return; - - await runStripTool(addonPath); - const sectionNames = readElfSectionNames(await fs.readFile(addonPath)); - const forbiddenSections = getForbiddenElfSections(sectionNames); - if (forbiddenSections.length > 0) { - throw new Error( - `Native addon ${path.basename(addonPath)} still contains stripped-release forbidden ELF sections: ${forbiddenSections.join(", ")}`, - ); - } -} - -const isCI = Boolean(Bun.env.CI); -const useLocalProfile = !isCI && !isCrossCompile; -const profileLabel = useLocalProfile ? "local" : "ci"; -const profileSuffix = ` (${profileLabel})`; - -const buildOutputDirPrefix = resolveBuildOutputDirPrefix(profileLabel); - -// Build napi args -const napiArgs = [ - "build", - "--manifest-path", - path.join(rustDir, "Cargo.toml"), - "--package-json-path", - packageJsonPath, - "--platform", - "--no-js", - "--dts", - "index.d.ts", - "-o", - "", - "--profile", - profileLabel, -]; - -if (crossTarget) { - napiArgs.push("--target", crossTarget); - // Route through `cargo-zigbuild` (non-MSVC targets) or `cargo-xwin` - // (MSVC targets). The napi CLI picks the right backend from the target. - napiArgs.push("--cross-compile"); - // cargo-zigbuild encodes the glibc floor as a `..` suffix on - // the triple (e.g. `x86_64-unknown-linux-gnu.2.17`) but strips it before - // invoking cargo, so cargo's TARGET — and the artifact dir — use the bare - // triple. - const bareTriple = crossTarget.replace(/\.\d+(?:\.\d+)*$/, ""); - // `zig cc` enables `NDEBUG` at `-O3`, which trips tree-sitter-just's - // scanner.c (`#error "expected assertions to be enabled"`). cc-rs reads - // `CFLAGS_` (dashes → underscores) keyed off cargo's bare TARGET, so - // the override must use the bare triple or it is silently dropped. - if (!crossTarget.endsWith("-msvc")) { - const envKey = `CFLAGS_${bareTriple.replace(/-/g, "_")}`; - const existing = process.env[envKey] ?? ""; - process.env[envKey] = existing ? `${existing} -UNDEBUG` : "-UNDEBUG"; - } - // MSVC cross builds compile C deps with clang-cl, which — unlike real MSVC — - // enforces per-function target features: opus' silk/x86 SSE4.1 units fail to - // build without the feature enabled globally. The win32 x64 addon floor is - // x86-64-v2 (SSE4.2 inclusive), so enabling it for all C deps is safe. - // cargo-xwin overwrites `CFLAGS_` on the cargo it spawns but appends - // the plain `CFLAGS`/`CXXFLAGS` values into it, so those are the only knobs - // that survive. - if (crossTarget.endsWith("-msvc") && targetArch === "x64") { - for (const envKey of ["CFLAGS", "CXXFLAGS"]) { - const existing = process.env[envKey] ?? ""; - const sseFlags = "-msse4.1 -msse4.2"; - process.env[envKey] = existing ? `${existing} ${sseFlags}` : sseFlags; - } - } - // napi 3.7.0 resolves the built artifact from the FULL `--target` directory, - // but cargo-zigbuild writes under the bare triple; bridge the two so napi's - // postBuild copyArtifact succeeds for glibc-pinned targets. - await ensureZigbuildTargetDirLink(crossTarget, bareTriple); -} - -const canonicalAddonFilename = `pi_natives.${targetPlatform}-${targetArch}${variantSuffix}.node`; -const canonicalAddonPath = path.join(nativeDir, canonicalAddonFilename); - -console.log(`Building pi-natives for ${targetPlatform}-${targetArch}${variantSuffix}${profileSuffix}…`); - -await fs.mkdir(nativeDir, { recursive: true }); -await cleanupStaleTemps(nativeDir); -await fs.mkdir(path.join(nativeDir, ".build"), { recursive: true }); -const buildOutputDir = await fs.mkdtemp(buildOutputDirPrefix); -napiArgs[10] = buildOutputDir; - -// Resolve napi bin directly: `bunx @napi-rs/cli` can pick up the wrong bin on -// systems where `cli` exists on PATH (e.g. Mono's /usr/bin/cli on Ubuntu). -const napiBin = Bun.which("napi", { - PATH: [ - path.join(import.meta.dir, "..", "node_modules", ".bin"), - path.join(repoRoot, "node_modules", ".bin"), - process.env.PATH ?? "", - ].join(path.delimiter), -}); -if (!napiBin) { - throw new Error("Could not locate @napi-rs/cli `napi` binary in node_modules/.bin"); -} - -// The package declares Bun as its build runtime. Invoke napi's JavaScript entry -// through this Bun process instead of its `#!/usr/bin/env node` shim so an old -// host Node installation cannot make an otherwise supported Bun build fail. -async function runNapiBuildWithSccacheFallback() { - let buildResult = await $`${process.execPath} ${napiBin} ${napiArgs}`.nothrow(); - let stderr = buildResult.stderr?.toString("utf-8") ?? ""; - if ( - buildResult.exitCode !== 0 && - process.env.RUSTC_WRAPPER === "sccache" && - stderr.includes("sccache: error") && - stderr.includes("cache storage failed") - ) { - const retryEnv = { ...process.env }; - delete retryEnv.RUSTC_WRAPPER; - delete retryEnv.SCCACHE_BUCKET; - delete retryEnv.SCCACHE_ENDPOINT; - delete retryEnv.SCCACHE_REGION; - delete retryEnv.AWS_ACCESS_KEY_ID; - delete retryEnv.AWS_SECRET_ACCESS_KEY; - console.log("sccache storage unavailable; retrying native build without RUSTC_WRAPPER"); - buildResult = await $`${process.execPath} ${napiBin} ${napiArgs}`.env(retryEnv).nothrow(); - stderr = buildResult.stderr?.toString("utf-8") ?? ""; - } - return { buildResult, stderr }; -} - -try { - const { buildResult, stderr } = await runNapiBuildWithSccacheFallback(); - if (buildResult.exitCode !== 0) { - throw new Error(`napi build failed${stderr ? `:\n${stderr}` : ""}`); - } - - const builtAddonPath = await resolveBuiltAddonPath(buildOutputDir, canonicalAddonFilename); - await stripAndVerifyNativeAddon(builtAddonPath); - if (builtAddonPath !== canonicalAddonPath) { - console.log(`Normalizing native addon filename: ${path.basename(builtAddonPath)} → ${canonicalAddonFilename}`); - await installBinary(builtAddonPath, canonicalAddonPath); - } - - await installGeneratedBindings(buildOutputDir); - - await generateEnumExports(); - - console.log("Build complete."); -} finally { - await fs.rm(buildOutputDir, { recursive: true, force: true }); -} diff --git a/scripts/bazel-natives.test.ts b/scripts/bazel-natives.test.ts new file mode 100644 index 000000000..b8fdddeea --- /dev/null +++ b/scripts/bazel-natives.test.ts @@ -0,0 +1,115 @@ +import { describe, expect, test } from "bun:test"; +import { + conventionOutputPaths, + type HostInfo, + hostTargetName, + parseBazelFilesOutput, + parseCliArgs, + resolveTargetLabels, +} from "./bazel-natives"; + +const linuxModern: HostInfo = { platform: "linux", arch: "x64", avx2: true }; +const linuxBaseline: HostInfo = { platform: "linux", arch: "x64", avx2: false }; +const macArm: HostInfo = { platform: "darwin", arch: "arm64", avx2: false }; + +describe("hostTargetName", () => { + test("picks the x64 variant from AVX2 support", () => { + expect(hostTargetName(linuxModern)).toBe("linux-x64-modern"); + expect(hostTargetName(linuxBaseline)).toBe("linux-x64-baseline"); + // darwin x64 ships baseline only; AVX2 must not invent a modern target. + expect(hostTargetName({ platform: "darwin", arch: "x64", avx2: true })).toBe("darwin-x64-baseline"); + }); + + test("maps non-x64 and windows hosts", () => { + expect(hostTargetName(macArm)).toBe("darwin-arm64"); + expect(hostTargetName({ platform: "linux", arch: "arm64", avx2: false })).toBe("linux-arm64"); + expect(hostTargetName({ platform: "win32", arch: "x64", avx2: true })).toBe("win32-x64-baseline"); + }); + + test("rejects hosts without an addon target", () => { + expect(() => hostTargetName({ platform: "freebsd", arch: "x64", avx2: false })).toThrow( + /No pi_natives addon target/, + ); + expect(() => hostTargetName({ platform: "win32", arch: "arm64", avx2: false })).toThrow( + /No pi_natives addon target/, + ); + }); +}); + +describe("resolveTargetLabels", () => { + test("maps explicit names, pseudo-targets, and aggregates to labels", () => { + expect(resolveTargetLabels(["linux-x64-baseline", "linux-x64-modern"], macArm)).toEqual([ + "//:natives-linux-x64-baseline", + "//:natives-linux-x64-modern", + ]); + expect(resolveTargetLabels(["host"], linuxModern)).toEqual(["//:natives-linux-x64-modern"]); + expect(resolveTargetLabels(["linux-all", "darwin-all"], macArm)).toEqual([ + "//:natives-linux-all", + "//:natives-darwin-all", + ]); + }); + + test("deduplicates and rejects unknown targets", () => { + expect(resolveTargetLabels(["host", "darwin-arm64"], macArm)).toEqual(["//:natives-darwin-arm64"]); + expect(() => resolveTargetLabels(["linux-x64"], macArm)).toThrow(/Unknown native target "linux-x64"/); + }); +}); + +describe("conventionOutputPaths", () => { + test("builds bazel-bin paths with canonical filenames (musl reuses linux names)", () => { + expect(conventionOutputPaths(["linux-musl-x64-baseline", "win32-x64-baseline"], macArm)).toEqual([ + "bazel-bin/natives-linux-musl-x64-baseline/pi_natives.linux-x64-baseline.node", + "bazel-bin/natives-win32-x64-baseline/pi_natives.win32-x64-baseline.node", + ]); + }); + + test("expands aggregates and the host pseudo-target", () => { + expect(conventionOutputPaths(["darwin-all"], macArm)).toEqual([ + "bazel-bin/natives-darwin-arm64/pi_natives.darwin-arm64.node", + "bazel-bin/natives-darwin-x64-baseline/pi_natives.darwin-x64-baseline.node", + ]); + expect(conventionOutputPaths(["host"], linuxBaseline)).toEqual([ + "bazel-bin/natives-linux-x64-baseline/pi_natives.linux-x64-baseline.node", + ]); + }); +}); + +describe("parseBazelFilesOutput", () => { + test("keeps only .node paths, trimmed and deduplicated", () => { + const output = [ + "bazel-bin/natives-linux-x64-baseline/pi_natives.linux-x64-baseline.node", + " bazel-bin/natives-linux-x64-modern/pi_natives.linux-x64-modern.node ", + "bazel-bin/natives-linux-x64-baseline/pi_natives.linux-x64-baseline.node", + "INFO: Analyzed 2 targets (0 packages loaded, 0 targets configured).", + "", + ].join("\n"); + expect(parseBazelFilesOutput(output)).toEqual([ + "bazel-bin/natives-linux-x64-baseline/pi_natives.linux-x64-baseline.node", + "bazel-bin/natives-linux-x64-modern/pi_natives.linux-x64-modern.node", + ]); + }); + + test("returns empty for output without addon files", () => { + expect(parseBazelFilesOutput("INFO: Build completed successfully\n")).toEqual([]); + }); +}); + +describe("parseCliArgs", () => { + test("splits targets, --dest, and passthrough bazel args", () => { + expect( + parseCliArgs(["linux-x64-baseline", "linux-x64-modern", "--dest", "out", "--", "--config=ci", "--dest"]), + ).toEqual({ + targets: ["linux-x64-baseline", "linux-x64-modern"], + dest: "out", + bazelArgs: ["--config=ci", "--dest"], + }); + expect(parseCliArgs(["host"])).toEqual({ targets: ["host"], dest: null, bazelArgs: [] }); + }); + + test("rejects missing targets, stray flags, and a valueless --dest", () => { + expect(() => parseCliArgs([])).toThrow(/Usage:/); + expect(() => parseCliArgs(["--", "--config=ci"])).toThrow(/Usage:/); + expect(() => parseCliArgs(["host", "--config=ci"])).toThrow(/Unknown flag --config=ci/); + expect(() => parseCliArgs(["host", "--dest"])).toThrow(/--dest requires/); + }); +}); diff --git a/scripts/bazel-natives.ts b/scripts/bazel-natives.ts new file mode 100755 index 000000000..83a0d9266 --- /dev/null +++ b/scripts/bazel-natives.ts @@ -0,0 +1,274 @@ +#!/usr/bin/env bun +/** + * Canonical Bazel driver for the shipping pi_natives addons. + * + * Usage: bun scripts/bazel-natives.ts ... [--dest ] [-- ] + * + * Targets are the //:natives-* names from BUILD.bazel (e.g. linux-x64-baseline, + * darwin-arm64) plus three pseudo-targets: + * - host the single addon matching this machine (x64 hosts pick + * modern vs baseline via AVX2 detection) + * - linux-all every addon buildable from a linux-x64 host (incl. win32) + * - darwin-all both darwin addons (mac hosts only) + * + * One `bazel build` covers all requested targets; outputs are located via + * `bazel cquery --output=files` (falling back to the bazel-bin path convention) + * and copied dereferenced into --dest (default packages/natives/native). + * + * Extra args after `--` are passed to bazel verbatim (cache configs, endpoints, + * headers — see .bazelrc for the cache-rw/cache-ro policy configs). + * + * Note: musl addons intentionally reuse the plain linux- filenames, so a + * `linux-all` copy overwrites the gnu addon with the musl one (and vice versa); + * CI jobs that ship files always request an explicit disjoint target set. + */ +import * as fs from "node:fs/promises"; +import * as path from "node:path"; +import { detectHostAvx2Support } from "./host-detect"; + +const repoRoot = path.join(import.meta.dir, ".."); + +/** //:natives- → canonical addon filename (mirrors _ADDONS in BUILD.bazel). */ +export const ADDON_OUTPUTS: Record = { + "linux-x64-baseline": "pi_natives.linux-x64-baseline.node", + "linux-x64-modern": "pi_natives.linux-x64-modern.node", + "linux-arm64": "pi_natives.linux-arm64.node", + "linux-musl-x64-baseline": "pi_natives.linux-x64-baseline.node", + "linux-musl-arm64": "pi_natives.linux-arm64.node", + "darwin-x64-baseline": "pi_natives.darwin-x64-baseline.node", + "darwin-arm64": "pi_natives.darwin-arm64.node", + "win32-x64-baseline": "pi_natives.win32-x64-baseline.node", +}; + +/** Aggregate filegroups → their member addon targets (mirrors BUILD.bazel). */ +export const AGGREGATE_TARGETS: Record = { + "linux-all": [ + "linux-arm64", + "linux-musl-arm64", + "linux-musl-x64-baseline", + "linux-x64-baseline", + "linux-x64-modern", + "win32-x64-baseline", + ], + "darwin-all": ["darwin-arm64", "darwin-x64-baseline"], +}; + +export interface HostInfo { + platform: string; + arch: string; + avx2: boolean; +} + +/** The single addon target matching the host CPU (modern iff x64 + AVX2). */ +export function hostTargetName(host: HostInfo): string { + if (host.platform === "darwin") { + if (host.arch === "arm64") return "darwin-arm64"; + if (host.arch === "x64") return "darwin-x64-baseline"; + } + if (host.platform === "linux") { + if (host.arch === "arm64") return "linux-arm64"; + if (host.arch === "x64") return host.avx2 ? "linux-x64-modern" : "linux-x64-baseline"; + } + if (host.platform === "win32" && host.arch === "x64") return "win32-x64-baseline"; + throw new Error(`No pi_natives addon target for host ${host.platform}-${host.arch}`); +} + +/** Expand pseudo-targets and map names to //:natives-* labels (deduplicated). */ +export function resolveTargetLabels(names: string[], host: HostInfo): string[] { + const labels: string[] = []; + for (const name of names) { + const resolved = name === "host" ? hostTargetName(host) : name; + if (!(resolved in AGGREGATE_TARGETS) && !(resolved in ADDON_OUTPUTS)) { + const known = [...Object.keys(ADDON_OUTPUTS), ...Object.keys(AGGREGATE_TARGETS), "host"].join(", "); + throw new Error(`Unknown native target "${name}". Known targets: ${known}`); + } + const label = `//:natives-${resolved}`; + if (!labels.includes(label)) labels.push(label); + } + return labels; +} + +/** + * Workspace-relative output paths by bazel-bin convention: + * bazel-bin/natives-/.node. Fallback when cquery is unavailable. + */ +export function conventionOutputPaths(names: string[], host: HostInfo): string[] { + const paths: string[] = []; + for (const name of names) { + const resolved = name === "host" ? hostTargetName(host) : name; + const members = AGGREGATE_TARGETS[resolved] ?? [resolved]; + for (const member of members) { + const out = ADDON_OUTPUTS[member]; + if (!out) throw new Error(`Unknown native target "${name}"`); + const p = `bazel-bin/natives-${member}/${out}`; + if (!paths.includes(p)) paths.push(p); + } + } + return paths; +} + +/** Parse `bazel cquery --output=files` stdout into deduplicated .node paths. */ +export function parseBazelFilesOutput(output: string): string[] { + const files: string[] = []; + for (const line of output.split("\n")) { + const trimmed = line.trim(); + if (!trimmed.endsWith(".node")) continue; + if (!files.includes(trimmed)) files.push(trimmed); + } + return files; +} + +export interface CliOptions { + targets: string[]; + dest: string | null; + bazelArgs: string[]; +} + +export function parseCliArgs(argv: string[]): CliOptions { + const targets: string[] = []; + let dest: string | null = null; + const bazelArgs: string[] = []; + for (let i = 0; i < argv.length; i++) { + const arg = argv[i]; + if (arg === "--") { + bazelArgs.push(...argv.slice(i + 1)); + break; + } + if (arg === "--dest") { + const value = argv[++i]; + if (!value) throw new Error("--dest requires a directory argument"); + dest = value; + continue; + } + if (arg.startsWith("-")) { + throw new Error(`Unknown flag ${arg} (extra bazel args go after \`--\`)`); + } + targets.push(arg); + } + if (targets.length === 0) { + throw new Error("Usage: bun scripts/bazel-natives.ts ... [--dest ] [-- ]"); + } + return { targets, dest, bazelArgs }; +} + +function resolveBazelBinary(): string { + const bin = Bun.which("bazelisk") ?? Bun.which("bazel"); + if (!bin) { + throw new Error( + "Neither `bazelisk` nor `bazel` found on PATH. Install bazelisk: https://github.com/bazelbuild/bazelisk", + ); + } + return bin; +} + +const STDERR_TAIL_LINES = 40; + +/** Run a bazel command streaming stderr live while keeping a tail for the failure report. */ +async function runBazel( + bin: string, + args: string[], + stdout: "inherit" | "pipe", +): Promise<{ exitCode: number; stdout: string; stderrTail: string }> { + const proc = Bun.spawn([bin, ...args], { cwd: repoRoot, stdout, stderr: "pipe" }); + const decoder = new TextDecoder(); + let tail = ""; + const pumpStderr = (async () => { + for await (const chunk of proc.stderr) { + const text = decoder.decode(chunk, { stream: true }); + process.stderr.write(text); + tail = (tail + text) + .split("\n") + .slice(-STDERR_TAIL_LINES - 1) + .join("\n"); + } + })(); + const stdoutText = stdout === "pipe" ? await new Response(proc.stdout as ReadableStream).text() : ""; + const exitCode = await proc.exited; + await pumpStderr; + return { exitCode, stdout: stdoutText, stderrTail: tail }; +} + +async function installAddon(sourcePath: string, destPath: string): Promise { + const realSource = await fs.realpath(sourcePath); // bazel-bin outputs are symlink-reachable; copy the real bytes + const tempPath = `${destPath}.tmp.${process.pid}`; + await fs.copyFile(realSource, tempPath); + await fs.chmod(tempPath, 0o644); + try { + await fs.rename(tempPath, destPath); // atomic even if dest is a loaded addon + } catch (err) { + await fs.unlink(tempPath).catch(() => {}); + throw err; + } +} + +async function main(): Promise { + const options = parseCliArgs(process.argv.slice(2)); + const host: HostInfo = { platform: process.platform, arch: process.arch, avx2: detectHostAvx2Support() }; + const labels = resolveTargetLabels(options.targets, host); + const destDir = options.dest ? path.resolve(options.dest) : path.join(repoRoot, "packages/natives/native"); + const bazel = resolveBazelBinary(); + // CI hands cache wiring (remote or disk) through a bazelrc fragment so + // endpoint composition stays in .github/actions/bazel-cache. + const rcPath = Bun.env.OMP_BAZEL_RC?.trim(); + const startupArgs = rcPath ? [`--bazelrc=${rcPath}`] : []; + + const buildArgs = [...startupArgs, "build", ...options.bazelArgs, "--", ...labels]; + console.log(`$ ${path.basename(bazel)} ${buildArgs.join(" ")}`); + const build = await runBazel(bazel, buildArgs, "inherit"); + if (build.exitCode !== 0) { + console.error(`\nbazel build failed (exit ${build.exitCode}). stderr tail:\n${build.stderrTail}`); + process.exit(build.exitCode || 1); + } + + // Same flags as the build so cquery resolves the identical configuration. + // cquery takes exactly one query expression, so multiple targets join + // into a single union rather than positional args. + const cquery = await runBazel( + bazel, + [...startupArgs, "cquery", ...options.bazelArgs, "--output=files", labels.join(" + ")], + "pipe", + ); + let outputs: string[]; + if (cquery.exitCode === 0) { + outputs = parseBazelFilesOutput(cquery.stdout); + } else { + console.warn(`bazel cquery failed (exit ${cquery.exitCode}); falling back to bazel-bin path convention`); + outputs = conventionOutputPaths(options.targets, host); + } + if (outputs.length === 0) { + console.error("bazel build succeeded but no .node outputs were located"); + process.exit(1); + } + + const seen = new Map(); + for (const output of outputs) { + const base = path.basename(output); + const prior = seen.get(base); + if (prior) { + // gnu and musl x64/arm64 addons share canonical basenames by design; + // installing both into one dest would silently clobber. + console.error( + `refusing to install ${output}: ${base} already provided by ${prior}. ` + + "Build gnu and musl targets in separate invocations with separate --dest dirs.", + ); + process.exit(1); + } + seen.set(base, output); + } + await fs.mkdir(destDir, { recursive: true }); + for (const output of outputs) { + const absolute = path.isAbsolute(output) ? output : path.join(repoRoot, output); + const destPath = path.join(destDir, path.basename(output)); + await installAddon(absolute, destPath); + console.log(`installed ${path.basename(output)} → ${destPath}`); + } +} + +if (import.meta.main) { + try { + await main(); + } catch (err) { + console.error(err instanceof Error ? err.message : String(err)); + process.exit(1); + } +} diff --git a/scripts/ci-build-native.test.ts b/scripts/ci-build-native.test.ts deleted file mode 100644 index 0782f4149..000000000 --- a/scripts/ci-build-native.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { describe, expect, it } from "bun:test"; -import * as path from "node:path"; -import { $ } from "bun"; - -const repoRoot = path.join(import.meta.dir, ".."); - -async function runCiNativeDryRun(env: Record = {}): Promise { - const result = await $`bun scripts/ci-build-native.ts --dry-run` - .cwd(repoRoot) - .quiet() - .env({ - ...process.env, - PCRE2_SYS_STATIC: "0", - RUSTFLAGS: "", - TARGET_VARIANT: "", - TARGET_VARIANTS: "", - ...env, - }) - .nothrow(); - expect(result.exitCode).toBe(0); - return result.text(); -} - -describe("ci native build environment", () => { - it("prints static PCRE2 env for the default native build dry run", async () => { - await expect(runCiNativeDryRun()).resolves.toBe( - "DRY RUN bun --cwd=packages/natives run build [default] PCRE2_SYS_STATIC=1\n", - ); - }); - - it("prints static PCRE2 env without dropping x64 variant settings", async () => { - await expect(runCiNativeDryRun({ TARGET_VARIANTS: "baseline" })).resolves.toBe( - 'DRY RUN bun --cwd=packages/natives run build [baseline] PCRE2_SYS_STATIC=1 TARGET_VARIANT=baseline RUSTFLAGS="-C target-cpu=x86-64-v2"\n', - ); - }); -}); diff --git a/scripts/ci-build-native.ts b/scripts/ci-build-native.ts deleted file mode 100644 index 5f90bf562..000000000 --- a/scripts/ci-build-native.ts +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env bun - -import * as path from "node:path"; -import { $ } from "bun"; - -interface NativeBuildVariant { - name: "baseline" | "modern"; - rustflags: string; -} - -const repoRoot = path.join(import.meta.dir, ".."); -const isDryRun = process.argv.includes("--dry-run"); -const variantConfigs: Record = { - baseline: { - name: "baseline", - rustflags: "-C target-cpu=x86-64-v2", - }, - modern: { - name: "modern", - rustflags: "-C target-cpu=x86-64-v3", - }, -}; - -/** Adds release-portability env required by native addon builds. */ -export function withPortableNativeBuildEnv( - env: Record, -): Record { - return { ...env, PCRE2_SYS_STATIC: "1" }; -} - -function parseTargetVariants(): NativeBuildVariant[] { - const rawVariants = (Bun.env.TARGET_VARIANTS ?? "").trim(); - if (!rawVariants) return []; - - return rawVariants.split(/\s+/).map(rawVariant => { - const variant = variantConfigs[rawVariant as keyof typeof variantConfigs]; - if (!variant) { - throw new Error(`Unsupported TARGET_VARIANTS entry: ${rawVariant}. Expected baseline or modern.`); - } - return variant; - }); -} - -async function runNativeBuild(env: Record, label: string): Promise { - const buildEnv = withPortableNativeBuildEnv(env); - if (isDryRun) { - const staticPcre = ` PCRE2_SYS_STATIC=${buildEnv.PCRE2_SYS_STATIC}`; - const variant = buildEnv.TARGET_VARIANT ? ` TARGET_VARIANT=${buildEnv.TARGET_VARIANT}` : ""; - const rustflags = buildEnv.RUSTFLAGS ? ` RUSTFLAGS=${JSON.stringify(buildEnv.RUSTFLAGS)}` : ""; - console.log(`DRY RUN bun --cwd=packages/natives run build [${label}]${staticPcre}${variant}${rustflags}`); - return; - } - - console.log(`Building natives [${label}]...`); - await $`bun --cwd=packages/natives run build`.cwd(repoRoot).env(buildEnv); -} - -async function main(): Promise { - const variants = parseTargetVariants(); - if (variants.length === 0) { - await runNativeBuild(Bun.env, "default"); - return; - } - - for (const variant of variants) { - await runNativeBuild( - { - ...Bun.env, - RUSTFLAGS: variant.rustflags, - TARGET_VARIANT: variant.name, - }, - variant.name, - ); - } -} - -if (import.meta.main) await main(); diff --git a/scripts/ci-native-artifact-cache.test.ts b/scripts/ci-native-artifact-cache.test.ts deleted file mode 100644 index a0fbf2732..000000000 --- a/scripts/ci-native-artifact-cache.test.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { afterEach, describe, expect, it } from "bun:test"; -import * as fs from "node:fs/promises"; -import * as os from "node:os"; -import * as path from "node:path"; - -const script = path.join(import.meta.dir, "ci-native-artifact-cache.ts"); -const tempRoots: string[] = []; - -async function tempDir(): Promise { - const dir = await fs.mkdtemp(path.join(os.tmpdir(), "omp-native-cache-test-")); - tempRoots.push(dir); - return dir; -} - -async function run(args: string[], cacheDir: string, outputPath?: string): Promise { - const proc = Bun.spawn([process.execPath, script, ...args], { - cwd: path.join(import.meta.dir, ".."), - env: { - ...process.env, - OMP_NATIVE_CACHE_DIR: cacheDir, - GITHUB_OUTPUT: outputPath, - }, - stdout: "pipe", - stderr: "pipe", - }); - const [stdout, stderr, exitCode] = await Promise.all([ - new Response(proc.stdout).text(), - new Response(proc.stderr).text(), - proc.exited, - ]); - if (exitCode !== 0) throw new Error(`cache command failed (${exitCode}): ${stderr}`); - return stdout; -} - -afterEach(async () => { - await Promise.all(tempRoots.splice(0).map(dir => fs.rm(dir, { recursive: true, force: true }))); -}); - -describe("CI native artifact cache", () => { - it("restores a complete artifact set without unrelated build output", async () => { - const root = await tempDir(); - const source = path.join(root, "source"); - const destination = path.join(root, "destination"); - const output = path.join(root, "github-output"); - await fs.mkdir(source); - await Promise.all([ - Bun.write(path.join(source, "pi_natives.linux-x64.node"), "baseline"), - Bun.write(path.join(source, "build.log"), "not an artifact"), - ]); - - await run(["save", "abcdef12", "pi-natives-linux-x64-baseline-habcdef12", source], root); - await run(["restore", "abcdef12", destination, "pi-natives-linux-x64-baseline-habcdef12"], root, output); - - expect(await Bun.file(output).text()).toBe("hit=true\n"); - expect(await Bun.file(path.join(destination, "pi_natives.linux-x64.node")).text()).toBe("baseline"); - expect(await Bun.file(path.join(destination, "build.log")).exists()).toBe(false); - }); - - it("reports a miss and copies nothing unless every requested artifact is complete", async () => { - const root = await tempDir(); - const source = path.join(root, "source"); - const destination = path.join(root, "destination"); - const output = path.join(root, "github-output"); - await fs.mkdir(source); - await Bun.write(path.join(source, "pi_natives.linux-x64.node"), "baseline"); - await run(["save", "abcdef12", "pi-natives-linux-x64-baseline-habcdef12", source], root); - - await run( - [ - "restore", - "abcdef12", - destination, - "pi-natives-linux-x64-baseline-habcdef12", - "pi-natives-linux-x64-modern-habcdef12", - ], - root, - output, - ); - - expect(await Bun.file(output).text()).toBe("hit=false\n"); - expect(await Bun.file(destination).exists()).toBe(false); - }); -}); diff --git a/scripts/ci-native-artifact-cache.ts b/scripts/ci-native-artifact-cache.ts deleted file mode 100755 index 473e75f39..000000000 --- a/scripts/ci-native-artifact-cache.ts +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/env bun - -import * as fs from "node:fs/promises"; -import * as path from "node:path"; - -const CACHE_ENV = "OMP_NATIVE_CACHE_DIR"; -const COMPLETE_FILE = ".complete"; - -function validateSegment(value: string, label: string): void { - if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(value)) { - throw new Error(`Invalid ${label} ${JSON.stringify(value)}`); - } -} - -async function writeOutput(name: string, value: string): Promise { - const outputPath = Bun.env.GITHUB_OUTPUT; - if (outputPath) { - await fs.appendFile(outputPath, `${name}=${value}\n`); - } -} - -async function completedFiles(artifactDir: string): Promise { - try { - const text = await Bun.file(path.join(artifactDir, COMPLETE_FILE)).text(); - const files = text.split("\n").filter(Boolean); - if (files.length === 0 || files.some(file => path.basename(file) !== file || !file.endsWith(".node"))) { - return null; - } - for (const file of files) { - if (!(await Bun.file(path.join(artifactDir, file)).exists())) return null; - } - return files; - } catch { - return null; - } -} - -async function save(cacheRoot: string, hash: string, artifactName: string, sourceDir: string): Promise { - validateSegment(hash, "source hash"); - validateSegment(artifactName, "artifact name"); - const entries = await fs.readdir(sourceDir, { withFileTypes: true }); - const files = entries - .filter(entry => entry.isFile() && entry.name.endsWith(".node")) - .map(entry => entry.name) - .sort(); - if (files.length === 0) throw new Error(`No native addons found in ${sourceDir}`); - - const hashDir = path.join(cacheRoot, hash); - const artifactDir = path.join(hashDir, artifactName); - if (await completedFiles(artifactDir)) { - console.log(`Native artifact cache already populated: ${artifactName}`); - return; - } - - await fs.mkdir(hashDir, { recursive: true }); - const stagingDir = path.join(hashDir, `${artifactName}.tmp-${process.pid}-${crypto.randomUUID()}`); - await fs.mkdir(stagingDir); - try { - for (const file of files) { - await fs.copyFile(path.join(sourceDir, file), path.join(stagingDir, file)); - } - await Bun.write(path.join(stagingDir, COMPLETE_FILE), `${files.join("\n")}\n`); - try { - await fs.rename(stagingDir, artifactDir); - } catch (error) { - if (!(await completedFiles(artifactDir))) throw error; - await fs.rm(stagingDir, { recursive: true, force: true }); - } - } catch (error) { - await fs.rm(stagingDir, { recursive: true, force: true }); - throw error; - } - console.log(`Saved native artifact cache: ${artifactName} (${files.join(", ")})`); -} - -async function restore( - cacheRoot: string, - hash: string, - destination: string, - artifactNames: string[], -): Promise { - validateSegment(hash, "source hash"); - if (artifactNames.length === 0) throw new Error("At least one artifact name is required"); - - const sources: Array<{ dir: string; files: string[] }> = []; - for (const artifactName of artifactNames) { - validateSegment(artifactName, "artifact name"); - const dir = path.join(cacheRoot, hash, artifactName); - const files = await completedFiles(dir); - if (!files) return false; - sources.push({ dir, files }); - } - - await fs.mkdir(destination, { recursive: true }); - for (const source of sources) { - for (const file of source.files) { - await fs.copyFile(path.join(source.dir, file), path.join(destination, file)); - } - } - console.log(`Restored native artifacts from local cache: ${artifactNames.join(", ")}`); - return true; -} - -async function main(): Promise { - const [mode, hash, first, ...rest] = process.argv.slice(2); - if ((mode !== "save" && mode !== "restore") || !hash || !first) { - throw new Error( - "Usage: ci-native-artifact-cache.ts save [source-dir] | restore ...", - ); - } - - const cacheRoot = Bun.env[CACHE_ENV]?.trim(); - if (!cacheRoot) { - if (mode === "restore") await writeOutput("hit", "false"); - console.log(`Native artifact cache disabled: ${CACHE_ENV} is unset`); - return; - } - - if (mode === "save") { - await save(cacheRoot, hash, first, rest[0] ?? "packages/natives/native"); - return; - } - - const hit = await restore(cacheRoot, hash, first, rest); - await writeOutput("hit", String(hit)); - if (!hit) console.log(`Native artifact cache miss: ${rest.join(", ")}`); -} - -if (import.meta.main) await main(); diff --git a/scripts/ci-target-cache.test.ts b/scripts/ci-target-cache.test.ts deleted file mode 100644 index 3c4c9f9b4..000000000 --- a/scripts/ci-target-cache.test.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { describe, expect, test } from "bun:test"; -import { objectKeyFor, resolveEndpoint } from "./ci-target-cache"; - -describe("resolveEndpoint", () => { - test("selects scheme from SCCACHE_S3_USE_SSL, defaulting to http for in-cluster RustFS", () => { - expect(resolveEndpoint({ SCCACHE_ENDPOINT: "rustfs.sccache.svc.cluster.local:9000" })).toBe( - "http://rustfs.sccache.svc.cluster.local:9000", - ); - expect(resolveEndpoint({ SCCACHE_ENDPOINT: "rustfs:9000", SCCACHE_S3_USE_SSL: "true" })).toBe( - "https://rustfs:9000", - ); - expect(resolveEndpoint({ SCCACHE_ENDPOINT: "rustfs:9000", SCCACHE_S3_USE_SSL: "false" })).toBe( - "http://rustfs:9000", - ); - }); - - test("passes through endpoints that already carry a scheme and rejects missing config", () => { - expect(resolveEndpoint({ SCCACHE_ENDPOINT: "https://s3.example.com" })).toBe("https://s3.example.com"); - expect(resolveEndpoint({})).toBeNull(); - expect(resolveEndpoint({ SCCACHE_ENDPOINT: " " })).toBeNull(); - }); -}); - -describe("objectKeyFor", () => { - test("namespaces snapshots under target-cache/ and separates toolchains", () => { - const stable = objectKeyFor("native-linux-default-x64-baseline", "rustc 1.91.0-nightly (abc 2026-04-29)"); - expect(stable).toMatch(/^target-cache\/native-linux-default-x64-baseline-[0-9a-f]{12}\.tar\.zst$/); - // Same inputs must be deterministic; a toolchain bump must be a clean miss. - expect(objectKeyFor("native-linux-default-x64-baseline", "rustc 1.91.0-nightly (abc 2026-04-29)")).toBe(stable); - expect(objectKeyFor("native-linux-default-x64-baseline", "rustc 1.92.0-nightly (def 2026-06-01)")).not.toBe( - stable, - ); - }); - - test("rejects keys that could escape the target-cache/ prefix", () => { - expect(() => objectKeyFor("../sccache-poison", "rustc 1.91.0")).toThrow(/Invalid cache key/); - expect(() => objectKeyFor("a/b", "rustc 1.91.0")).toThrow(/Invalid cache key/); - expect(() => objectKeyFor("", "rustc 1.91.0")).toThrow(/Invalid cache key/); - }); -}); diff --git a/scripts/ci-target-cache.ts b/scripts/ci-target-cache.ts deleted file mode 100755 index 7ac39c23b..000000000 --- a/scripts/ci-target-cache.ts +++ /dev/null @@ -1,214 +0,0 @@ -#!/usr/bin/env bun - -/** - * Persist the cargo `target/` directory to the in-cluster RustFS S3 bucket - * between omp-kata CI runs. - * - * sccache only caches rustc invocations; build-script outputs (57 tree-sitter - * grammar C compiles, audiopus_sys' bundled opus via CMake, ring's asm) and - * cargo's fingerprint/link work bypass it entirely. Restoring `target/` reuses - * all of that, so a warm native job only recompiles workspace crates. - * - * Storage model: one object per cache key (`target-cache/-.tar.zst`), - * overwritten on every save — storage stays bounded at one snapshot per - * platform/libc/arch/variant/toolchain. Staleness is safe: cargo fingerprints - * invalidate anything that no longer matches, exactly like Swatinem/rust-cache - * on the GitHub-hosted runners. - * - * Credentials/config come from the pod-wide sccache env (`SCCACHE_BUCKET`, - * `SCCACHE_ENDPOINT`, `SCCACHE_S3_USE_SSL`, `AWS_*`); Bun's S3Client reads the - * AWS credentials from the environment. Off-infra (no `SCCACHE_BUCKET`) and - * every failure path degrade to a logged no-op — this script must never fail - * a CI job. - * - * Usage: `bun scripts/ci-target-cache.ts ` - */ - -import * as fs from "node:fs/promises"; -import * as os from "node:os"; -import * as path from "node:path"; -import { $, S3Client } from "bun"; - -const repoRoot = path.join(import.meta.dir, ".."); - -/** Compressed snapshots above this size are not uploaded; the next full miss rebuilds a compact one. */ -const MAX_SNAPSHOT_BYTES = 4 * 1024 ** 3; -const EXISTS_TIMEOUT_MS = 30_000; -const DOWNLOAD_TIMEOUT_MS = 180_000; -const UPLOAD_TIMEOUT_MS = 300_000; -const configuredCompressionThreads = Number(Bun.env.OMP_CI_CPU_COUNT); -const COMPRESSION_THREADS = - Number.isInteger(configuredCompressionThreads) && configuredCompressionThreads > 0 - ? configuredCompressionThreads - : 2; - -/** - * Resolve the S3 endpoint URL from the sccache pod env. `SCCACHE_ENDPOINT` is - * host:port without a scheme; `SCCACHE_S3_USE_SSL=true` selects https, - * anything else http (in-cluster RustFS serves plain HTTP). A value that - * already carries a scheme is passed through untouched. - */ -export function resolveEndpoint(env: Record): string | null { - const endpoint = env.SCCACHE_ENDPOINT?.trim(); - if (!endpoint) return null; - if (/^[a-z][a-z0-9+.-]*:\/\//i.test(endpoint)) return endpoint; - const scheme = env.SCCACHE_S3_USE_SSL === "true" ? "https" : "http"; - return `${scheme}://${endpoint}`; -} - -/** - * Object key for one snapshot. The toolchain fingerprint (`rustc -V`) is - * hashed in so a nightly bump becomes a clean miss instead of a useless - * multi-GB restore that cargo immediately invalidates. - */ -export function objectKeyFor(cacheKey: string, rustcVersion: string): string { - if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(cacheKey)) { - throw new Error(`Invalid cache key ${JSON.stringify(cacheKey)}; expected [A-Za-z0-9._-]+`); - } - const toolchain = new Bun.CryptoHasher("sha256").update(rustcVersion).digest("hex").slice(0, 12); - return `target-cache/${cacheKey}-${toolchain}.tar.zst`; -} - -function withTimeout(promise: Promise, ms: number, label: string): Promise { - const { promise: timeout, reject } = Promise.withResolvers(); - const timer = setTimeout(() => reject(new Error(`${label} timed out after ${ms}ms`)), ms); - return Promise.race([promise, timeout]).finally(() => clearTimeout(timer)); -} - -/** `target_directory` from cargo metadata (honors CARGO_TARGET_DIR/config), falling back to `/target`. */ -async function resolveTargetDir(): Promise { - const meta = await $`cargo metadata --no-deps --format-version 1`.cwd(repoRoot).quiet().nothrow(); - if (meta.exitCode === 0) { - try { - const parsed = meta.json() as { target_directory?: string }; - if (parsed.target_directory) return parsed.target_directory; - } catch { - // fall through to default - } - } - return path.join(repoRoot, "target"); -} - -async function restore(s3: S3Client, objectKey: string, targetDir: string): Promise { - const object = s3.file(objectKey); - if (!(await withTimeout(object.exists(), EXISTS_TIMEOUT_MS, "cache lookup"))) { - console.log(`target cache miss: ${objectKey}`); - return; - } - const tmpTar = path.join(Bun.env.RUNNER_TEMP ?? os.tmpdir(), `target-cache-${process.pid}.tar.zst`); - const started = Bun.nanoseconds(); - try { - // NB: `Bun.write(dest, new Response(s3file.stream()))` never resolves in - // Bun 1.3.x; iterating the stream into a FileSink works. - const download = async () => { - const sink = Bun.file(tmpTar).writer(); - for await (const chunk of object.stream()) sink.write(chunk); - await sink.end(); - }; - await withTimeout(download(), DOWNLOAD_TIMEOUT_MS, "cache download"); - const sizeMb = (Bun.file(tmpTar).size / 1024 ** 2).toFixed(0); - // Explicit decompress pipe: GNU tar passes -d to a --use-compress-program - // filter on extract but bsdtar does not, so filter flags are a trap. - // The pipe reports only tar's exit code, which reads a truncated zstd - // stream as a short-but-valid archive — so verify the zstd layer first. - const verify = await $`zstd -tq ${tmpTar}`.quiet().nothrow(); - const extract = - verify.exitCode === 0 - ? await $`zstd -dcq ${tmpTar} | tar -xf - -C ${path.dirname(targetDir)}`.quiet().nothrow() - : verify; - if (extract.exitCode !== 0) { - // A torn/corrupt snapshot must not leave a half-extracted target/ - // behind: cargo would trust whatever fingerprints survived. - await fs.rm(targetDir, { recursive: true, force: true }); - console.warn( - `target cache extract failed (exit ${extract.exitCode}); removed ${targetDir} and continuing cold`, - ); - return; - } - const secs = ((Bun.nanoseconds() - started) / 1e9).toFixed(1); - console.log(`target cache restored: ${objectKey} (${sizeMb} MiB in ${secs}s)`); - } finally { - await fs.rm(tmpTar, { force: true }); - } -} - -async function save(s3: S3Client, objectKey: string, targetDir: string): Promise { - try { - await fs.stat(targetDir); - } catch { - console.log(`target cache save skipped: ${targetDir} does not exist`); - return; - } - const tmpTar = path.join(Bun.env.RUNNER_TEMP ?? os.tmpdir(), `target-cache-${process.pid}.tar.zst`); - const started = Bun.nanoseconds(); - try { - // CARGO_INCREMENTAL=0 in CI, so incremental/ only exists from stray - // local state; exclude it regardless — it is the one cargo dir that is - // pure dead weight for a cold consumer. Explicit compress pipe for the - // same tar-flavor reason as in restore(). Compression is capped to the - // runner's admitted CPU allocation; `-T0` multiplied host contention when - // several native matrix jobs saved snapshots together. - const create = - await $`tar -cf - --exclude=${"*/incremental"} -C ${path.dirname(targetDir)} ${path.basename(targetDir)} | zstd -q -T${COMPRESSION_THREADS} -3 -f -o ${tmpTar}` - .quiet() - .nothrow(); - if (create.exitCode !== 0) { - console.warn(`target cache save skipped: tar failed (exit ${create.exitCode})`); - return; - } - const size = Bun.file(tmpTar).size; - if (size > MAX_SNAPSHOT_BYTES) { - // Orphaned artifacts accumulate across restore→build→save cycles; - // refusing oversized uploads bounds the object. The stale snapshot - // keeps serving restores until a full-miss rebuild saves a compact one. - console.warn( - `target cache save skipped: snapshot ${(size / 1024 ** 3).toFixed(1)} GiB exceeds ${MAX_SNAPSHOT_BYTES / 1024 ** 3} GiB cap`, - ); - return; - } - await withTimeout(s3.write(objectKey, Bun.file(tmpTar)), UPLOAD_TIMEOUT_MS, "cache upload"); - const secs = ((Bun.nanoseconds() - started) / 1e9).toFixed(1); - console.log(`target cache saved: ${objectKey} (${(size / 1024 ** 2).toFixed(0)} MiB in ${secs}s)`); - } finally { - await fs.rm(tmpTar, { force: true }); - } -} - -async function main(): Promise { - const [mode, cacheKey] = [process.argv[2], process.argv[3]]; - if ((mode !== "restore" && mode !== "save") || !cacheKey) { - console.error("Usage: bun scripts/ci-target-cache.ts "); - process.exit(1); - } - - const bucket = Bun.env.SCCACHE_BUCKET; - const endpoint = resolveEndpoint(Bun.env); - if (!bucket || !endpoint) { - console.log("target cache skipped: no SCCACHE_BUCKET/SCCACHE_ENDPOINT in env (not on omp-kata infra)"); - return; - } - if (!Bun.which("zstd")) { - console.warn("target cache skipped: zstd not on PATH"); - return; - } - const rustc = await $`rustc -V`.quiet().nothrow(); - if (rustc.exitCode !== 0) { - console.warn("target cache skipped: rustc not on PATH"); - return; - } - - const objectKey = objectKeyFor(cacheKey, rustc.text().trim()); - const s3 = new S3Client({ bucket, endpoint, region: Bun.env.SCCACHE_REGION ?? Bun.env.AWS_REGION ?? "us-east-1" }); - const targetDir = await resolveTargetDir(); - if (mode === "restore") await restore(s3, objectKey, targetDir); - else await save(s3, objectKey, targetDir); -} - -if (import.meta.main) { - try { - await main(); - } catch (err) { - // Cache trouble must never fail a build; cold compile is the fallback. - console.warn(`target cache ${process.argv[2] ?? ""} failed non-fatally:`, err); - } -} diff --git a/scripts/ci-test-ts.ts b/scripts/ci-test-ts.ts index 5f3f3486f..b44a2f433 100755 --- a/scripts/ci-test-ts.ts +++ b/scripts/ci-test-ts.ts @@ -119,8 +119,7 @@ const localOnlyWorkspacePackages = ["packages/mnemopi", "python/robomp/web"]; // silently ignores unmatched filters when at least one other filter matches.) const repoScriptTests = [ "scripts/ci-concurrency.test.ts", - "scripts/ci-build-native.test.ts", - "scripts/ci-native-artifact-cache.test.ts", + "scripts/bazel-natives.test.ts", "scripts/ci-release-notes.test.ts", "scripts/ci-release-publish.test.ts", "scripts/fix-dts-extensions.test.ts", @@ -356,7 +355,7 @@ async function commandsForMode(mode: Mode): Promise { "--parallel=4", ...onlyFailuresArgs, "scripts/ci-concurrency.test.ts", - "scripts/ci-build-native.test.ts", + "scripts/bazel-natives.test.ts", "scripts/ci-release-publish.test.ts", "scripts/fix-dts-extensions.test.ts", ], @@ -410,16 +409,15 @@ async function commandsForMode(mode: Mode): Promise { } } -// The omp-kata runner pods inject sccache S3 credentials (`AWS_*`) and config -// (`SCCACHE_*`) pod-wide via `envFrom`, GitHub Actions injects `GITHUB_TOKEN`, +// The omp-kata runner pods may inject cloud credentials (`AWS_*`) pod-wide via +// `envFrom`, GitHub Actions injects `GITHUB_TOKEN`, // and a host may carry provider API keys. Any of these make env-sensitive code // non-deterministic in tests — e.g. leaked AWS creds make `amazon-bedrock` look // authenticated and win the provider startup fallback over `anthropic`. Run the // suites in a hermetic environment with all credential / cloud-config variables // stripped so resolution depends only on the test's own fixtures. -const SCRUBBED_ENV_PREFIXES = ["AWS_", "SCCACHE_", "GOOGLE_CLOUD_"]; +const SCRUBBED_ENV_PREFIXES = ["AWS_", "GOOGLE_CLOUD_"]; const SCRUBBED_ENV_NAMES = new Set([ - "RUSTC_WRAPPER", "GITHUB_TOKEN", "GH_TOKEN", "COPILOT_GITHUB_TOKEN", diff --git a/scripts/run-rs-task.ts b/scripts/run-rs-task.ts index a22f0fa29..c385381c5 100644 --- a/scripts/run-rs-task.ts +++ b/scripts/run-rs-task.ts @@ -14,18 +14,47 @@ const RUST_AFFECTING_FILE_NAMES = [ "rustfmt.toml", ".rustfmt.toml", ] as const satisfies readonly string[]; +// brush-core/brush-builtins became workspace members for Bazel hermeticity +// (path-patch rendering is machine-local), but the cargo dev tasks keep their +// historical scope: the vendored fork is not held to workspace lint/test gates. +const VENDORED_FORK_EXCLUDES = [ + "--exclude", + "brush-core", + "--exclude", + "brush-builtins", +] as const satisfies readonly string[]; const TASK_COMMANDS = { "check:rs": [ ["cargo", "fmt", "--all", "--", "--check"], - ["cargo", "clippy", "--workspace", "--", "-D", "warnings"], + ["cargo", "clippy", "--workspace", ...VENDORED_FORK_EXCLUDES, "--", "-D", "warnings"], ], "fix:rs": [ ["cargo", "fmt", "--all"], - ["cargo", "clippy", "--workspace", "--fix", "--allow-dirty", "--no-deps", "--allow-staged", "--allow-no-vcs"], + [ + "cargo", + "clippy", + "--workspace", + ...VENDORED_FORK_EXCLUDES, + "--fix", + "--allow-dirty", + "--no-deps", + "--allow-staged", + "--allow-no-vcs", + ], ], "fmt:rs": [["cargo", "fmt", "--all"]], - "lint:rs": [["cargo", "clippy", "--workspace", "--", "-D", "warnings"]], - "test:rs": [["cargo", "nextest", "run", "--workspace", "--status-level=fail", "--final-status-level=fail"]], + "lint:rs": [["cargo", "clippy", "--workspace", ...VENDORED_FORK_EXCLUDES, "--", "-D", "warnings"]], + "test:rs": [ + [ + "cargo", + "nextest", + "run", + "--workspace", + ...VENDORED_FORK_EXCLUDES, + "--status-level=fail", + "--final-status-level=fail", + ], + ], } as const satisfies Record; type RustTaskName = keyof typeof TASK_COMMANDS;