diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6a3eb4a..0fc56a1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -37,22 +37,18 @@ jobs: - fmt - check-and-test - doc - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v2 with: submodules: 'recursive' license-check: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v2 with: submodules: 'recursive' - - name: Install Cargo nightly - run: rustup toolchain install nightly-2023-05-19 - - name: Cargo minimal versions - run: cargo +nightly-2023-05-19 -Z minimal-versions generate-lockfile - name: Check License Header uses: apache/skywalking-eyes/header/@d299844e334855087f18ae1fe3c81ae8d22bc282 with: @@ -73,15 +69,15 @@ jobs: fmt: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v2 with: submodules: 'recursive' - name: Install Rust toolchain - run: rustup toolchain install nightly-2023-05-19 --component rustfmt + run: rustup toolchain install nightly-2025-03-24 --component rustfmt - name: Run format - run: cargo +nightly-2023-05-19 fmt --all -- --check + run: cargo +nightly-2025-03-24 fmt --all -- --check check-and-test: strategy: @@ -93,7 +89,7 @@ jobs: - "--features vendored" - "--features kafka-reporter" - "--all-features" - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v2 with: @@ -102,9 +98,7 @@ jobs: run: sudo apt-get install -y protobuf-compiler if: ${{ matrix.features != '--features vendored' }} - name: Install Cargo nightly - run: rustup toolchain install nightly-2023-05-19 - - name: Cargo minimal versions - run: cargo +nightly-2023-05-19 -Z minimal-versions generate-lockfile + run: rustup toolchain install nightly-2025-03-24 - name: Run check run: cargo check --workspace --release ${{ matrix.features }} - name: Run clippy @@ -113,7 +107,7 @@ jobs: run: cargo test --workspace --release ${{ matrix.features }} doc: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v2 with: @@ -121,6 +115,6 @@ jobs: - name: Install protoc run: sudo apt-get install -y protobuf-compiler - name: Install Rust toolchain - run: rustup toolchain install nightly-2023-05-19 + run: rustup toolchain install nightly-2025-03-24 - name: Run docs - run: cargo +nightly-2023-05-19 rustdoc --release --all-features -- --cfg docsrs + run: cargo +nightly-2025-03-24 rustdoc --release --all-features -- --cfg docsrs diff --git a/.github/workflows/codecov.yaml b/.github/workflows/codecov.yaml index df52e4f..8005606 100644 --- a/.github/workflows/codecov.yaml +++ b/.github/workflows/codecov.yaml @@ -25,7 +25,7 @@ on: - 'v*' jobs: test: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v2 with: @@ -37,7 +37,8 @@ jobs: profile: minimal toolchain: stable override: true - - uses: actions-rs/tarpaulin@v0.1 - with: - version: 0.22.0 + - name: Install and Run Tarpaulin + run: | + cargo install cargo-tarpaulin + cargo tarpaulin --out Xml - uses: codecov/codecov-action@v2.1.0 diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 79609e2..79566d0 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -27,18 +27,23 @@ on: jobs: e2e-rust: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v2 with: submodules: recursive - name: Prepare service container - run: docker-compose -f docker-compose.e2e.yml up --build -d + run: docker compose -f docker-compose.e2e.yml up --build -d --wait - name: Run e2e run: | - pip3 install --upgrade pip - pip3 install setuptools - pip3 install -r requirements.txt - python3 e2e/run_e2e.py --expected_file=e2e/data/expected_context.yaml --max_retry_times=3 --target_path=/ping - docker-compose -f docker-compose.e2e.yml logs producer consumer - docker-compose -f docker-compose.e2e.yml exec -T producer /build/target/release/e2e-kafka + curl -LsSf https://astral.sh/uv/install.sh | sh + uv python install 3.12 + uv sync + uv run e2e/run_e2e.py --expected_file=e2e/data/expected_context.yaml --max_retry_times=3 --target_path=/ping + sleep 10 + docker compose -f docker-compose.e2e.yml exec broker /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server 127.0.0.1:9092 + docker compose -f docker-compose.e2e.yml exec -T producer /build/target/release/e2e-kafka + - name: View logs + if: always() + run: | + docker compose -f docker-compose.e2e.yml logs diff --git a/.gitignore b/.gitignore index 47dc92d..1b46744 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /tests/target /e2e/target .idea/ -/Cargo.lock /.cargo/config.toml /vendor +/.venv +/venv diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..87b84fa --- /dev/null +++ b/.python-version @@ -0,0 +1,16 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +3.12 diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..5202957 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1742 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.97" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" + +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "async-trait" +version = "0.1.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "axum" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower 0.5.2", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets", +] + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "bytesize" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2c12f985c78475a6b8d629afd0c360260ef34cfef52efccdcfd31972f81c2e" + +[[package]] +name = "cc" +version = "1.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags 1.3.2", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "cmake" +version = "0.1.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +dependencies = [ + "cc", +] + +[[package]] +name = "deranged" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "e2e" +version = "0.0.0" +dependencies = [ + "http-body-util", + "hyper", + "hyper-util", + "prost", + "rdkafka", + "skywalking", + "structopt", + "tokio", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "h2" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.8.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hostname" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" +dependencies = [ + "cfg-if", + "libc", + "windows", +] + +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +dependencies = [ + "equivalent", + "hashbrown 0.15.2", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "libz-sys" +version = "1.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +dependencies = [ + "fixedbitset", + "indexmap 2.8.0", +] + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "portable-atomic" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prettyplease" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" +dependencies = [ + "proc-macro2", + "syn 2.0.100", +] + +[[package]] +name = "proc-macro-crate" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +dependencies = [ + "heck 0.5.0", + "itertools", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.100", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "prost-types" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +dependencies = [ + "prost", +] + +[[package]] +name = "protobuf-src" +version = "2.1.1+27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6217c3504da19b85a3a4b2e9a5183d635822d83507ba0986624b5c05b83bfc40" +dependencies = [ + "cmake", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rdkafka" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b52c81ac3cac39c9639b95c20452076e74b8d9a71bc6fc4d83407af2ea6fff" +dependencies = [ + "futures-channel", + "futures-util", + "libc", + "log", + "rdkafka-sys", + "serde", + "serde_derive", + "serde_json", + "slab", + "tokio", +] + +[[package]] +name = "rdkafka-sys" +version = "4.8.0+2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced38182dc436b3d9df0c77976f37a67134df26b050df1f0006688e46fc4c8be" +dependencies = [ + "libc", + "libz-sys", + "num_enum", + "pkg-config", +] + +[[package]] +name = "redox_syscall" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +dependencies = [ + "bitflags 2.9.0", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustix" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustversion" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "skywalking" +version = "0.9.0-dev" +dependencies = [ + "base64", + "bytes", + "cfg-if", + "futures-core", + "futures-util", + "hostname", + "parking_lot", + "portable-atomic", + "prost", + "prost-derive", + "protobuf-src", + "rdkafka", + "serde", + "systemstat", + "thiserror", + "tokio", + "tokio-stream", + "tonic", + "tonic-build", + "tracing", + "uuid", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" + +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck 0.3.3", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" + +[[package]] +name = "systemstat" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668a4db78b439df482c238f559e4ea869017f9e62ef0a059c8bfcd841a4df544" +dependencies = [ + "bytesize", + "lazy_static", + "libc", + "nom", + "time", + "winapi", +] + +[[package]] +name = "tempfile" +version = "3.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +dependencies = [ + "fastrand", + "getrandom 0.3.2", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "time" +version = "0.3.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +dependencies = [ + "deranged", + "num-conv", + "powerfmt", + "serde", + "time-core", +] + +[[package]] +name = "time-core" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" + +[[package]] +name = "tokio" +version = "1.44.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap 2.8.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tonic" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64", + "bytes", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost", + "socket2", + "tokio", + "tokio-stream", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "uuid" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +dependencies = [ + "getrandom 0.3.2", + "serde", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.0", +] + +[[package]] +name = "zerocopy" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] diff --git a/Cargo.toml b/Cargo.toml index 5774590..28e788d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,14 +24,14 @@ members = [ [package] name = "skywalking" -version = "0.8.0" +version = "0.9.0-dev" authors = ["Apache Software Foundation"] -edition = "2021" +edition = "2024" description = "Apache SkyWalking Rust Agent" license = "Apache-2.0" homepage = "https://skywalking.apache.org/" repository = "https://github.com/apache/skywalking-rust" -rust-version = "1.65" +rust-version = "1.85" [features] management = ["hostname", "systemstat"] @@ -41,35 +41,33 @@ kafka-reporter = ["rdkafka"] mock = [] # For internal integration testing only, do not use. [dependencies] -base64 = "0.13.0" -bytes = "1.2.1" +base64 = "0.22.1" +bytes = "1.10.1" cfg-if = "1.0.0" -futures-core = "0.3.21" -futures-util = "0.3.21" -hostname = { version = "0.3.1", optional = true } -libz-sys = "1.1.9" -once_cell = "1.14.0" -parking_lot = "0.12.1" -portable-atomic = { version = "0.3.13", features = ["float"] } -prost = "0.11.0" -prost-derive = "0.11.0" -rdkafka = { version = "0.32.2", optional = true } -serde = { version = "1.0.143", features = ["derive"] } -systemstat = { version = "0.2.0", optional = true } -thiserror = "1.0.32" -tokio = { version = "1.20.1", features = ["parking_lot"] } -tokio-stream = { version = "0.1.9", features = ["time"] } -tonic = { version = "0.8.0", features = ["codegen"] } -tracing = "0.1.36" -uuid = { version = "1.1.2", features = ["serde", "v4"] } +futures-core = "0.3.31" +futures-util = "0.3.31" +hostname = { version = "0.4.0", optional = true } +parking_lot = "0.12.3" +portable-atomic = { version = "1.11.0", features = ["float"] } +prost = "0.13.5" +prost-derive = "0.13.5" +rdkafka = { version = "0.37.0", optional = true } +serde = { version = "1.0.219", features = ["derive"] } +systemstat = { version = "0.2.4", optional = true } +thiserror = "2.0.12" +tokio = { version = "1.44.1", features = ["parking_lot"] } +tokio-stream = { version = "0.1.17", features = ["time"] } +tonic = { version = "0.12.3", features = ["codegen"] } +tracing = "0.1.41" +uuid = { version = "1.16.0", features = ["serde", "v4"] } [build-dependencies] -protobuf-src = { version = "1.0.5", optional = true } -tonic-build = "0.8.0" +protobuf-src = { version = "2.1.1", optional = true } +tonic-build = "0.12.3" [dev-dependencies] -tokio = { version = "1.20.1", features = ["rt-multi-thread", "signal"] } -tokio-stream = { version = "0.1.9", features = ["net"] } +tokio = { version = "1.44.1", features = ["rt-multi-thread", "signal"] } +tokio-stream = { version = "0.1.17", features = ["net"] } [[test]] name = "trace_context" diff --git a/build.rs b/build.rs index e83a7e5..6c92f50 100644 --- a/build.rs +++ b/build.rs @@ -14,14 +14,22 @@ // limitations under the License. // +use tonic_build::Config; + fn main() -> Result<(), Box> { + #[allow(unused_mut)] + let mut config = Config::new(); + #[cfg(feature = "vendored")] - std::env::set_var("PROTOC", protobuf_src::protoc()); + { + config.protoc_executable(protobuf_src::protoc()); + } tonic_build::configure() .build_server(false) .type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]") - .compile( + .compile_protos_with_config( + config, &[ "./skywalking-data-collect-protocol/language-agent/Meter.proto", "./skywalking-data-collect-protocol/language-agent/Tracing.proto", diff --git a/dist-material/LICENSE b/dist-material/LICENSE index c800798..883c397 100644 --- a/dist-material/LICENSE +++ b/dist-material/LICENSE @@ -184,20 +184,36 @@ licenses. ======================================================================== +======================================================================== +(MIT OR Apache-2.0) AND Unicode-3.0 licenses +======================================================================== +The following components are provided under the (MIT OR Apache-2.0) AND Unicode-3.0 License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/unicode-ident/1.0.18 1.0.18 (MIT OR Apache-2.0) AND Unicode-3.0 + +======================================================================== +0BSD OR Apache-2.0 OR MIT licenses +======================================================================== +The following components are provided under the 0BSD OR Apache-2.0 OR MIT License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/adler2/2.0.0 2.0.0 0BSD OR Apache-2.0 OR MIT + ======================================================================== Apache-2.0 licenses ======================================================================== The following components are provided under the Apache-2.0 License. See project link for details. The text of each license is the standard Apache 2.0 license. - https://crates.io/crates/bytesize/1.1.0 1.1.0 Apache-2.0 + https://crates.io/crates/bytesize/1.3.2 1.3.2 Apache-2.0 https://crates.io/crates/e2e/0.0.0 0.0.0 Apache-2.0 - https://crates.io/crates/prost/0.11.0 0.11.0 Apache-2.0 - https://crates.io/crates/prost-build/0.11.0 0.11.0 Apache-2.0 - https://crates.io/crates/prost-derive/0.11.0 0.11.0 Apache-2.0 - https://crates.io/crates/prost-types/0.11.0 0.11.0 Apache-2.0 - https://crates.io/crates/protobuf-src/1.0.5+3.19.3 1.0.5+3.19.3 Apache-2.0 - https://crates.io/crates/skywalking/0.8.0 0.8.0 Apache-2.0 - https://crates.io/crates/sync_wrapper/0.1.1 0.1.1 Apache-2.0 + https://crates.io/crates/prost/0.13.5 0.13.5 Apache-2.0 + https://crates.io/crates/prost-build/0.13.5 0.13.5 Apache-2.0 + https://crates.io/crates/prost-derive/0.13.5 0.13.5 Apache-2.0 + https://crates.io/crates/prost-types/0.13.5 0.13.5 Apache-2.0 + https://crates.io/crates/protobuf-src/2.1.1+27.1 2.1.1+27.1 Apache-2.0 + https://crates.io/crates/skywalking/0.9.0-dev 0.9.0-dev Apache-2.0 + https://crates.io/crates/sync_wrapper/1.0.2 1.0.2 Apache-2.0 ======================================================================== Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT licenses @@ -205,8 +221,45 @@ Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT licenses The following components are provided under the Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/wasi/0.9.0+wasi-snapshot-preview1 0.9.0+wasi-snapshot-preview1 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + https://crates.io/crates/linux-raw-sys/0.9.3 0.9.3 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + https://crates.io/crates/rustix/1.0.3 1.0.3 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT https://crates.io/crates/wasi/0.11.0+wasi-snapshot-preview1 0.11.0+wasi-snapshot-preview1 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + https://crates.io/crates/wasi/0.14.2+wasi-0.2.4 0.14.2+wasi-0.2.4 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + https://crates.io/crates/wit-bindgen-rt/0.39.0 0.39.0 Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT + +======================================================================== +Apache-2.0 OR BSD-2-Clause OR MIT licenses +======================================================================== +The following components are provided under the Apache-2.0 OR BSD-2-Clause OR MIT License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/zerocopy/0.8.24 0.8.24 Apache-2.0 OR BSD-2-Clause OR MIT + https://crates.io/crates/zerocopy-derive/0.8.24 0.8.24 Apache-2.0 OR BSD-2-Clause OR MIT + +======================================================================== +Apache-2.0 OR BSD-3-Clause OR MIT licenses +======================================================================== +The following components are provided under the Apache-2.0 OR BSD-3-Clause OR MIT License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/num_enum/0.7.3 0.7.3 Apache-2.0 OR BSD-3-Clause OR MIT + https://crates.io/crates/num_enum_derive/0.7.3 0.7.3 Apache-2.0 OR BSD-3-Clause OR MIT + +======================================================================== +Apache-2.0 OR BSL-1.0 licenses +======================================================================== +The following components are provided under the Apache-2.0 OR BSL-1.0 License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/ryu/1.0.20 1.0.20 Apache-2.0 OR BSL-1.0 + +======================================================================== +Apache-2.0 OR LGPL-2.1-or-later OR MIT licenses +======================================================================== +The following components are provided under the Apache-2.0 OR LGPL-2.1-or-later OR MIT License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/r-efi/5.2.0 5.2.0 Apache-2.0 OR LGPL-2.1-or-later OR MIT ======================================================================== Apache-2.0 OR MIT licenses @@ -214,125 +267,133 @@ Apache-2.0 OR MIT licenses The following components are provided under the Apache-2.0 OR MIT License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/anyhow/1.0.1 1.0.1 Apache-2.0 OR MIT - https://crates.io/crates/arc-swap/0.4.0 0.4.0 Apache-2.0 OR MIT - https://crates.io/crates/async-trait/0.1.43 0.1.43 Apache-2.0 OR MIT - https://crates.io/crates/autocfg/1.1.0 1.1.0 Apache-2.0 OR MIT - https://crates.io/crates/base64/0.13.0 0.13.0 Apache-2.0 OR MIT - https://crates.io/crates/bitflags/1.3.1 1.3.1 Apache-2.0 OR MIT - https://crates.io/crates/cc/1.0.18 1.0.18 Apache-2.0 OR MIT - https://crates.io/crates/cfg-if/0.1.2 0.1.2 Apache-2.0 OR MIT + https://crates.io/crates/addr2line/0.24.2 0.24.2 Apache-2.0 OR MIT + https://crates.io/crates/anyhow/1.0.97 1.0.97 Apache-2.0 OR MIT + https://crates.io/crates/async-trait/0.1.88 0.1.88 Apache-2.0 OR MIT + https://crates.io/crates/atomic-waker/1.1.2 1.1.2 Apache-2.0 OR MIT + https://crates.io/crates/autocfg/1.4.0 1.4.0 Apache-2.0 OR MIT + https://crates.io/crates/backtrace/0.3.74 0.3.74 Apache-2.0 OR MIT + https://crates.io/crates/base64/0.22.1 0.22.1 Apache-2.0 OR MIT + https://crates.io/crates/bitflags/1.3.2 1.3.2 Apache-2.0 OR MIT + https://crates.io/crates/bitflags/2.9.0 2.9.0 Apache-2.0 OR MIT + https://crates.io/crates/cc/1.2.17 1.2.17 Apache-2.0 OR MIT https://crates.io/crates/cfg-if/1.0.0 1.0.0 Apache-2.0 OR MIT - https://crates.io/crates/derivative/2.0.0 2.0.0 Apache-2.0 OR MIT - https://crates.io/crates/dtoa/0.4.0 0.4.0 Apache-2.0 OR MIT - https://crates.io/crates/either/1.0.0 1.0.0 Apache-2.0 OR MIT - https://crates.io/crates/fixedbitset/0.4.0 0.4.0 Apache-2.0 OR MIT - https://crates.io/crates/fnv/1.0.5 1.0.5 Apache-2.0 OR MIT - https://crates.io/crates/futures-channel/0.3.0 0.3.0 Apache-2.0 OR MIT - https://crates.io/crates/futures-core/0.3.21 0.3.21 Apache-2.0 OR MIT - https://crates.io/crates/futures-macro/0.3.21 0.3.21 Apache-2.0 OR MIT - https://crates.io/crates/futures-sink/0.3.0 0.3.0 Apache-2.0 OR MIT - https://crates.io/crates/futures-task/0.3.21 0.3.21 Apache-2.0 OR MIT - https://crates.io/crates/futures-util/0.3.21 0.3.21 Apache-2.0 OR MIT - https://crates.io/crates/getrandom/0.2.0 0.2.0 Apache-2.0 OR MIT - https://crates.io/crates/hashbrown/0.9.1 0.9.1 Apache-2.0 OR MIT - https://crates.io/crates/heck/0.3.0 0.3.0 Apache-2.0 OR MIT - https://crates.io/crates/heck/0.4.0 0.4.0 Apache-2.0 OR MIT - https://crates.io/crates/http/0.2.5 0.2.5 Apache-2.0 OR MIT - https://crates.io/crates/httparse/1.5.1 1.5.1 Apache-2.0 OR MIT - https://crates.io/crates/httpdate/1.0.0 1.0.0 Apache-2.0 OR MIT - https://crates.io/crates/hyper-timeout/0.4.0 0.4.0 Apache-2.0 OR MIT - https://crates.io/crates/indexmap/1.6.2 1.6.2 Apache-2.0 OR MIT - https://crates.io/crates/itertools/0.10.0 0.10.0 Apache-2.0 OR MIT - https://crates.io/crates/itoa/0.3.0 0.3.0 Apache-2.0 OR MIT - https://crates.io/crates/itoa/0.4.1 0.4.1 Apache-2.0 OR MIT - https://crates.io/crates/itoa/1.0.1 1.0.1 Apache-2.0 OR MIT - https://crates.io/crates/lazy_static/1.4.0 1.4.0 Apache-2.0 OR MIT - https://crates.io/crates/libc/0.2.114 0.2.114 Apache-2.0 OR MIT - https://crates.io/crates/libz-sys/1.1.9 1.1.9 Apache-2.0 OR MIT - https://crates.io/crates/lock_api/0.4.6 0.4.6 Apache-2.0 OR MIT - https://crates.io/crates/log/0.4.17 0.4.17 Apache-2.0 OR MIT - https://crates.io/crates/match_cfg/0.1.0 0.1.0 Apache-2.0 OR MIT - https://crates.io/crates/mime/0.3.16 0.3.16 Apache-2.0 OR MIT - https://crates.io/crates/minimal-lexical/0.1.2 0.1.2 Apache-2.0 OR MIT - https://crates.io/crates/miow/0.3.6 0.3.6 Apache-2.0 OR MIT - https://crates.io/crates/multimap/0.8.0 0.8.0 Apache-2.0 OR MIT - https://crates.io/crates/ntapi/0.3.0 0.3.0 Apache-2.0 OR MIT - https://crates.io/crates/num-traits/0.1.32 0.1.32 Apache-2.0 OR MIT - https://crates.io/crates/num_cpus/1.8.0 1.8.0 Apache-2.0 OR MIT - https://crates.io/crates/num_threads/0.1.2 0.1.2 Apache-2.0 OR MIT - https://crates.io/crates/once_cell/1.14.0 1.14.0 Apache-2.0 OR MIT - https://crates.io/crates/parking_lot/0.12.1 0.12.1 Apache-2.0 OR MIT - https://crates.io/crates/parking_lot_core/0.9.0 0.9.0 Apache-2.0 OR MIT - https://crates.io/crates/percent-encoding/2.1.0 2.1.0 Apache-2.0 OR MIT - https://crates.io/crates/petgraph/0.6.0 0.6.0 Apache-2.0 OR MIT - https://crates.io/crates/pin-project/0.4.29 0.4.29 Apache-2.0 OR MIT - https://crates.io/crates/pin-project/1.0.2 1.0.2 Apache-2.0 OR MIT - https://crates.io/crates/pin-project-internal/0.4.29 0.4.29 Apache-2.0 OR MIT - https://crates.io/crates/pin-project-internal/1.0.2 1.0.2 Apache-2.0 OR MIT - https://crates.io/crates/pin-project-lite/0.2.9 0.2.9 Apache-2.0 OR MIT + https://crates.io/crates/cmake/0.1.54 0.1.54 Apache-2.0 OR MIT + https://crates.io/crates/deranged/0.4.1 0.4.1 Apache-2.0 OR MIT + https://crates.io/crates/either/1.15.0 1.15.0 Apache-2.0 OR MIT + https://crates.io/crates/equivalent/1.0.2 1.0.2 Apache-2.0 OR MIT + https://crates.io/crates/errno/0.3.10 0.3.10 Apache-2.0 OR MIT + https://crates.io/crates/fastrand/2.3.0 2.3.0 Apache-2.0 OR MIT + https://crates.io/crates/fixedbitset/0.5.7 0.5.7 Apache-2.0 OR MIT + https://crates.io/crates/fnv/1.0.7 1.0.7 Apache-2.0 OR MIT + https://crates.io/crates/futures-channel/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/futures-core/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/futures-macro/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/futures-sink/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/futures-task/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/futures-util/0.3.31 0.3.31 Apache-2.0 OR MIT + https://crates.io/crates/getrandom/0.2.15 0.2.15 Apache-2.0 OR MIT + https://crates.io/crates/getrandom/0.3.2 0.3.2 Apache-2.0 OR MIT + https://crates.io/crates/gimli/0.31.1 0.31.1 Apache-2.0 OR MIT + https://crates.io/crates/hashbrown/0.12.3 0.12.3 Apache-2.0 OR MIT + https://crates.io/crates/hashbrown/0.15.2 0.15.2 Apache-2.0 OR MIT + https://crates.io/crates/heck/0.3.3 0.3.3 Apache-2.0 OR MIT + https://crates.io/crates/heck/0.5.0 0.5.0 Apache-2.0 OR MIT + https://crates.io/crates/hermit-abi/0.1.19 0.1.19 Apache-2.0 OR MIT + https://crates.io/crates/http/1.3.1 1.3.1 Apache-2.0 OR MIT + https://crates.io/crates/httparse/1.10.1 1.10.1 Apache-2.0 OR MIT + https://crates.io/crates/httpdate/1.0.3 1.0.3 Apache-2.0 OR MIT + https://crates.io/crates/hyper-timeout/0.5.2 0.5.2 Apache-2.0 OR MIT + https://crates.io/crates/indexmap/1.9.3 1.9.3 Apache-2.0 OR MIT + https://crates.io/crates/indexmap/2.8.0 2.8.0 Apache-2.0 OR MIT + https://crates.io/crates/itertools/0.14.0 0.14.0 Apache-2.0 OR MIT + https://crates.io/crates/itoa/1.0.15 1.0.15 Apache-2.0 OR MIT + https://crates.io/crates/lazy_static/1.5.0 1.5.0 Apache-2.0 OR MIT + https://crates.io/crates/libc/0.2.171 0.2.171 Apache-2.0 OR MIT + https://crates.io/crates/libz-sys/1.1.22 1.1.22 Apache-2.0 OR MIT + https://crates.io/crates/lock_api/0.4.12 0.4.12 Apache-2.0 OR MIT + https://crates.io/crates/log/0.4.27 0.4.27 Apache-2.0 OR MIT + https://crates.io/crates/mime/0.3.17 0.3.17 Apache-2.0 OR MIT + https://crates.io/crates/minimal-lexical/0.2.1 0.2.1 Apache-2.0 OR MIT + https://crates.io/crates/multimap/0.10.0 0.10.0 Apache-2.0 OR MIT + https://crates.io/crates/num-conv/0.1.0 0.1.0 Apache-2.0 OR MIT + https://crates.io/crates/object/0.36.7 0.36.7 Apache-2.0 OR MIT + https://crates.io/crates/once_cell/1.21.1 1.21.1 Apache-2.0 OR MIT + https://crates.io/crates/parking_lot/0.12.3 0.12.3 Apache-2.0 OR MIT + https://crates.io/crates/parking_lot_core/0.9.10 0.9.10 Apache-2.0 OR MIT + https://crates.io/crates/percent-encoding/2.3.1 2.3.1 Apache-2.0 OR MIT + https://crates.io/crates/petgraph/0.7.1 0.7.1 Apache-2.0 OR MIT + https://crates.io/crates/pin-project/1.1.10 1.1.10 Apache-2.0 OR MIT + https://crates.io/crates/pin-project-internal/1.1.10 1.1.10 Apache-2.0 OR MIT + https://crates.io/crates/pin-project-lite/0.2.16 0.2.16 Apache-2.0 OR MIT https://crates.io/crates/pin-utils/0.1.0 0.1.0 Apache-2.0 OR MIT - https://crates.io/crates/pkg-config/0.3.9 0.3.9 Apache-2.0 OR MIT - https://crates.io/crates/portable-atomic/0.3.13 0.3.13 Apache-2.0 OR MIT - https://crates.io/crates/ppv-lite86/0.2.8 0.2.8 Apache-2.0 OR MIT - https://crates.io/crates/prettyplease/0.1.0 0.1.0 Apache-2.0 OR MIT - https://crates.io/crates/proc-macro-crate/0.1.4 0.1.4 Apache-2.0 OR MIT - https://crates.io/crates/proc-macro2/1.0.52 1.0.52 Apache-2.0 OR MIT - https://crates.io/crates/quote/1.0.26 1.0.26 Apache-2.0 OR MIT - https://crates.io/crates/rand/0.4.1 0.4.1 Apache-2.0 OR MIT - https://crates.io/crates/rand/0.8.0 0.8.0 Apache-2.0 OR MIT - https://crates.io/crates/rand_chacha/0.3.0 0.3.0 Apache-2.0 OR MIT - https://crates.io/crates/rand_core/0.6.2 0.6.2 Apache-2.0 OR MIT - https://crates.io/crates/rand_hc/0.3.0 0.3.0 Apache-2.0 OR MIT - https://crates.io/crates/regex/1.5.5 1.5.5 Apache-2.0 OR MIT - https://crates.io/crates/regex-syntax/0.6.25 0.6.25 Apache-2.0 OR MIT - https://crates.io/crates/remove_dir_all/0.5.0 0.5.0 Apache-2.0 OR MIT - https://crates.io/crates/scopeguard/1.1.0 1.1.0 Apache-2.0 OR MIT - https://crates.io/crates/serde/1.0.157 1.0.157 Apache-2.0 OR MIT - https://crates.io/crates/serde_derive/1.0.157 1.0.157 Apache-2.0 OR MIT - https://crates.io/crates/serde_json/1.0.0 1.0.0 Apache-2.0 OR MIT - https://crates.io/crates/signal-hook-registry/1.1.1 1.1.1 Apache-2.0 OR MIT - https://crates.io/crates/smallvec/1.6.1 1.6.1 Apache-2.0 OR MIT - https://crates.io/crates/socket2/0.3.17 0.3.17 Apache-2.0 OR MIT - https://crates.io/crates/socket2/0.4.4 0.4.4 Apache-2.0 OR MIT - https://crates.io/crates/structopt/0.3.0 0.3.0 Apache-2.0 OR MIT - https://crates.io/crates/structopt-derive/0.3.0 0.3.0 Apache-2.0 OR MIT - https://crates.io/crates/syn/1.0.85 1.0.85 Apache-2.0 OR MIT - https://crates.io/crates/syn/2.0.0 2.0.0 Apache-2.0 OR MIT - https://crates.io/crates/tempfile/3.0.2 3.0.2 Apache-2.0 OR MIT - https://crates.io/crates/thiserror/1.0.32 1.0.32 Apache-2.0 OR MIT - https://crates.io/crates/thiserror-impl/1.0.32 1.0.32 Apache-2.0 OR MIT - https://crates.io/crates/time/0.3.9 0.3.9 Apache-2.0 OR MIT - https://crates.io/crates/tokio-io-timeout/1.0.1 1.0.1 Apache-2.0 OR MIT - https://crates.io/crates/toml/0.5.2 0.5.2 Apache-2.0 OR MIT - https://crates.io/crates/unicode-ident/1.0.0 1.0.0 Apache-2.0 OR MIT - https://crates.io/crates/unicode-segmentation/1.2.0 1.2.0 Apache-2.0 OR MIT - https://crates.io/crates/unicode-width/0.1.4 0.1.4 Apache-2.0 OR MIT - https://crates.io/crates/unicode-xid/0.2.0 0.2.0 Apache-2.0 OR MIT - https://crates.io/crates/uuid/1.1.2 1.1.2 Apache-2.0 OR MIT - https://crates.io/crates/vcpkg/0.2.0 0.2.0 Apache-2.0 OR MIT - https://crates.io/crates/vec_map/0.8.0 0.8.0 Apache-2.0 OR MIT - https://crates.io/crates/version_check/0.9.0 0.9.0 Apache-2.0 OR MIT + https://crates.io/crates/pkg-config/0.3.32 0.3.32 Apache-2.0 OR MIT + https://crates.io/crates/portable-atomic/1.11.0 1.11.0 Apache-2.0 OR MIT + https://crates.io/crates/powerfmt/0.2.0 0.2.0 Apache-2.0 OR MIT + https://crates.io/crates/ppv-lite86/0.2.21 0.2.21 Apache-2.0 OR MIT + https://crates.io/crates/prettyplease/0.2.31 0.2.31 Apache-2.0 OR MIT + https://crates.io/crates/proc-macro-crate/3.3.0 3.3.0 Apache-2.0 OR MIT + https://crates.io/crates/proc-macro-error/1.0.4 1.0.4 Apache-2.0 OR MIT + https://crates.io/crates/proc-macro-error-attr/1.0.4 1.0.4 Apache-2.0 OR MIT + https://crates.io/crates/proc-macro2/1.0.94 1.0.94 Apache-2.0 OR MIT + https://crates.io/crates/quote/1.0.40 1.0.40 Apache-2.0 OR MIT + https://crates.io/crates/rand/0.8.5 0.8.5 Apache-2.0 OR MIT + https://crates.io/crates/rand_chacha/0.3.1 0.3.1 Apache-2.0 OR MIT + https://crates.io/crates/rand_core/0.6.4 0.6.4 Apache-2.0 OR MIT + https://crates.io/crates/regex/1.11.1 1.11.1 Apache-2.0 OR MIT + https://crates.io/crates/regex-automata/0.4.9 0.4.9 Apache-2.0 OR MIT + https://crates.io/crates/regex-syntax/0.8.5 0.8.5 Apache-2.0 OR MIT + https://crates.io/crates/rustc-demangle/0.1.24 0.1.24 Apache-2.0 OR MIT + https://crates.io/crates/rustversion/1.0.20 1.0.20 Apache-2.0 OR MIT + https://crates.io/crates/scopeguard/1.2.0 1.2.0 Apache-2.0 OR MIT + https://crates.io/crates/serde/1.0.219 1.0.219 Apache-2.0 OR MIT + https://crates.io/crates/serde_derive/1.0.219 1.0.219 Apache-2.0 OR MIT + https://crates.io/crates/serde_json/1.0.140 1.0.140 Apache-2.0 OR MIT + https://crates.io/crates/shlex/1.3.0 1.3.0 Apache-2.0 OR MIT + https://crates.io/crates/signal-hook-registry/1.4.2 1.4.2 Apache-2.0 OR MIT + https://crates.io/crates/smallvec/1.14.0 1.14.0 Apache-2.0 OR MIT + https://crates.io/crates/socket2/0.5.8 0.5.8 Apache-2.0 OR MIT + https://crates.io/crates/structopt/0.3.26 0.3.26 Apache-2.0 OR MIT + https://crates.io/crates/structopt-derive/0.4.18 0.4.18 Apache-2.0 OR MIT + https://crates.io/crates/syn/1.0.109 1.0.109 Apache-2.0 OR MIT + https://crates.io/crates/syn/2.0.100 2.0.100 Apache-2.0 OR MIT + https://crates.io/crates/tempfile/3.19.1 3.19.1 Apache-2.0 OR MIT + https://crates.io/crates/thiserror/2.0.12 2.0.12 Apache-2.0 OR MIT + https://crates.io/crates/thiserror-impl/2.0.12 2.0.12 Apache-2.0 OR MIT + https://crates.io/crates/time/0.3.41 0.3.41 Apache-2.0 OR MIT + https://crates.io/crates/time-core/0.1.4 0.1.4 Apache-2.0 OR MIT + https://crates.io/crates/toml_datetime/0.6.8 0.6.8 Apache-2.0 OR MIT + https://crates.io/crates/toml_edit/0.22.24 0.22.24 Apache-2.0 OR MIT + https://crates.io/crates/unicode-segmentation/1.12.0 1.12.0 Apache-2.0 OR MIT + https://crates.io/crates/unicode-width/0.1.14 0.1.14 Apache-2.0 OR MIT + https://crates.io/crates/uuid/1.16.0 1.16.0 Apache-2.0 OR MIT + https://crates.io/crates/vcpkg/0.2.15 0.2.15 Apache-2.0 OR MIT + https://crates.io/crates/vec_map/0.8.2 0.8.2 Apache-2.0 OR MIT + https://crates.io/crates/version_check/0.9.5 0.9.5 Apache-2.0 OR MIT https://crates.io/crates/winapi/0.3.9 0.3.9 Apache-2.0 OR MIT https://crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0 0.4.0 Apache-2.0 OR MIT https://crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0 0.4.0 Apache-2.0 OR MIT - https://crates.io/crates/windows-sys/0.29.0 0.29.0 Apache-2.0 OR MIT - https://crates.io/crates/windows_aarch64_msvc/0.29.0 0.29.0 Apache-2.0 OR MIT - https://crates.io/crates/windows_i686_gnu/0.29.0 0.29.0 Apache-2.0 OR MIT - https://crates.io/crates/windows_i686_msvc/0.29.0 0.29.0 Apache-2.0 OR MIT - https://crates.io/crates/windows_x86_64_gnu/0.29.0 0.29.0 Apache-2.0 OR MIT - https://crates.io/crates/windows_x86_64_msvc/0.29.0 0.29.0 Apache-2.0 OR MIT + https://crates.io/crates/windows/0.52.0 0.52.0 Apache-2.0 OR MIT + https://crates.io/crates/windows-core/0.52.0 0.52.0 Apache-2.0 OR MIT + https://crates.io/crates/windows-sys/0.52.0 0.52.0 Apache-2.0 OR MIT + https://crates.io/crates/windows-sys/0.59.0 0.59.0 Apache-2.0 OR MIT + https://crates.io/crates/windows-targets/0.52.6 0.52.6 Apache-2.0 OR MIT + https://crates.io/crates/windows_aarch64_gnullvm/0.52.6 0.52.6 Apache-2.0 OR MIT + https://crates.io/crates/windows_aarch64_msvc/0.52.6 0.52.6 Apache-2.0 OR MIT + https://crates.io/crates/windows_i686_gnu/0.52.6 0.52.6 Apache-2.0 OR MIT + https://crates.io/crates/windows_i686_gnullvm/0.52.6 0.52.6 Apache-2.0 OR MIT + https://crates.io/crates/windows_i686_msvc/0.52.6 0.52.6 Apache-2.0 OR MIT + https://crates.io/crates/windows_x86_64_gnu/0.52.6 0.52.6 Apache-2.0 OR MIT + https://crates.io/crates/windows_x86_64_gnullvm/0.52.6 0.52.6 Apache-2.0 OR MIT + https://crates.io/crates/windows_x86_64_msvc/0.52.6 0.52.6 Apache-2.0 OR MIT ======================================================================== -BSD-3-Clause licenses +Apache-2.0 OR MIT OR Zlib licenses ======================================================================== -The following components are provided under the BSD-3-Clause License. See project link for details. +The following components are provided under the Apache-2.0 OR MIT OR Zlib License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/fuchsia-zircon/0.3.1 0.3.1 BSD-3-Clause - https://crates.io/crates/fuchsia-zircon-sys/0.3.1 0.3.1 BSD-3-Clause - https://crates.io/crates/num_enum/0.5.0 0.5.0 BSD-3-Clause - https://crates.io/crates/num_enum_derive/0.5.0 0.5.0 BSD-3-Clause + https://crates.io/crates/miniz_oxide/0.8.5 0.8.5 Apache-2.0 OR MIT OR Zlib ======================================================================== MIT licenses @@ -340,52 +401,52 @@ MIT licenses The following components are provided under the MIT License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/ansi_term/0.11.0 0.11.0 MIT - https://crates.io/crates/async-stream/0.3.0 0.3.0 MIT - https://crates.io/crates/async-stream-impl/0.3.0 0.3.0 MIT - https://crates.io/crates/atty/0.2.2 0.2.2 MIT - https://crates.io/crates/autotools/0.2.4 0.2.4 MIT - https://crates.io/crates/axum/0.5.0 0.5.0 MIT - https://crates.io/crates/axum-core/0.2.0 0.2.0 MIT - https://crates.io/crates/bytes/1.2.1 1.2.1 MIT - https://crates.io/crates/clap/2.33.0 2.33.0 MIT - https://crates.io/crates/h2/0.3.3 0.3.3 MIT - https://crates.io/crates/hostname/0.3.1 0.3.1 MIT - https://crates.io/crates/http-body/0.4.4 0.4.4 MIT - https://crates.io/crates/http-range-header/0.3.0 0.3.0 MIT - https://crates.io/crates/hyper/0.14.14 0.14.14 MIT - https://crates.io/crates/kernel32-sys/0.2.0 0.2.0 MIT - https://crates.io/crates/matchit/0.5.0 0.5.0 MIT - https://crates.io/crates/mio/0.8.1 0.8.1 MIT - https://crates.io/crates/nom/7.0.0 7.0.0 MIT - https://crates.io/crates/proc-macro-error/0.2.0 0.2.0 MIT - https://crates.io/crates/rdkafka/0.32.2 0.32.2 MIT - https://crates.io/crates/rdkafka-sys/4.5.0+1.9.2 4.5.0+1.9.2 MIT - https://crates.io/crates/redox_syscall/0.1.38 0.1.38 MIT - https://crates.io/crates/redox_syscall/0.2.8 0.2.8 MIT - https://crates.io/crates/slab/0.4.2 0.4.2 MIT + https://crates.io/crates/ansi_term/0.12.1 0.12.1 MIT + https://crates.io/crates/async-stream/0.3.6 0.3.6 MIT + https://crates.io/crates/async-stream-impl/0.3.6 0.3.6 MIT + https://crates.io/crates/atty/0.2.14 0.2.14 MIT + https://crates.io/crates/axum/0.7.9 0.7.9 MIT + https://crates.io/crates/axum-core/0.4.5 0.4.5 MIT + https://crates.io/crates/bytes/1.10.1 1.10.1 MIT + https://crates.io/crates/clap/2.34.0 2.34.0 MIT + https://crates.io/crates/h2/0.4.8 0.4.8 MIT + https://crates.io/crates/hostname/0.4.0 0.4.0 MIT + https://crates.io/crates/http-body/1.0.1 1.0.1 MIT + https://crates.io/crates/http-body-util/0.1.3 0.1.3 MIT + https://crates.io/crates/hyper/1.6.0 1.6.0 MIT + https://crates.io/crates/hyper-util/0.1.10 0.1.10 MIT + https://crates.io/crates/mio/1.0.3 1.0.3 MIT + https://crates.io/crates/nom/7.1.3 7.1.3 MIT + https://crates.io/crates/rdkafka/0.37.0 0.37.0 MIT + https://crates.io/crates/rdkafka-sys/4.8.0+2.3.0 4.8.0+2.3.0 MIT + https://crates.io/crates/redox_syscall/0.5.10 0.5.10 MIT + https://crates.io/crates/slab/0.4.9 0.4.9 MIT https://crates.io/crates/strsim/0.8.0 0.8.0 MIT https://crates.io/crates/textwrap/0.11.0 0.11.0 MIT - https://crates.io/crates/tokio/1.20.1 1.20.1 MIT - https://crates.io/crates/tokio-macros/1.7.0 1.7.0 MIT - https://crates.io/crates/tokio-stream/0.1.9 0.1.9 MIT - https://crates.io/crates/tokio-util/0.6.3 0.6.3 MIT - https://crates.io/crates/tokio-util/0.7.0 0.7.0 MIT - https://crates.io/crates/tonic/0.8.0 0.8.0 MIT - https://crates.io/crates/tonic-build/0.8.0 0.8.0 MIT - https://crates.io/crates/tower/0.4.11 0.4.11 MIT - https://crates.io/crates/tower-http/0.2.1 0.2.1 MIT - https://crates.io/crates/tower-layer/0.3.1 0.3.1 MIT - https://crates.io/crates/tower-service/0.3.0 0.3.0 MIT - https://crates.io/crates/tracing/0.1.36 0.1.36 MIT - https://crates.io/crates/tracing-attributes/0.1.22 0.1.22 MIT - https://crates.io/crates/tracing-core/0.1.29 0.1.29 MIT - https://crates.io/crates/tracing-futures/0.2.0 0.2.0 MIT - https://crates.io/crates/try-lock/0.2.0 0.2.0 MIT - https://crates.io/crates/want/0.3.0 0.3.0 MIT - https://crates.io/crates/which/4.0.0 4.0.0 MIT - https://crates.io/crates/winapi/0.2.4 0.2.4 MIT - https://crates.io/crates/winapi-build/0.1.1 0.1.1 MIT + https://crates.io/crates/tokio/1.44.1 1.44.1 MIT + https://crates.io/crates/tokio-macros/2.5.0 2.5.0 MIT + https://crates.io/crates/tokio-stream/0.1.17 0.1.17 MIT + https://crates.io/crates/tokio-util/0.7.14 0.7.14 MIT + https://crates.io/crates/tonic/0.12.3 0.12.3 MIT + https://crates.io/crates/tonic-build/0.12.3 0.12.3 MIT + https://crates.io/crates/tower/0.4.13 0.4.13 MIT + https://crates.io/crates/tower/0.5.2 0.5.2 MIT + https://crates.io/crates/tower-layer/0.3.3 0.3.3 MIT + https://crates.io/crates/tower-service/0.3.3 0.3.3 MIT + https://crates.io/crates/tracing/0.1.41 0.1.41 MIT + https://crates.io/crates/tracing-attributes/0.1.28 0.1.28 MIT + https://crates.io/crates/tracing-core/0.1.33 0.1.33 MIT + https://crates.io/crates/try-lock/0.2.5 0.2.5 MIT + https://crates.io/crates/want/0.3.1 0.3.1 MIT + https://crates.io/crates/winnow/0.7.4 0.7.4 MIT + +======================================================================== +MIT AND BSD-3-Clause licenses +======================================================================== +The following components are provided under the MIT AND BSD-3-Clause License. See project link for details. +The text of each license is also included in licenses/LICENSE-[project].txt. + + https://crates.io/crates/matchit/0.7.3 0.7.3 MIT AND BSD-3-Clause ======================================================================== MIT OR Unlicense licenses @@ -393,7 +454,8 @@ MIT OR Unlicense licenses The following components are provided under the MIT OR Unlicense License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/memchr/2.4.1 2.4.1 MIT OR Unlicense + https://crates.io/crates/aho-corasick/1.1.3 1.1.3 MIT OR Unlicense + https://crates.io/crates/memchr/2.7.4 2.7.4 MIT OR Unlicense ======================================================================== Unlicense licenses @@ -401,5 +463,5 @@ Unlicense licenses The following components are provided under the Unlicense License. See project link for details. The text of each license is also included in licenses/LICENSE-[project].txt. - https://crates.io/crates/systemstat/0.2.0 0.2.0 Unlicense + https://crates.io/crates/systemstat/0.2.4 0.2.4 Unlicense diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index f8baec9..f2f2d8e 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -15,7 +15,6 @@ # specific language governing permissions and limitations # under the License. # -version: "3.7" services: # Skywalking components. elasticsearch: @@ -79,4 +78,4 @@ services: environment: SW_OAP_ADDRESS: oap:12800 depends_on: - - oap \ No newline at end of file + - oap diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 84c7d92..bab723b 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -15,13 +15,10 @@ # specific language governing permissions and limitations # under the License. # -version: "3.9" services: collector: image: ghcr.io/apache/skywalking-agent-test-tool/mock-collector:f4f5ef22b1df623464772816bb6b42ba611444ff - ports: - - "19876:19876" - - "12800:12800" + network_mode: host healthcheck: test: [ "CMD", "curl", "http://0.0.0.0:12800/healthCheck" ] interval: 5s @@ -31,8 +28,7 @@ services: build: context: . dockerfile: ./e2e/docker/Dockerfile - expose: - - 8082 + network_mode: host command: --mode consumer depends_on: collector: @@ -48,8 +44,7 @@ services: build: context: . dockerfile: ./e2e/docker/Dockerfile - ports: - - "8081:8081" + network_mode: host command: --mode producer depends_on: collector: @@ -60,11 +55,12 @@ services: condition: service_healthy broker: - image: landoop/fast-data-dev:3.3 + image: apache/kafka:4.0.0 container_name: broker - ports: - - "9092:9092" + network_mode: host healthcheck: test: [ "CMD", "nc", "-zv", "0.0.0.0", "9092"] interval: 5s timeout: 5s + retries: 3 + start_period: 15s diff --git a/e2e/Cargo.toml b/e2e/Cargo.toml index d2e49e1..fd75c40 100644 --- a/e2e/Cargo.toml +++ b/e2e/Cargo.toml @@ -29,9 +29,11 @@ name = "e2e-kafka" path = "src/e2e_kafka.rs" [dependencies] -hyper = { version = "0.14", features = ["full"] } -prost = "0.11.0" -rdkafka = "0.32.2" +http-body-util = "0.1.3" +hyper = { version = "1.6", features = ["full"] } +hyper-util = "0.1.10" +prost = "0.13.5" +rdkafka = "0.37.0" skywalking = { path = "..", features = ["kafka-reporter"] } structopt = "0.3" tokio = { version = "1", features = ["full"] } diff --git a/e2e/data/expected_context.yaml b/e2e/data/expected_context.yaml index ca53043..5702c37 100644 --- a/e2e/data/expected_context.yaml +++ b/e2e/data/expected_context.yaml @@ -47,7 +47,7 @@ segmentItems: isError: false operationName: /pong parentSpanId: 0 - peer: consumer:8082 + peer: 127.0.0.1:8082 skipAnalysis: false spanId: 1 spanLayer: Unknown @@ -87,7 +87,7 @@ segmentItems: parentSpanId: -1 peer: '' refs: - - networkAddress: consumer:8082 + - networkAddress: 127.0.0.1:8082 parentEndpoint: /pong parentService: producer parentServiceInstance: node_0 diff --git a/e2e/docker/Dockerfile b/e2e/docker/Dockerfile index 9a13ba6..01b8509 100644 --- a/e2e/docker/Dockerfile +++ b/e2e/docker/Dockerfile @@ -15,12 +15,11 @@ # specific language governing permissions and limitations # under the License. # -FROM rust:1.65 +FROM rust:1.85 RUN apt-get update && apt-get install -y cmake protobuf-compiler -RUN rustup toolchain install nightly-2023-05-19 +RUN rustup toolchain install nightly-2025-03-24 WORKDIR /build COPY . /build/ -RUN cargo +nightly-2023-05-19 -Z minimal-versions generate-lockfile RUN cargo build --release --workspace ENV RUST_BACKTRACE=1 ENTRYPOINT ["/build/target/release/e2e"] diff --git a/e2e/src/e2e_kafka.rs b/e2e/src/e2e_kafka.rs index e785050..f9d3bc0 100644 --- a/e2e/src/e2e_kafka.rs +++ b/e2e/src/e2e_kafka.rs @@ -67,7 +67,7 @@ fn check_segment(segment: &SegmentObject) { assert_eq!(segment.spans[0].refs[0].parent_endpoint, "/pong"); assert_eq!( segment.spans[0].refs[0].network_address_used_at_peer, - "consumer:8082" + "127.0.0.1:8082" ); } else if segment.service == "producer" { if segment.spans.last().unwrap().operation_name == "/ping" { @@ -76,7 +76,7 @@ fn check_segment(segment: &SegmentObject) { assert_eq!(segment.spans[0].span_id, 1); assert_eq!(segment.spans[0].parent_span_id, 0); assert_eq!(segment.spans[0].operation_name, "/pong"); - assert_eq!(segment.spans[0].peer, "consumer:8082"); + assert_eq!(segment.spans[0].peer, "127.0.0.1:8082"); assert_eq!(segment.spans[0].span_type, SpanType::Exit as i32); assert_eq!(segment.spans[0].span_layer, SpanLayer::Unknown as i32); assert_eq!(segment.spans[0].component_id, 11000); @@ -263,7 +263,7 @@ fn check_log(log: &LogData) { fn create_consumer(topic: &str) -> StreamConsumer { let consumer: StreamConsumer = ClientConfig::new() - .set("bootstrap.servers", "broker:9092") + .set("bootstrap.servers", "127.0.0.1:9092") .set("broker.address.family", "v4") .set("session.timeout.ms", "30000") .set("enable.auto.commit", "true") diff --git a/e2e/src/main.rs b/e2e/src/main.rs index bf46cb3..d714bc8 100644 --- a/e2e/src/main.rs +++ b/e2e/src/main.rs @@ -15,11 +15,14 @@ // specific language governing permissions and limitations // under the License. // +use http_body_util::{Empty, Full}; use hyper::{ - client::HttpConnector, - service::{make_service_fn, service_fn}, - Body, Client, Method, Request, Response, Server, StatusCode, + body::{Bytes, Incoming}, + client, server, + service::service_fn, + Method, Request, Response, StatusCode, }; +use hyper_util::rt::TokioIo; use skywalking::{ logging::{ logger::{self, Logger}, @@ -44,15 +47,15 @@ use skywalking::{ }; use std::{convert::Infallible, error::Error, net::SocketAddr}; use structopt::StructOpt; -use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender}; +use tokio::{ + net::{TcpListener, TcpStream}, + sync::mpsc::{UnboundedReceiver, UnboundedSender}, +}; static NOT_FOUND_MSG: &str = "not found"; static SUCCESS_MSG: &str = "Success"; -async fn handle_ping( - _req: Request, - client: Client, -) -> Result, Infallible> { +async fn handle_ping(_req: Request) -> Result>, Infallible> { logger::log( LogRecord::new() .add_tag("level", "DEBUG") @@ -64,13 +67,13 @@ async fn handle_ping( let mut context = tracer::create_trace_context(); let _span = context.create_entry_span("/ping"); { - let span2 = context.create_exit_span("/pong", "consumer:8082"); - let header = encode_propagation(&context, "/pong", "consumer:8082"); + let span2 = context.create_exit_span("/pong", "127.0.0.1:8082"); + let header = encode_propagation(&context, "/pong", "127.0.0.1:8082"); let req = Request::builder() .method(Method::GET) .header(SKYWALKING_HTTP_CONTEXT_HEADER_KEY, header) - .uri("http://consumer:8082/pong") - .body(Body::from("")) + .uri("http://127.0.0.1:8082/pong") + .body(Empty::::new()) .unwrap(); logger::log( @@ -82,7 +85,14 @@ async fn handle_ping( .record_type(RecordType::Text) .content("do http request"), ); - client.request(req).await.unwrap(); + + let stream = TcpStream::connect("127.0.0.1:8082").await.unwrap(); + let io = TokioIo::new(stream); + let (mut sender, conn) = client::conn::http1::handshake(io).await.unwrap(); + tokio::task::spawn(async move { + conn.await.unwrap(); + }); + sender.send_request(req).await.unwrap(); } { let _span3 = context.create_local_span("async-job"); @@ -96,46 +106,41 @@ async fn handle_ping( .await .unwrap(); } - Ok(Response::new(Body::from("ok"))) + Ok(Response::new(Full::new(Bytes::from("ok")))) } -async fn producer_response( - _req: Request, - client: Client, -) -> Result, Infallible> { - match (_req.method(), _req.uri().path()) { - (&Method::GET, "/ping") => handle_ping(_req, client).await, +async fn producer_response(req: Request) -> Result>, Infallible> { + match (req.method(), req.uri().path()) { + (&Method::GET, "/ping") => handle_ping(req).await, (&Method::GET, "/healthCheck") => Ok(Response::builder() .status(StatusCode::OK) - .body(Body::from(SUCCESS_MSG)) + .body(Full::new(Bytes::from(SUCCESS_MSG))) .unwrap()), _ => Ok(Response::builder() .status(StatusCode::NOT_FOUND) - .body(Body::from(NOT_FOUND_MSG)) + .body(Full::new(Bytes::from(NOT_FOUND_MSG))) .unwrap()), } } async fn run_producer_service(host: [u8; 4]) { - let client = Client::new(); - let make_svc = make_service_fn(|_| { - let client = client.clone(); - - async { - Ok::<_, Infallible>(service_fn(move |req| { - producer_response(req, client.to_owned()) - })) - } - }); let addr = SocketAddr::from((host, 8081)); - let server = Server::bind(&addr).serve(make_svc); + let listener = TcpListener::bind(&addr).await.unwrap(); println!("starting producer on {:?}...", &addr); - if let Err(e) = server.await { - eprintln!("server error: {}", e); + + loop { + let (stream, _) = listener.accept().await.unwrap(); + let io = TokioIo::new(stream); + tokio::task::spawn(async move { + server::conn::http1::Builder::new() + .serve_connection(io, service_fn(producer_response)) + .await + .unwrap() + }); } } -async fn handle_pong(_req: Request) -> Result, Infallible> { +async fn handle_pong(req: Request) -> Result>, Infallible> { logger::log( LogRecord::new() .add_tag("level", "DEBUG") @@ -145,39 +150,44 @@ async fn handle_pong(_req: Request) -> Result, Infallible> ); let ctx = decode_propagation( - _req.headers()[SKYWALKING_HTTP_CONTEXT_HEADER_KEY] + req.headers()[SKYWALKING_HTTP_CONTEXT_HEADER_KEY] .to_str() .unwrap(), ) .unwrap(); let mut context = tracer::create_trace_context(); let _span = context.create_entry_span_with_propagation("/pong", &ctx); - Ok(Response::new(Body::from("ok"))) + Ok(Response::new(Full::new(Bytes::from("ok")))) } -async fn consumer_response(_req: Request) -> Result, Infallible> { - match (_req.method(), _req.uri().path()) { - (&Method::GET, "/pong") => handle_pong(_req).await, +async fn consumer_response(req: Request) -> Result>, Infallible> { + match (req.method(), req.uri().path()) { + (&Method::GET, "/pong") => handle_pong(req).await, (&Method::GET, "/healthCheck") => Ok(Response::builder() .status(StatusCode::OK) - .body(Body::from(SUCCESS_MSG)) + .body(Full::new(Bytes::from(SUCCESS_MSG))) .unwrap()), _ => Ok(Response::builder() .status(StatusCode::NOT_FOUND) - .body(Body::from(NOT_FOUND_MSG)) + .body(Full::new(Bytes::from(NOT_FOUND_MSG))) .unwrap()), } } async fn run_consumer_service(host: [u8; 4]) { - let make_svc = - make_service_fn(|_| async { Ok::<_, Infallible>(service_fn(consumer_response)) }); let addr = SocketAddr::from((host, 8082)); - let server = Server::bind(&addr).serve(make_svc); - + let listener = TcpListener::bind(&addr).await.unwrap(); println!("starting consumer on {:?}...", &addr); - if let Err(e) = server.await { - eprintln!("server error: {}", e); + + loop { + let (stream, _) = listener.accept().await.unwrap(); + let io = TokioIo::new(stream); + tokio::task::spawn(async move { + server::conn::http1::Builder::new() + .serve_connection(io, service_fn(consumer_response)) + .await + .unwrap() + }); } } @@ -239,13 +249,14 @@ impl Report for CombineReporter { async fn main() -> Result<(), Box> { let opt = Opt::from_args(); - let reporter1 = GrpcReporter::connect("http://collector:19876").await?; + let reporter1 = GrpcReporter::connect("http://127.0.0.1:19876").await?; let handle1 = reporter1.reporting().await.spawn(); let mut client_config = RDKafkaClientConfig::new(); client_config - .set("bootstrap.servers", "broker:9092") - .set("message.timeout.ms", "6000"); + .set("bootstrap.servers", "127.0.0.1:9092") + .set("message.timeout.ms", "6000") + .set("allow.auto.create.topics", "true"); let (reporter2, reporting) = KafkaReportBuilder::new(client_config) .with_err_handle(|message, err| { eprintln!( diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..03dabce --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,27 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +[project] +name = "skywalking-rust-e2e" +version = "0.1.0" +description = "Apache SkyWalking Rust Agent E2E Test" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "apache-skywalking>=1.1.0", + "pyyaml>=6.0.2", + "requests>=2.32.3", + "retry>=0.9.2", +] diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 313885f..0000000 --- a/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -PyYAML==5.4 -apache-skywalking==0.5.0 -retry==0.9.2 diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 1af08b0..ce1a250 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -17,6 +17,6 @@ # [toolchain] -channel = "1.65" +channel = "1.85" components = ["rustfmt", "clippy"] diff --git a/src/logging/record.rs b/src/logging/record.rs index 8630eb9..a7df685 100644 --- a/src/logging/record.rs +++ b/src/logging/record.rs @@ -17,10 +17,10 @@ //! Log record items. use crate::{ - common::system_time::{fetch_time, TimePeriod}, + common::system_time::{TimePeriod, fetch_time}, proto::v3::{ - log_data_body::Content, JsonLog, KeyStringValuePair, LogData, LogDataBody, LogTags, - TextLog, TraceContext, YamlLog, + JsonLog, KeyStringValuePair, LogData, LogDataBody, LogTags, TextLog, TraceContext, YamlLog, + log_data_body::Content, }, trace::{ span::{HandleSpanObject, Span}, diff --git a/src/management/instance.rs b/src/management/instance.rs index e766bfd..e88b3e0 100644 --- a/src/management/instance.rs +++ b/src/management/instance.rs @@ -17,11 +17,10 @@ //! Skywalking report instance properties items. use crate::proto::v3::{InstanceProperties, KeyStringValuePair}; -use once_cell::sync::Lazy; -use std::{collections::HashMap, process}; +use std::{collections::HashMap, process, sync::LazyLock}; use systemstat::{IpAddr, Platform, System}; -static IPS: Lazy> = Lazy::new(|| { +static IPS: LazyLock> = LazyLock::new(|| { System::new() .networks() .ok() @@ -44,7 +43,7 @@ static IPS: Lazy> = Lazy::new(|| { .unwrap_or_default() }); -static HOST_NAME: Lazy> = Lazy::new(|| { +static HOST_NAME: LazyLock> = LazyLock::new(|| { hostname::get() .ok() .and_then(|hostname| hostname.into_string().ok()) diff --git a/src/metrics/meter.rs b/src/metrics/meter.rs index 5a3a2ee..0ed1626 100644 --- a/src/metrics/meter.rs +++ b/src/metrics/meter.rs @@ -17,10 +17,10 @@ //! Meter with multiple types. use crate::{ - common::system_time::{fetch_time, TimePeriod}, + common::system_time::{TimePeriod, fetch_time}, metrics::metricer::Metricer, proto::v3::{ - meter_data::Metric, Label, MeterBucketValue, MeterData, MeterHistogram, MeterSingleValue, + Label, MeterBucketValue, MeterData, MeterHistogram, MeterSingleValue, meter_data::Metric, }, }; use portable_atomic::AtomicF64; diff --git a/src/metrics/metricer.rs b/src/metrics/metricer.rs index 76c5e6a..7d0722f 100644 --- a/src/metrics/metricer.rs +++ b/src/metrics/metricer.rs @@ -29,7 +29,7 @@ use std::{ use tokio::{ select, spawn, sync::mpsc, - task::{spawn_blocking, JoinError, JoinHandle}, + task::{JoinError, JoinHandle, spawn_blocking}, time::interval, }; diff --git a/src/proto/v3/mod.rs b/src/proto/v3/mod.rs index d470966..5f45b3d 100644 --- a/src/proto/v3/mod.rs +++ b/src/proto/v3/mod.rs @@ -20,7 +20,7 @@ #![allow(rustdoc::invalid_html_tags)] #![allow(clippy::derive_partial_eq_without_eq)] -use crate::common::system_time::{fetch_time, TimePeriod}; +use crate::common::system_time::{TimePeriod, fetch_time}; tonic::include_proto!("skywalking.v3"); @@ -61,12 +61,14 @@ impl SpanObject { mod tests { use super::*; + #[allow(dead_code)] trait AssertSerialize: serde::Serialize {} impl AssertSerialize for SegmentObject {} impl AssertSerialize for SpanObject {} + #[allow(dead_code)] trait AssertDeserialize<'de>: serde::Deserialize<'de> {} impl AssertDeserialize<'_> for SegmentObject {} diff --git a/src/reporter/grpc.rs b/src/reporter/grpc.rs index 31676e7..a05fc36 100644 --- a/src/reporter/grpc.rs +++ b/src/reporter/grpc.rs @@ -21,22 +21,21 @@ use super::{CollectItemConsume, CollectItemProduce}; use crate::proto::v3::management_service_client::ManagementServiceClient; use crate::{ proto::v3::{ - log_report_service_client::LogReportServiceClient, + LogData, MeterData, SegmentObject, log_report_service_client::LogReportServiceClient, meter_report_service_client::MeterReportServiceClient, - trace_segment_report_service_client::TraceSegmentReportServiceClient, LogData, MeterData, - SegmentObject, + trace_segment_report_service_client::TraceSegmentReportServiceClient, }, reporter::{CollectItem, Report}, }; use futures_core::Stream; -use futures_util::future::{try_join_all, TryJoinAll}; +use futures_util::future::{TryJoinAll, try_join_all}; use std::{ error::Error, - future::{pending, Future}, + future::{Future, pending}, pin::Pin, sync::{ - atomic::{AtomicBool, Ordering}, Arc, + atomic::{AtomicBool, Ordering}, }, task::{Context, Poll}, time::Duration, @@ -44,18 +43,18 @@ use std::{ use tokio::{ select, sync::{ - mpsc::{self, Receiver, Sender}, Mutex, + mpsc::{self, Receiver, Sender}, }, task::JoinHandle, try_join, }; use tokio_stream::StreamExt; use tonic::{ + Request, Status, metadata::{Ascii, MetadataValue}, - service::{interceptor::InterceptedService, Interceptor}, + service::{Interceptor, interceptor::InterceptedService}, transport::{self, Channel, Endpoint}, - Request, Status, }; use tracing::error; @@ -508,7 +507,7 @@ impl ReceiveFrom { } } - fn stream(&self) -> Option> { + fn stream(&self) -> Option + use> { if self.is_closed.load(Ordering::Relaxed) { return None; } diff --git a/src/reporter/kafka.rs b/src/reporter/kafka.rs index aff55ac..38ed968 100644 --- a/src/reporter/kafka.rs +++ b/src/reporter/kafka.rs @@ -22,11 +22,11 @@ pub use rdkafka::config::{ClientConfig as RDKafkaClientConfig, RDKafkaLogLevel}; use rdkafka::producer::{FutureProducer, FutureRecord}; use std::{ error, - future::{pending, Future}, + future::{Future, pending}, pin::Pin, sync::{ - atomic::{AtomicBool, Ordering::Relaxed}, Arc, + atomic::{AtomicBool, Ordering::Relaxed}, }, time::Duration, }; diff --git a/src/reporter/mod.rs b/src/reporter/mod.rs index 783fcfe..5a4fdb1 100644 --- a/src/reporter/mod.rs +++ b/src/reporter/mod.rs @@ -27,7 +27,7 @@ use crate::proto::v3::{InstancePingPkg, InstanceProperties}; use crate::proto::v3::{LogData, MeterData, SegmentObject}; use serde::{Deserialize, Serialize}; use std::{error::Error, ops::Deref, sync::Arc}; -use tokio::sync::{mpsc, OnceCell}; +use tokio::sync::{OnceCell, mpsc}; use tonic::async_trait; /// Collect item of protobuf object. diff --git a/src/trace/propagation/decoder.rs b/src/trace/propagation/decoder.rs index 3b45e67..f297077 100644 --- a/src/trace/propagation/decoder.rs +++ b/src/trace/propagation/decoder.rs @@ -17,7 +17,7 @@ //! Propagation decoder. use crate::trace::propagation::context::PropagationContext; -use base64::decode; +use base64::prelude::*; /// Decode context value packed in `sw8` header. pub fn decode_propagation(header_value: &str) -> crate::Result { @@ -75,7 +75,7 @@ fn try_parse_sample_status(status: &str) -> crate::Result { } fn b64_encoded_into_string(enc: &str) -> crate::Result { - if let Ok(result) = decode(enc) { + if let Ok(result) = BASE64_STANDARD.decode(enc) { if let Ok(decoded_str) = String::from_utf8(result) { return Ok(decoded_str); } diff --git a/src/trace/propagation/encoder.rs b/src/trace/propagation/encoder.rs index 6d7b417..ba6e29d 100644 --- a/src/trace/propagation/encoder.rs +++ b/src/trace/propagation/encoder.rs @@ -17,7 +17,7 @@ //! Propagation encoder. use crate::trace::trace_context::TracingContext; -use base64::encode; +use base64::prelude::*; /// Encode TracingContext to carry current trace info to the destination of RPC /// call. In general, the output of this function will be packed in `sw8` header @@ -25,12 +25,12 @@ use base64::encode; pub fn encode_propagation(context: &TracingContext, endpoint: &str, address: &str) -> String { format!( "1-{}-{}-{}-{}-{}-{}-{}", - encode(context.trace_id()), - encode(context.trace_segment_id()), + BASE64_STANDARD.encode(context.trace_id()), + BASE64_STANDARD.encode(context.trace_segment_id()), context.peek_active_span_id().unwrap_or(0), - encode(context.service()), - encode(context.service_instance()), - encode(endpoint), - encode(address) + BASE64_STANDARD.encode(context.service()), + BASE64_STANDARD.encode(context.service_instance()), + BASE64_STANDARD.encode(endpoint), + BASE64_STANDARD.encode(address) ) } diff --git a/src/trace/span.rs b/src/trace/span.rs index 50e5cb7..80ac8ba 100644 --- a/src/trace/span.rs +++ b/src/trace/span.rs @@ -19,7 +19,7 @@ use crate::{ common::{ - system_time::{fetch_time, TimePeriod}, + system_time::{TimePeriod, fetch_time}, wait_group::WaitGroup, }, proto::v3::{SpanLayer, SpanObject, SpanType}, @@ -265,6 +265,7 @@ impl HandleSpanObject for AsyncSpan { mod tests { use super::*; + #[allow(dead_code)] trait AssertSend: Send + 'static {} impl AssertSend for Span {} diff --git a/src/trace/trace_context.rs b/src/trace/trace_context.rs index 62d19da..8b8d3a1 100644 --- a/src/trace/trace_context.rs +++ b/src/trace/trace_context.rs @@ -21,7 +21,7 @@ use crate::{ common::{ random_generator::RandomGenerator, - system_time::{fetch_time, TimePeriod}, + system_time::{TimePeriod, fetch_time}, wait_group::WaitGroup, }, error::LOCK_MSG, @@ -39,8 +39,8 @@ use std::{ fmt::Formatter, mem::take, sync::{ - atomic::{AtomicUsize, Ordering}, Arc, + atomic::{AtomicUsize, Ordering}, }, }; @@ -505,6 +505,7 @@ impl ContextSnapshot { mod tests { use super::*; + #[allow(dead_code)] trait AssertSend: Send {} impl AssertSend for TracingContext {} diff --git a/src/trace/tracer.rs b/src/trace/tracer.rs index 7c490c6..f23f168 100644 --- a/src/trace/tracer.rs +++ b/src/trace/tracer.rs @@ -119,6 +119,7 @@ impl WeakTracer { mod tests { use super::*; + #[allow(dead_code)] trait AssertSend: Send {} impl AssertSend for Tracer {} diff --git a/tests/logging.rs b/tests/logging.rs index a330e4a..ffd61e6 100644 --- a/tests/logging.rs +++ b/tests/logging.rs @@ -20,8 +20,8 @@ use skywalking::{ record::{LogRecord, RecordType}, }, proto::v3::{ - log_data_body::Content, JsonLog, KeyStringValuePair, LogData, LogDataBody, LogTags, - TextLog, TraceContext, + JsonLog, KeyStringValuePair, LogData, LogDataBody, LogTags, TextLog, TraceContext, + log_data_body::Content, }, reporter::{CollectItem, Report}, trace::{span::HandleSpanObject, tracer::Tracer}, diff --git a/tests/metrics.rs b/tests/metrics.rs index 94446d0..4274809 100644 --- a/tests/metrics.rs +++ b/tests/metrics.rs @@ -20,7 +20,7 @@ use skywalking::{ metricer::Metricer, }, proto::v3::{ - meter_data::Metric, Label, MeterBucketValue, MeterData, MeterHistogram, MeterSingleValue, + Label, MeterBucketValue, MeterData, MeterHistogram, MeterSingleValue, meter_data::Metric, }, reporter::{CollectItem, Report}, }; diff --git a/tests/trace_context.rs b/tests/trace_context.rs index 44512bc..5315f90 100644 --- a/tests/trace_context.rs +++ b/tests/trace_context.rs @@ -20,7 +20,7 @@ use skywalking::{ KeyStringValuePair, Log, RefType, SegmentObject, SegmentReference, SpanLayer, SpanObject, SpanType, }, - reporter::{print::PrintReporter, CollectItem, Report}, + reporter::{CollectItem, Report, print::PrintReporter}, trace::{ propagation::{decoder::decode_propagation, encoder::encode_propagation}, span::HandleSpanObject, diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..6e0adc7 --- /dev/null +++ b/uv.lock @@ -0,0 +1,320 @@ +version = 1 +requires-python = ">=3.12" + +[[package]] +name = "apache-skywalking" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "grpcio" }, + { name = "grpcio-tools" }, + { name = "packaging" }, + { name = "psutil" }, + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/35/1b/6bb577f0825e23eff43210f1797d5b6becbf02827aaf1c1ba1cf45f2fa4d/apache_skywalking-1.1.0.tar.gz", hash = "sha256:4e5cd728d314183a5da8bd804b936f0c1f5b8a937c4aadc104d11faa481f497f", size = 110572 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/af/239e34913fd5f1a610b10a3983c9849dcea21c152c1ccb690a8d4512e7a5/apache_skywalking-1.1.0-py3-none-any.whl", hash = "sha256:a73ee28a7b7217f99f1d6b9c2ee015137cb691a58ac058dd89351dad30888b44", size = 249532 }, +] + +[[package]] +name = "certifi" +version = "2025.1.31" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", size = 167577 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe", size = 166393 }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", size = 123188 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545", size = 196105 }, + { url = "https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7", size = 140404 }, + { url = "https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757", size = 150423 }, + { url = "https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa", size = 143184 }, + { url = "https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d", size = 145268 }, + { url = "https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616", size = 147601 }, + { url = "https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b", size = 141098 }, + { url = "https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d", size = 149520 }, + { url = "https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a", size = 152852 }, + { url = "https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9", size = 150488 }, + { url = "https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1", size = 146192 }, + { url = "https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35", size = 95550 }, + { url = "https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f", size = 102785 }, + { url = "https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda", size = 195698 }, + { url = "https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313", size = 140162 }, + { url = "https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9", size = 150263 }, + { url = "https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b", size = 142966 }, + { url = "https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11", size = 144992 }, + { url = "https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f", size = 147162 }, + { url = "https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd", size = 140972 }, + { url = "https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2", size = 149095 }, + { url = "https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886", size = 152668 }, + { url = "https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601", size = 150073 }, + { url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", size = 145732 }, + { url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", size = 95391 }, + { url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", size = 102702 }, + { url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", size = 49767 }, +] + +[[package]] +name = "decorator" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190 }, +] + +[[package]] +name = "grpcio" +version = "1.71.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/95/aa11fc09a85d91fbc7dd405dcb2a1e0256989d67bf89fa65ae24b3ba105a/grpcio-1.71.0.tar.gz", hash = "sha256:2b85f7820475ad3edec209d3d89a7909ada16caab05d3f2e08a7e8ae3200a55c", size = 12549828 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4c/83/bd4b6a9ba07825bd19c711d8b25874cd5de72c2a3fbf635c3c344ae65bd2/grpcio-1.71.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:0ff35c8d807c1c7531d3002be03221ff9ae15712b53ab46e2a0b4bb271f38537", size = 5184101 }, + { url = "https://files.pythonhosted.org/packages/31/ea/2e0d90c0853568bf714693447f5c73272ea95ee8dad107807fde740e595d/grpcio-1.71.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:b78a99cd1ece4be92ab7c07765a0b038194ded2e0a26fd654591ee136088d8d7", size = 11310927 }, + { url = "https://files.pythonhosted.org/packages/ac/bc/07a3fd8af80467390af491d7dc66882db43884128cdb3cc8524915e0023c/grpcio-1.71.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:dc1a1231ed23caac1de9f943d031f1bc38d0f69d2a3b243ea0d664fc1fbd7fec", size = 5654280 }, + { url = "https://files.pythonhosted.org/packages/16/af/21f22ea3eed3d0538b6ef7889fce1878a8ba4164497f9e07385733391e2b/grpcio-1.71.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6beeea5566092c5e3c4896c6d1d307fb46b1d4bdf3e70c8340b190a69198594", size = 6312051 }, + { url = "https://files.pythonhosted.org/packages/49/9d/e12ddc726dc8bd1aa6cba67c85ce42a12ba5b9dd75d5042214a59ccf28ce/grpcio-1.71.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5170929109450a2c031cfe87d6716f2fae39695ad5335d9106ae88cc32dc84c", size = 5910666 }, + { url = "https://files.pythonhosted.org/packages/d9/e9/38713d6d67aedef738b815763c25f092e0454dc58e77b1d2a51c9d5b3325/grpcio-1.71.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5b08d03ace7aca7b2fadd4baf291139b4a5f058805a8327bfe9aece7253b6d67", size = 6012019 }, + { url = "https://files.pythonhosted.org/packages/80/da/4813cd7adbae6467724fa46c952d7aeac5e82e550b1c62ed2aeb78d444ae/grpcio-1.71.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f903017db76bf9cc2b2d8bdd37bf04b505bbccad6be8a81e1542206875d0e9db", size = 6637043 }, + { url = "https://files.pythonhosted.org/packages/52/ca/c0d767082e39dccb7985c73ab4cf1d23ce8613387149e9978c70c3bf3b07/grpcio-1.71.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:469f42a0b410883185eab4689060a20488a1a0a00f8bbb3cbc1061197b4c5a79", size = 6186143 }, + { url = "https://files.pythonhosted.org/packages/00/61/7b2c8ec13303f8fe36832c13d91ad4d4ba57204b1c723ada709c346b2271/grpcio-1.71.0-cp312-cp312-win32.whl", hash = "sha256:ad9f30838550695b5eb302add33f21f7301b882937460dd24f24b3cc5a95067a", size = 3604083 }, + { url = "https://files.pythonhosted.org/packages/fd/7c/1e429c5fb26122055d10ff9a1d754790fb067d83c633ff69eddcf8e3614b/grpcio-1.71.0-cp312-cp312-win_amd64.whl", hash = "sha256:652350609332de6dac4ece254e5d7e1ff834e203d6afb769601f286886f6f3a8", size = 4272191 }, + { url = "https://files.pythonhosted.org/packages/04/dd/b00cbb45400d06b26126dcfdbdb34bb6c4f28c3ebbd7aea8228679103ef6/grpcio-1.71.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:cebc1b34ba40a312ab480ccdb396ff3c529377a2fce72c45a741f7215bfe8379", size = 5184138 }, + { url = "https://files.pythonhosted.org/packages/ed/0a/4651215983d590ef53aac40ba0e29dda941a02b097892c44fa3357e706e5/grpcio-1.71.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:85da336e3649a3d2171e82f696b5cad2c6231fdd5bad52616476235681bee5b3", size = 11310747 }, + { url = "https://files.pythonhosted.org/packages/57/a3/149615b247f321e13f60aa512d3509d4215173bdb982c9098d78484de216/grpcio-1.71.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f9a412f55bb6e8f3bb000e020dbc1e709627dcb3a56f6431fa7076b4c1aab0db", size = 5653991 }, + { url = "https://files.pythonhosted.org/packages/ca/56/29432a3e8d951b5e4e520a40cd93bebaa824a14033ea8e65b0ece1da6167/grpcio-1.71.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47be9584729534660416f6d2a3108aaeac1122f6b5bdbf9fd823e11fe6fbaa29", size = 6312781 }, + { url = "https://files.pythonhosted.org/packages/a3/f8/286e81a62964ceb6ac10b10925261d4871a762d2a763fbf354115f9afc98/grpcio-1.71.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c9c80ac6091c916db81131d50926a93ab162a7e97e4428ffc186b6e80d6dda4", size = 5910479 }, + { url = "https://files.pythonhosted.org/packages/35/67/d1febb49ec0f599b9e6d4d0d44c2d4afdbed9c3e80deb7587ec788fcf252/grpcio-1.71.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:789d5e2a3a15419374b7b45cd680b1e83bbc1e52b9086e49308e2c0b5bbae6e3", size = 6013262 }, + { url = "https://files.pythonhosted.org/packages/a1/04/f9ceda11755f0104a075ad7163fc0d96e2e3a9fe25ef38adfc74c5790daf/grpcio-1.71.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:1be857615e26a86d7363e8a163fade914595c81fec962b3d514a4b1e8760467b", size = 6643356 }, + { url = "https://files.pythonhosted.org/packages/fb/ce/236dbc3dc77cf9a9242adcf1f62538734ad64727fabf39e1346ad4bd5c75/grpcio-1.71.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:a76d39b5fafd79ed604c4be0a869ec3581a172a707e2a8d7a4858cb05a5a7637", size = 6186564 }, + { url = "https://files.pythonhosted.org/packages/10/fd/b3348fce9dd4280e221f513dd54024e765b21c348bc475516672da4218e9/grpcio-1.71.0-cp313-cp313-win32.whl", hash = "sha256:74258dce215cb1995083daa17b379a1a5a87d275387b7ffe137f1d5131e2cfbb", size = 3601890 }, + { url = "https://files.pythonhosted.org/packages/be/f8/db5d5f3fc7e296166286c2a397836b8b042f7ad1e11028d82b061701f0f7/grpcio-1.71.0-cp313-cp313-win_amd64.whl", hash = "sha256:22c3bc8d488c039a199f7a003a38cb7635db6656fa96437a8accde8322ce2366", size = 4273308 }, +] + +[[package]] +name = "grpcio-tools" +version = "1.71.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "grpcio" }, + { name = "protobuf" }, + { name = "setuptools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/d2/c0866a48c355a6a4daa1f7e27e210c7fa561b1f3b7c0bce2671e89cfa31e/grpcio_tools-1.71.0.tar.gz", hash = "sha256:38dba8e0d5e0fb23a034e09644fdc6ed862be2371887eee54901999e8f6792a8", size = 5326008 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/e4/156956b92ad0298290c3d68e6670bc5a6fbefcccfe1ec3997480605e7135/grpcio_tools-1.71.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:61c0409d5bdac57a7bd0ce0ab01c1c916728fe4c8a03d77a25135ad481eb505c", size = 2385480 }, + { url = "https://files.pythonhosted.org/packages/c1/08/9930eb4bb38c5214041c9f24f8b35e9864a7938282db986836546c782d52/grpcio_tools-1.71.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:28784f39921d061d2164a9dcda5164a69d07bf29f91f0ea50b505958292312c9", size = 5951891 }, + { url = "https://files.pythonhosted.org/packages/73/65/931f29ec9c33719d48e1e30446ecce6f5d2cd4e4934fa73fbe07de41c43b/grpcio_tools-1.71.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:192808cf553cedca73f0479cc61d5684ad61f24db7a5f3c4dfe1500342425866", size = 2351967 }, + { url = "https://files.pythonhosted.org/packages/b8/26/2ec8748534406214f20a4809c36efcfa88d1a26246e8312102e3ef8c295d/grpcio_tools-1.71.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:989ee9da61098230d3d4c8f8f8e27c2de796f1ff21b1c90110e636d9acd9432b", size = 2745003 }, + { url = "https://files.pythonhosted.org/packages/f1/33/87b4610c86a4e10ee446b543a4d536f94ab04f828bab841f0bc1a083de72/grpcio_tools-1.71.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:541a756276c8a55dec991f6c0106ae20c8c8f5ce8d0bdbfcb01e2338d1a8192b", size = 2476455 }, + { url = "https://files.pythonhosted.org/packages/00/7c/f7f0cc36a43be9d45b3ce2a55245f3c7d063a24b7930dd719929e58871a4/grpcio_tools-1.71.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:870c0097700d13c403e5517cb7750ab5b4a791ce3e71791c411a38c5468b64bd", size = 2854333 }, + { url = "https://files.pythonhosted.org/packages/07/c4/34b9ea62b173c13fa7accba5f219355b320c05c80c79c3ba70fe52f47b2f/grpcio_tools-1.71.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:abd57f615e88bf93c3c6fd31f923106e3beb12f8cd2df95b0d256fa07a7a0a57", size = 3304297 }, + { url = "https://files.pythonhosted.org/packages/5c/ef/9d3449db8a07688dc3de7dcbd2a07048a128610b1a491c5c0cb3e90a00c5/grpcio_tools-1.71.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:753270e2d06d37e6d7af8967d1d059ec635ad215882041a36294f4e2fd502b2e", size = 2916212 }, + { url = "https://files.pythonhosted.org/packages/2e/c6/990e8194c934dfe7cf89ef307c319fa4f2bc0b78aeca707addbfa1e502f1/grpcio_tools-1.71.0-cp312-cp312-win32.whl", hash = "sha256:0e647794bd7138b8c215e86277a9711a95cf6a03ff6f9e555d54fdf7378b9f9d", size = 948849 }, + { url = "https://files.pythonhosted.org/packages/42/95/3c36d3205e6bd19853cc2420e44b6ef302eb4cfcf56498973c7e85f6c03b/grpcio_tools-1.71.0-cp312-cp312-win_amd64.whl", hash = "sha256:48debc879570972d28bfe98e4970eff25bb26da3f383e0e49829b2d2cd35ad87", size = 1120294 }, + { url = "https://files.pythonhosted.org/packages/84/a7/70dc7e9957bcbaccd4dcb6cc11215e0b918f546d55599221522fe0d073e0/grpcio_tools-1.71.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:9a78d07d6c301a25ef5ede962920a522556a1dfee1ccc05795994ceb867f766c", size = 2384758 }, + { url = "https://files.pythonhosted.org/packages/65/79/57320b28d0a0c5ec94095fd571a65292f8ed7e1c47e59ae4021e8a48d49b/grpcio_tools-1.71.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:580ac88141c9815557e63c9c04f5b1cdb19b4db8d0cb792b573354bde1ee8b12", size = 5951661 }, + { url = "https://files.pythonhosted.org/packages/80/3d/343df5ed7c5dd66fc7a19e4ef3e97ccc4f5d802122b04cd6492f0dcd79f5/grpcio_tools-1.71.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f7c678e68ece0ae908ecae1c4314a0c2c7f83e26e281738b9609860cc2c82d96", size = 2351571 }, + { url = "https://files.pythonhosted.org/packages/56/2f/b9736e8c84e880c4237f5b880c6c799b4977c5cde190999bc7ab4b2ec445/grpcio_tools-1.71.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56ecd6cc89b5e5eed1de5eb9cafce86c9c9043ee3840888cc464d16200290b53", size = 2744580 }, + { url = "https://files.pythonhosted.org/packages/76/9b/bdb384967353da7bf64bac4232f4cf8ae43f19d0f2f640978d4d4197e667/grpcio_tools-1.71.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e52a041afc20ab2431d756b6295d727bd7adee813b21b06a3483f4a7a15ea15f", size = 2475978 }, + { url = "https://files.pythonhosted.org/packages/26/71/1411487fd7862d347b98fda5e3beef611a71b2ac2faac62a965d9e2536b3/grpcio_tools-1.71.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:2a1712f12102b60c8d92779b89d0504e0d6f3a59f2b933e5622b8583f5c02992", size = 2853314 }, + { url = "https://files.pythonhosted.org/packages/03/06/59d0523eb1ba2f64edc72cb150152fa1b2e77061cae3ef3ecd3ef2a87f51/grpcio_tools-1.71.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:41878cb7a75477e62fdd45e7e9155b3af1b7a5332844021e2511deaf99ac9e6c", size = 3303981 }, + { url = "https://files.pythonhosted.org/packages/c2/71/fb9fb49f2b738ec1dfbbc8cdce0b26e5f9c5fc0edef72e453580620d6a36/grpcio_tools-1.71.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:682e958b476049ccc14c71bedf3f979bced01f6e0c04852efc5887841a32ad6b", size = 2915876 }, + { url = "https://files.pythonhosted.org/packages/bd/0f/0d49f6fe6fa2d09e9820dd9eeb30437e86002303076be2b6ada0fb52b8f2/grpcio_tools-1.71.0-cp313-cp313-win32.whl", hash = "sha256:0ccfb837152b7b858b9f26bb110b3ae8c46675d56130f6c2f03605c4f129be13", size = 948245 }, + { url = "https://files.pythonhosted.org/packages/bb/14/ab131a39187bfea950280b2277a82d2033469fe8c86f73b10b19f53cc5ca/grpcio_tools-1.71.0-cp313-cp313-win_amd64.whl", hash = "sha256:ffff9bc5eacb34dd26b487194f7d44a3e64e752fc2cf049d798021bf25053b87", size = 1119649 }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, +] + +[[package]] +name = "packaging" +version = "24.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, +] + +[[package]] +name = "protobuf" +version = "5.29.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/17/7d/b9dca7365f0e2c4fa7c193ff795427cfa6290147e5185ab11ece280a18e7/protobuf-5.29.4.tar.gz", hash = "sha256:4f1dfcd7997b31ef8f53ec82781ff434a28bf71d9102ddde14d076adcfc78c99", size = 424902 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/b2/043a1a1a20edd134563699b0e91862726a0dc9146c090743b6c44d798e75/protobuf-5.29.4-cp310-abi3-win32.whl", hash = "sha256:13eb236f8eb9ec34e63fc8b1d6efd2777d062fa6aaa68268fb67cf77f6839ad7", size = 422709 }, + { url = "https://files.pythonhosted.org/packages/79/fc/2474b59570daa818de6124c0a15741ee3e5d6302e9d6ce0bdfd12e98119f/protobuf-5.29.4-cp310-abi3-win_amd64.whl", hash = "sha256:bcefcdf3976233f8a502d265eb65ea740c989bacc6c30a58290ed0e519eb4b8d", size = 434506 }, + { url = "https://files.pythonhosted.org/packages/46/de/7c126bbb06aa0f8a7b38aaf8bd746c514d70e6a2a3f6dd460b3b7aad7aae/protobuf-5.29.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:307ecba1d852ec237e9ba668e087326a67564ef83e45a0189a772ede9e854dd0", size = 417826 }, + { url = "https://files.pythonhosted.org/packages/a2/b5/bade14ae31ba871a139aa45e7a8183d869efe87c34a4850c87b936963261/protobuf-5.29.4-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:aec4962f9ea93c431d5714ed1be1c93f13e1a8618e70035ba2b0564d9e633f2e", size = 319574 }, + { url = "https://files.pythonhosted.org/packages/46/88/b01ed2291aae68b708f7d334288ad5fb3e7aa769a9c309c91a0d55cb91b0/protobuf-5.29.4-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:d7d3f7d1d5a66ed4942d4fefb12ac4b14a29028b209d4bfb25c68ae172059922", size = 319672 }, + { url = "https://files.pythonhosted.org/packages/12/fb/a586e0c973c95502e054ac5f81f88394f24ccc7982dac19c515acd9e2c93/protobuf-5.29.4-py3-none-any.whl", hash = "sha256:3fde11b505e1597f71b875ef2fc52062b6a9740e5f7c8997ce878b6009145862", size = 172551 }, +] + +[[package]] +name = "psutil" +version = "5.9.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/0f/96b7309212a926c1448366e9ce69b081ea79d63265bde33f11cc9cfc2c07/psutil-5.9.5.tar.gz", hash = "sha256:5410638e4df39c54d957fc51ce03048acd8e6d60abc0f5107af51e5fb566eb3c", size = 493489 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/76/c0195c3443a725c24b3a479f57636dec89efe53d19d435d1752c5188f7de/psutil-5.9.5-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3c6f686f4225553615612f6d9bc21f1c0e305f75d7d8454f9b46e901778e7217", size = 245316 }, + { url = "https://files.pythonhosted.org/packages/e5/2e/56db2b45508ad484b3f22888b3e1adaaf09b8766eaa058ed0e4486c1abae/psutil-5.9.5-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a7dd9997128a0d928ed4fb2c2d57e5102bb6089027939f3b722f3a210f9a8da", size = 279398 }, + { url = "https://files.pythonhosted.org/packages/af/4d/389441079ecef400e2551a3933224885a7bde6b8a4810091d628cdd75afe/psutil-5.9.5-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89518112647f1276b03ca97b65cc7f64ca587b1eb0278383017c2a0dcc26cbe4", size = 282082 }, + { url = "https://files.pythonhosted.org/packages/fa/e0/e91277b1cabf5c3f2995c22314553f1be68b17444260101f365c5a5b6ba1/psutil-5.9.5-cp36-abi3-win32.whl", hash = "sha256:104a5cc0e31baa2bcf67900be36acde157756b9c44017b86b2c049f11957887d", size = 249834 }, + { url = "https://files.pythonhosted.org/packages/86/f3/23e4e4e7ec7855d506ed928756b04735c246b14d9f778ed7ffaae18d8043/psutil-5.9.5-cp36-abi3-win_amd64.whl", hash = "sha256:b258c0c1c9d145a1d5ceffab1134441c4c5113b2417fafff7315a917a026c3c9", size = 255148 }, + { url = "https://files.pythonhosted.org/packages/ed/98/2624954f83489ab13fde2b544baa337d5578c07eee304d320d9ba56e1b1f/psutil-5.9.5-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:c607bb3b57dc779d55e1554846352b4e358c10fff3abf3514a7a6601beebdb30", size = 246094 }, +] + +[[package]] +name = "py" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/ff/fec109ceb715d2a6b4c4a85a61af3b40c723a961e8828319fbcb15b868dc/py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", size = 207796 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378", size = 98708 }, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 }, + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, +] + +[[package]] +name = "requests" +version = "2.32.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, +] + +[[package]] +name = "retry" +version = "0.9.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "decorator" }, + { name = "py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/72/75d0b85443fbc8d9f38d08d2b1b67cc184ce35280e4a3813cda2f445f3a4/retry-0.9.2.tar.gz", hash = "sha256:f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4", size = 6448 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/0d/53aea75710af4528a25ed6837d71d117602b01946b307a3912cb3cfcbcba/retry-0.9.2-py2.py3-none-any.whl", hash = "sha256:ccddf89761fa2c726ab29391837d4327f819ea14d244c232a1d24c67a2f98606", size = 7986 }, +] + +[[package]] +name = "setuptools" +version = "78.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/5a/0db4da3bc908df06e5efae42b44e75c81dd52716e10192ff36d0c1c8e379/setuptools-78.1.0.tar.gz", hash = "sha256:18fd474d4a82a5f83dac888df697af65afa82dec7323d09c3e37d1f14288da54", size = 1367827 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/21/f43f0a1fa8b06b32812e0975981f4677d28e0f3271601dc88ac5a5b83220/setuptools-78.1.0-py3-none-any.whl", hash = "sha256:3e386e96793c8702ae83d17b853fb93d3e09ef82ec62722e61da5cd22376dcd8", size = 1256108 }, +] + +[[package]] +name = "skywalking-rust-e2e" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "apache-skywalking" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "retry" }, +] + +[package.metadata] +requires-dist = [ + { name = "apache-skywalking", specifier = ">=1.1.0" }, + { name = "pyyaml", specifier = ">=6.0.2" }, + { name = "requests", specifier = ">=2.32.3" }, + { name = "retry", specifier = ">=0.9.2" }, +] + +[[package]] +name = "urllib3" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", size = 307268 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", size = 128369 }, +] + +[[package]] +name = "wrapt" +version = "1.17.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/fc/e91cc220803d7bc4db93fb02facd8461c37364151b8494762cc88b0fbcef/wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3", size = 55531 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a1/bd/ab55f849fd1f9a58ed7ea47f5559ff09741b25f00c191231f9f059c83949/wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925", size = 53799 }, + { url = "https://files.pythonhosted.org/packages/53/18/75ddc64c3f63988f5a1d7e10fb204ffe5762bc663f8023f18ecaf31a332e/wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392", size = 38821 }, + { url = "https://files.pythonhosted.org/packages/48/2a/97928387d6ed1c1ebbfd4efc4133a0633546bec8481a2dd5ec961313a1c7/wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40", size = 38919 }, + { url = "https://files.pythonhosted.org/packages/73/54/3bfe5a1febbbccb7a2f77de47b989c0b85ed3a6a41614b104204a788c20e/wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d", size = 88721 }, + { url = "https://files.pythonhosted.org/packages/25/cb/7262bc1b0300b4b64af50c2720ef958c2c1917525238d661c3e9a2b71b7b/wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b", size = 80899 }, + { url = "https://files.pythonhosted.org/packages/2a/5a/04cde32b07a7431d4ed0553a76fdb7a61270e78c5fd5a603e190ac389f14/wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98", size = 89222 }, + { url = "https://files.pythonhosted.org/packages/09/28/2e45a4f4771fcfb109e244d5dbe54259e970362a311b67a965555ba65026/wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82", size = 86707 }, + { url = "https://files.pythonhosted.org/packages/c6/d2/dcb56bf5f32fcd4bd9aacc77b50a539abdd5b6536872413fd3f428b21bed/wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae", size = 79685 }, + { url = "https://files.pythonhosted.org/packages/80/4e/eb8b353e36711347893f502ce91c770b0b0929f8f0bed2670a6856e667a9/wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9", size = 87567 }, + { url = "https://files.pythonhosted.org/packages/17/27/4fe749a54e7fae6e7146f1c7d914d28ef599dacd4416566c055564080fe2/wrapt-1.17.2-cp312-cp312-win32.whl", hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9", size = 36672 }, + { url = "https://files.pythonhosted.org/packages/15/06/1dbf478ea45c03e78a6a8c4be4fdc3c3bddea5c8de8a93bc971415e47f0f/wrapt-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991", size = 38865 }, + { url = "https://files.pythonhosted.org/packages/ce/b9/0ffd557a92f3b11d4c5d5e0c5e4ad057bd9eb8586615cdaf901409920b14/wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125", size = 53800 }, + { url = "https://files.pythonhosted.org/packages/c0/ef/8be90a0b7e73c32e550c73cfb2fa09db62234227ece47b0e80a05073b375/wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998", size = 38824 }, + { url = "https://files.pythonhosted.org/packages/36/89/0aae34c10fe524cce30fe5fc433210376bce94cf74d05b0d68344c8ba46e/wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5", size = 38920 }, + { url = "https://files.pythonhosted.org/packages/3b/24/11c4510de906d77e0cfb5197f1b1445d4fec42c9a39ea853d482698ac681/wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8", size = 88690 }, + { url = "https://files.pythonhosted.org/packages/71/d7/cfcf842291267bf455b3e266c0c29dcb675b5540ee8b50ba1699abf3af45/wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6", size = 80861 }, + { url = "https://files.pythonhosted.org/packages/d5/66/5d973e9f3e7370fd686fb47a9af3319418ed925c27d72ce16b791231576d/wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc", size = 89174 }, + { url = "https://files.pythonhosted.org/packages/a7/d3/8e17bb70f6ae25dabc1aaf990f86824e4fd98ee9cadf197054e068500d27/wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2", size = 86721 }, + { url = "https://files.pythonhosted.org/packages/6f/54/f170dfb278fe1c30d0ff864513cff526d624ab8de3254b20abb9cffedc24/wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b", size = 79763 }, + { url = "https://files.pythonhosted.org/packages/4a/98/de07243751f1c4a9b15c76019250210dd3486ce098c3d80d5f729cba029c/wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504", size = 87585 }, + { url = "https://files.pythonhosted.org/packages/f9/f0/13925f4bd6548013038cdeb11ee2cbd4e37c30f8bfd5db9e5a2a370d6e20/wrapt-1.17.2-cp313-cp313-win32.whl", hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a", size = 36676 }, + { url = "https://files.pythonhosted.org/packages/bf/ae/743f16ef8c2e3628df3ddfd652b7d4c555d12c84b53f3d8218498f4ade9b/wrapt-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845", size = 38871 }, + { url = "https://files.pythonhosted.org/packages/3d/bc/30f903f891a82d402ffb5fda27ec1d621cc97cb74c16fea0b6141f1d4e87/wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192", size = 56312 }, + { url = "https://files.pythonhosted.org/packages/8a/04/c97273eb491b5f1c918857cd26f314b74fc9b29224521f5b83f872253725/wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b", size = 40062 }, + { url = "https://files.pythonhosted.org/packages/4e/ca/3b7afa1eae3a9e7fefe499db9b96813f41828b9fdb016ee836c4c379dadb/wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0", size = 40155 }, + { url = "https://files.pythonhosted.org/packages/89/be/7c1baed43290775cb9030c774bc53c860db140397047cc49aedaf0a15477/wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306", size = 113471 }, + { url = "https://files.pythonhosted.org/packages/32/98/4ed894cf012b6d6aae5f5cc974006bdeb92f0241775addad3f8cd6ab71c8/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb", size = 101208 }, + { url = "https://files.pythonhosted.org/packages/ea/fd/0c30f2301ca94e655e5e057012e83284ce8c545df7661a78d8bfca2fac7a/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681", size = 109339 }, + { url = "https://files.pythonhosted.org/packages/75/56/05d000de894c4cfcb84bcd6b1df6214297b8089a7bd324c21a4765e49b14/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6", size = 110232 }, + { url = "https://files.pythonhosted.org/packages/53/f8/c3f6b2cf9b9277fb0813418e1503e68414cd036b3b099c823379c9575e6d/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6", size = 100476 }, + { url = "https://files.pythonhosted.org/packages/a7/b1/0bb11e29aa5139d90b770ebbfa167267b1fc548d2302c30c8f7572851738/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f", size = 106377 }, + { url = "https://files.pythonhosted.org/packages/6a/e1/0122853035b40b3f333bbb25f1939fc1045e21dd518f7f0922b60c156f7c/wrapt-1.17.2-cp313-cp313t-win32.whl", hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555", size = 37986 }, + { url = "https://files.pythonhosted.org/packages/09/5e/1655cf481e079c1f22d0cabdd4e51733679932718dc23bf2db175f329b76/wrapt-1.17.2-cp313-cp313t-win_amd64.whl", hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c", size = 40750 }, + { url = "https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8", size = 23594 }, +]