diff --git a/.github/contributing.md b/.github/contributing.md
deleted file mode 100644
index 43a455053f..0000000000
--- a/.github/contributing.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# Contribution Guidelines
-
-Thank you for considering contributing to **Tailcall**! This document outlines the steps and guidelines to follow when contributing to this project.
-
-## Getting Started
-
-1. **Fork the Repository:** Start by forking the repository to your personal account on GitHub.
-2. **Clone the Forked Repository:** Once you have forked the repository, clone it to your local machine.
- ```bash
- git clone https://github.com/tailcallhq/tailcall.git
- ```
-
-## Setting Up the Development Environment
-
-1. **Install Rust:** If you haven't already, install Rust using [rustup](https://rustup.rs/). Install the `nightly` toolchain as well, as it's used for linting.
-2. **Install Prettier:** Install [Prettier](https://prettier.io/) too as this is also used for linting.
-3. **Build the Application:** Navigate to the project directory and build the application.
-
- ```bash
- cd tailcall
- cargo build
- ```
-
-4. **Start the Server:** To start the server, use the following command:
- ```bash
- cargo run -- start ./examples/jsonplaceholder.graphql
- ```
- Once the server is running, you can access the GraphiQL interface at [http://localhost:8000/graphiql](http://localhost:8000/graphiql).
-
-## Making Changes
-
-1. **Create a New Branch:** Always create a new branch for your changes.
-
- ```bash
- git checkout -b feature/your-feature-name
- ```
-
-2. **Write Clean Code:** Ensure your code is clean, readable, and well-commented.
-3. **Follow Rust Best Practices:** Adhere to the [Rust API Guidelines](https://rust-lang.github.io/api-guidelines/about.html).
-4. **Use Title Case in Job Names:** When adding new CI jobs to `.github/workflows`, please use title case e.g. _Close Stale Issues and PR_.
-
-## Testing
-
-1. **Write Tests:** For every new feature or bugfix, ensure that you write appropriate tests.
- Structure your tests in the following way:
-
- ```rust
- use pretty_assertions::assert_eq;
- fn test_something_important() {
- let value = setup_something_using_a_function();
-
- let actual = perform_some_operation_on_the_value(value);
- let expected = ExpectedValue {foo: 1, bar: 2};
-
- assert_eq!(actual, expected);
- }
- ```
-
- - Setup the value using helper methods in tests.
- - Create an actual and an expected value.
- - Assert the two values in a new line.
- - Ensure there are only one assertions per test.
-
-2. **Run Tests:** Before submitting a pull request, ensure all tests pass.
- ```bash
- cargo test
- ```
-
-## Programming Style Guidelines
-
-- When calling functions that do not need to modify values, pass references of those values.
-- When calling functions that need to modify values, pass ownership of the values, and ensure they are returned from the function.
-
-**IMPORTANT:** This programming style may not be suitable for performance-sensitive components or hot code paths. In such cases, prioritize efficiency and optimization strategies to enhance performance.
-
-## Telemetry
-
-Tailcall implements high observability standards that by following [OpenTelemetry](https://opentelemetry.io) specification. This implementation relies on the following crates:
-
-- [rust-opentelemetry](https://docs.rs/opentelemetry/latest/opentelemetry/index.html) and related crates to implement support for collecting and exporting data
-- [tracing](https://docs.rs/tracing/latest/tracing/index.html) and [tracing-opentelemetry](https://docs.rs/tracing-opentelemetry/latest/tracing_opentelemetry/index.html) to define logs and traces and thanks to integration with opentelemetry that data is automatically transferred to opentelemetry crates. Such a wrapper for telemetry allows to use well-defined library like tracing that works well for different cases and could be used as simple telemetry system for logging without involving opentelemetry if it's not required
-
-When implementing any functionality that requires observability consider the following points:
-
-- Add traces for significant amount of work that represents single operation. This will make it easier to investigate problems and slowdowns later.
-- For naming spans refer to the [opentelemetry specs](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/api.md#span) and make the name as specific as possible but without involving high cardinality for possible values.
-- Due to limitations of tracing libraries span names could only be defined as static strings. This could be solved by specifying an additional field with special name `otel.name` (for details refer `tracing-opentelemetry` docs).
-- The naming of the attributes should follow the opentelemetry's [semantic convention](https://opentelemetry.io/docs/concepts/semantic-conventions/). Existing constants can be obtained with the [opentelemetry_semantic_conventions](https://docs.rs/opentelemetry-semantic-conventions/latest/opentelemetry_semantic_conventions/index.html) crate.
-
-## Benchmarks Comparison
-
-### Criterion Benchmarks
-
-1. **Important:** Make sure all the commits are done.
-2. **Install packages:** Install cargo-criterion rust-script.
- ```bash
- cargo install cargo-criterion rust-script
- ```
-3. **Comparing Benchmarks:**
- You need to follow the following steps to compare benchmarks between `main`(Baseline) and your branch.
-
- ```bash
- git checkout main
- cargo criterion --message-format=json > main.json
- git checkout -
- cargo criterion --message-format=json > feature.json
- ./scripts/criterion_compare.rs base.json main.json table
-
- ```
-
-4. **Check the Results:** If the benchmarks show more than 10% degradation, the script will exit with an error. Please check "benches/benchmark.md" file to identify the benchmarks that failed and investigate the code changes that might have caused the degradation.
-
-## Documentation
-
-1. **Update README:** If your changes necessitate a change in the way users interact with the application, update the README accordingly.
-2. **Inline Documentation:** Add inline documentation to your code where necessary.
-
-## Committing Your Changes
-
-1. **Atomic Commits:** Make sure each commit is atomic (i.e., it does one thing). This makes it easier to review and revert if necessary.
-2. **Commit Message Guidelines:** Write meaningful commit messages. Start with a short summary (50 chars max), followed by a blank line and then a detailed description if needed.
-
-## Submitting a Pull Request
-
-1. **Push to Your Fork:** Push your changes to your fork on GitHub.
-
- ```bash
- git push origin feature/your-feature-name
- ```
-
-2. **Open a Pull Request:** Navigate to the original repository on GitHub and open a pull request against the `main` or `develop` branch.
-3. **Describe Your Changes:** In the pull request description, explain the changes you made, the issues they resolve, and any other relevant information.
-4. **Wait for Review:** Maintainers will review your pull request. Address any comments or feedback they provide.
-
-## Spread the Word
-
-1. **Star the Repository:** If you find this project useful, please give it a star on GitHub. This helps increase its visibility and encourages more people to contribute.
-2. **Tweet About Your Contribution:** Share your contributions and experiences with the wider community on Twitter. Use the hashtag `#TailcallContributor` and tag `@tailcallhq` to let us know!
-
-## Community
-
-1. **Be Respectful:** Please remember that this is an open-source project and the community is welcoming and respectful to all members.
-
-## Final Words
-
-Thank you for contributing! Your efforts help improve the application for everyone.
diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
index 2aba2d2397..d437f9899c 100644
--- a/.github/workflows/benchmark.yml
+++ b/.github/workflows/benchmark.yml
@@ -14,7 +14,7 @@ concurrency:
cancel-in-progress: true
jobs:
- macro_benchmark:
+ macro_benchmarks:
name: Macro Benchmarks
if: "contains(github.event.pull_request.labels.*.name, 'ci: benchmark') || github.event_name == 'push'"
runs-on: benchmarking-runner
@@ -68,68 +68,3 @@ jobs:
with:
name: body
path: ci-benchmark/body.md
-
- Cache_Benchmarks:
- name: Cache Micro Benchmarks result
- if: (github.event_name == 'push' && github.ref == 'refs/heads/main')
- permissions:
- pull-requests: write
- contents: write
- runs-on: benchmarking-runner
- steps:
- - name: Check out code
- uses: actions/checkout@v4
-
- - name: Install Rust
- uses: actions-rust-lang/setup-rust-toolchain@v1
-
- - name: Run Benchmarks
- run: |
- cargo install cargo-criterion rust-script
- cargo criterion --message-format=json > benches/main_benchmarks.json
- ./scripts/json_to_md.rs benches/main_benchmarks.json > benches/main_benchmarks.md
- cat benches/main_benchmarks.md
-
- - name: Cache Criterion Benchmarks Json
- uses: actions/cache@v4
- with:
- path: benches/main_benchmarks.json
- key: criterion_benchmarks_${{ github.sha }}
-
- Criterion_Compare:
- name: Comparing Micro Benchmarks
- if: "contains(github.event.pull_request.labels.*.name, 'ci: benchmark')"
- runs-on: benchmarking-runner
- permissions:
- pull-requests: write
- contents: write
- steps:
- - name: Check out code
- uses: actions/checkout@v4
- with:
- ref: ${{ github.event.pull_request.head.sha }}
-
- - name: Install Rust
- uses: actions-rust-lang/setup-rust-toolchain@v1
-
- - name: Run Criterion Benchmarks
- run: |
- cargo install cargo-criterion rust-script
- cargo criterion --message-format=json > benches/benchmarks.json
- ./scripts/json_to_md.rs benches/benchmarks.json > benches/change_benchmarks.md
-
- - name: Print Criterion Benchmarks
- run: cat benches/change_benchmarks.md
-
- - name: Restore file
- uses: actions/cache@v4
- with:
- path: benches/main_benchmarks.json
- key: criterion_benchmarks_${{ github.event.pull_request.base.sha }}
- fail-on-cache-miss: true
-
- - name: Print Benchmark Comparision
- run: ./scripts/criterion_compare.rs benches/main_benchmarks.json benches/benchmarks.json table
-
- - name: Check Degradation
- run: ./scripts/criterion_compare.rs benches/main_benchmarks.json benches/benchmarks.json check
diff --git a/.github/workflows/comment-commit.yml b/.github/workflows/benchmark_comment.yml
similarity index 85%
rename from .github/workflows/comment-commit.yml
rename to .github/workflows/benchmark_comment.yml
index d8a9ccbd90..e04229e8b0 100644
--- a/.github/workflows/comment-commit.yml
+++ b/.github/workflows/benchmark_comment.yml
@@ -1,4 +1,4 @@
-name: Comment on commit
+name: Benchmark comment on commit
on:
workflow_run:
@@ -7,8 +7,8 @@ on:
- completed
jobs:
- comment:
- name: Comment on commit
+ macro_benchmarks_comment:
+ name: Benchmark comment on commit
runs-on: ubuntu-latest
if: >
github.event.workflow_run.conclusion == 'success'
diff --git a/.github/workflows/benchmark_main.yml b/.github/workflows/benchmark_main.yml
new file mode 100644
index 0000000000..2958bd9e57
--- /dev/null
+++ b/.github/workflows/benchmark_main.yml
@@ -0,0 +1,35 @@
+name: Benchmark main
+
+on:
+ push:
+ paths-ignore: ["docs/**", "**.md"]
+ branches:
+ - main
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ micro_benchmarks:
+ name: Micro Benchmarks
+ runs-on: benchmarking-runner
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v4
+
+ - name: Install Rust
+ uses: actions-rust-lang/setup-rust-toolchain@v1
+
+ - name: Install Bencher CLI
+ uses: bencherdev/bencher@main
+
+ - name: Run Benchmarks
+ run: |
+ bencher run \
+ --project tailcall \
+ --branch main \
+ --testbed benchmarking-runner \
+ --token "${{ secrets.BENCHER_API_TOKEN }}" \
+ --adapter rust_criterion \
+ cargo bench
diff --git a/.github/workflows/benchmark_pr_run.yml b/.github/workflows/benchmark_pr_run.yml
new file mode 100644
index 0000000000..e1653b9baf
--- /dev/null
+++ b/.github/workflows/benchmark_pr_run.yml
@@ -0,0 +1,30 @@
+name: Benchmark PR Run
+
+on:
+ pull_request:
+ paths-ignore: ["docs/**", "**.md"]
+ types: [opened, reopened, edited, synchronize, labeled]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ micro_benchmarks_pr_run:
+ name: Micro Benchmarks for PR
+ if: "contains(github.event.pull_request.labels.*.name, 'ci: benchmark')"
+ runs-on: benchmarking-runner
+ steps:
+ - uses: actions/checkout@v4
+ - name: Run Benchmarks
+ run: cargo bench > benchmark_results.txt
+ - name: Upload Benchmark Results
+ uses: actions/upload-artifact@v4
+ with:
+ name: benchmark_results.txt
+ path: ./benchmark_results.txt
+ - name: Upload GitHub Pull Request Event
+ uses: actions/upload-artifact@v4
+ with:
+ name: event.json
+ path: ${{ github.event_path }}
diff --git a/.github/workflows/benchmark_pr_track.yml b/.github/workflows/benchmark_pr_track.yml
new file mode 100644
index 0000000000..3dbfd9cf30
--- /dev/null
+++ b/.github/workflows/benchmark_pr_track.yml
@@ -0,0 +1,75 @@
+name: Benchmark PR Track
+
+on:
+ workflow_run:
+ workflows: [Benchmark PR Run]
+ types: [completed]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ micro_benchmarks_pr_track:
+ if: github.event.workflow_run.conclusion == 'success'
+ runs-on: ubuntu-latest
+ env:
+ BENCHMARK_RESULTS: benchmark_results.txt
+ PR_EVENT: event.json
+ steps:
+ - name: Download Benchmark Results
+ uses: actions/github-script@v7
+ with:
+ script: |
+ async function downloadArtifact(artifactName) {
+ let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ run_id: context.payload.workflow_run.id,
+ });
+ let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
+ return artifact.name == artifactName
+ })[0];
+ if (!matchArtifact) {
+ core.setFailed(`Failed to find artifact: ${artifactName}`);
+ }
+ let download = await github.rest.actions.downloadArtifact({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ artifact_id: matchArtifact.id,
+ archive_format: 'zip',
+ });
+ let fs = require('fs');
+ fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/${artifactName}.zip`, Buffer.from(download.data));
+ }
+ await downloadArtifact(process.env.BENCHMARK_RESULTS);
+ await downloadArtifact(process.env.PR_EVENT);
+ - name: Unzip Benchmark Results
+ run: |
+ unzip $BENCHMARK_RESULTS.zip
+ unzip $PR_EVENT.zip
+ - name: Export PR Event Data
+ uses: actions/github-script@v7
+ with:
+ script: |
+ let fs = require('fs');
+ let prEvent = JSON.parse(fs.readFileSync(process.env.PR_EVENT, {encoding: 'utf8'}));
+ core.exportVariable("PR_HEAD", `${prEvent.number}/merge`);
+ core.exportVariable("PR_BASE", prEvent.pull_request.base.ref);
+ core.exportVariable("PR_BASE_SHA", prEvent.pull_request.base.sha);
+ core.exportVariable("PR_NUMBER", prEvent.number);
+ - uses: bencherdev/bencher@main
+ - name: Track Benchmarks with Bencher
+ run: |
+ bencher run \
+ --project tailcall \
+ --token '${{ secrets.BENCHER_API_TOKEN }}' \
+ --branch '${{ env.PR_HEAD }}' \
+ --branch-start-point '${{ env.PR_BASE }}' \
+ --branch-start-point-hash '${{ env.PR_BASE_SHA }}' \
+ --testbed benchmarking-runner \
+ --adapter rust_criterion \
+ --err \
+ --github-actions '${{ secrets.GITHUB_TOKEN }}' \
+ --ci-number '${{ env.PR_NUMBER }}' \
+ --file "$BENCHMARK_RESULTS"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d1a9d37fbc..6f8d54bc51 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -39,7 +39,7 @@ jobs:
runs-on: ubuntu-latest
defaults:
run:
- working-directory: ./aws-lambda
+ working-directory: ./tailcall-aws-lambda
steps:
- uses: actions/checkout@v4
@@ -152,6 +152,13 @@ jobs:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@cargo-llvm-cov
+ - name: Install Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: "20.11.0"
+ - name: Install Prettier
+ run: npm i -g prettier
+
- name: Install Stable Toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
@@ -162,7 +169,7 @@ jobs:
- name: Upload Coverage to Codecov
if: matrix.build == 'darwin-arm64'
- uses: Wandalen/wretry.action@v2
+ uses: Wandalen/wretry.action@v3
with:
action: codecov/codecov-action@v4
attempt_limit: 3
@@ -424,18 +431,18 @@ jobs:
env:
APP_VERSION: ${{ needs.draft_release.outputs.create_release_name }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- run: cargo lambda build -p aws-lambda --release
+ run: cargo lambda build -p tailcall-aws-lambda --release
- name: Rename Binary with Target Name
run: |
pwd
- cp target/lambda/aws-lambda/bootstrap target/lambda/aws-lambda/tailcall-aws-lambda-bootstrap
+ cp target/lambda/tailcall-aws-lambda/bootstrap target/lambda/tailcall-aws-lambda/tailcall-aws-lambda-bootstrap
- name: Upload AWS Lambda Bootstrap Binary
uses: xresloader/upload-to-github-release@v1
with:
release_id: ${{ needs.draft_release.outputs.create_release_id }}
- file: target/lambda/aws-lambda/tailcall-aws-lambda-bootstrap
+ file: target/lambda/tailcall-aws-lambda/tailcall-aws-lambda-bootstrap
overwrite: true
semantic_release:
name: Semantic Release
diff --git a/.gitignore b/.gitignore
index 844b6e75dc..c41741bc32 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,4 +20,4 @@ cloudflare/pkg
.wrangler/
-/tests/snapshots/*.new
+*.snap.new
diff --git a/BOUNTY.md b/BOUNTY.md
deleted file mode 100644
index 5ed54e423a..0000000000
--- a/BOUNTY.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# 🚀 Bounty Program Contribution Guide 🚀
-
-[![Open Bounties](https://img.shields.io/endpoint?url=https%3A%2F%2Fconsole.algora.io%2Fapi%2Fshields%2Ftailcallhq%2Fbounties%3Fstatus%3Dopen&style=for-the-badge)](https://console.algora.io/org/tailcallhq/bounties?status=open)
-[![Rewarded Bounties](https://img.shields.io/endpoint?url=https%3A%2F%2Fconsole.algora.io%2Fapi%2Fshields%2Ftailcallhq%2Fbounties%3Fstatus%3Dcompleted&style=for-the-badge)](https://console.algora.io/org/tailcallhq/bounties?status=completed)
-
-
-
-
-
-Hey there! Super pumped you’re considering joining our Bounty Program. This is where you can really show off your skills and get rewarded for it. Here’s all you need to know to jump in and make waves. 🌊
-
-## Our Philosophy 🌟
-
-We’re all about meritocracy here. That means the best ideas and implementations win! We love seeing your quality work and fast moves. And yes, we definitely notice when you go the extra mile. 🏆
-
-## Quick & Quality 🏃♂️💨
-
-- **Speedy Gonzalez:** We like things fast! Quick feedback, quick updates. The faster, the better!
-- **A+ Quality:** But hey, don’t rush it if it means cutting corners. We want your best – make it shine! ✨
-
-## Teamwork Makes the Dream Work 🤝
-
-- **Join Us on Discord:** Our Discord server is THE place to collaborate, get tips, and find your next bestie. Let’s make magic together.
-- **Share the Love:** Inspired by someone’s PR? Working together? Feel free to split that bounty – sharing is caring! 💖
-
-## How to Dive In 🏊♀️
-
-1. **Pick a Challenge:** Use `/attempt` in the comments to call dibs on an issue. It’s like saying “I got this!”
-2. **Show Your Work:** Got an issue? Great! Now, whip up a draft PR within 24 hours to show you’re on it.
-3. **Go for Gold:** Once you’re ready, switch that draft to Ready for Review. Make sure it’s polished and gleaming!
-4. **Extra Mile Alert:** We’ve got bonuses for those who add that ✨special touch✨. Clean up, optimize, or fix something extra? We’re here for it!
-
-## The Rules of the Game 📜
-
-- **Be Quick or Be… Late:** No PR within 24 hours? Then it’s open season for that issue again.
-- **There Can Only Be One:** Multiple folks can try, but only the top PR wins. If it’s a tie, the early bird gets the worm.
-- **No Copycats:** Be original, be you. Don’t just copy someone else’s hard work.
-- **Look Before You Leap:** If there’s already a PR in progress, maybe check out another issue instead.
-
-## Wrapping Up 🎁
-
-We’re stoked to have you! This program is your chance to shine and get rewarded while at it. Stick to these friendly guidelines, and let’s make something awesome together. We look forward to seeing what you bring to the table.
diff --git a/Cargo.lock b/Cargo.lock
index ec8f3c3ab8..a8187b1dd3 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -58,18 +58,18 @@ dependencies = [
[[package]]
name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
dependencies = [
"memchr",
]
[[package]]
name = "allocator-api2"
-version = "0.2.16"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
[[package]]
name = "android-tzdata"
@@ -200,28 +200,27 @@ dependencies = [
[[package]]
name = "async-channel"
-version = "2.2.0"
+version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928"
dependencies = [
"concurrent-queue",
- "event-listener 5.2.0",
- "event-listener-strategy 0.5.0",
+ "event-listener 5.3.0",
+ "event-listener-strategy 0.5.1",
"futures-core",
"pin-project-lite",
]
[[package]]
name = "async-executor"
-version = "1.8.0"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
+checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a"
dependencies = [
- "async-lock 3.3.0",
"async-task",
"concurrent-queue",
- "fastrand 2.0.1",
- "futures-lite 2.2.0",
+ "fastrand 2.0.2",
+ "futures-lite 2.3.0",
"slab",
]
@@ -231,12 +230,12 @@ version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
dependencies = [
- "async-channel 2.2.0",
+ "async-channel 2.2.1",
"async-executor",
"async-io 2.3.2",
"async-lock 3.3.0",
"blocking",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
"once_cell",
"tokio",
]
@@ -262,7 +261,7 @@ dependencies = [
"futures-util",
"handlebars",
"http 1.1.0",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
"lru 0.7.8",
"mime",
"multer",
@@ -292,7 +291,7 @@ dependencies = [
"proc-macro2",
"quote",
"strum 0.26.2",
- "syn 2.0.52",
+ "syn 2.0.60",
"thiserror",
]
@@ -321,7 +320,7 @@ dependencies = [
"serde_json",
"sha2 0.10.8",
"tokio",
- "tonic-build 0.10.2",
+ "tonic-build",
"tracing",
"uname",
"uuid",
@@ -347,7 +346,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68e40849c29a39012d38bff87bfed431f1ed6c53fbec493294c1045d61a7ae75"
dependencies = [
"bytes",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
"serde",
"serde_json",
]
@@ -382,10 +381,10 @@ dependencies = [
"cfg-if",
"concurrent-queue",
"futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
"parking",
- "polling 3.5.0",
- "rustix 0.38.31",
+ "polling 3.6.0",
+ "rustix 0.38.32",
"slab",
"tracing",
"windows-sys 0.52.0",
@@ -433,7 +432,7 @@ dependencies = [
"cfg-if",
"event-listener 3.1.0",
"futures-lite 1.13.0",
- "rustix 0.38.31",
+ "rustix 0.38.32",
"windows-sys 0.48.0",
]
@@ -445,7 +444,7 @@ checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -460,7 +459,7 @@ dependencies = [
"cfg-if",
"futures-core",
"futures-io",
- "rustix 0.38.31",
+ "rustix 0.38.32",
"signal-hook-registry",
"slab",
"windows-sys 0.48.0",
@@ -513,7 +512,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -524,13 +523,13 @@ checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
[[package]]
name = "async-trait"
-version = "0.1.79"
+version = "0.1.80"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -541,40 +540,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
[[package]]
name = "autocfg"
-version = "1.1.0"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "autogen"
-version = "0.1.0"
-dependencies = [
- "anyhow",
- "lazy_static",
- "schemars",
- "serde",
- "serde_json",
- "tailcall",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "aws-lambda"
-version = "0.1.0"
-dependencies = [
- "anyhow",
- "async-trait",
- "dotenvy",
- "hyper 0.14.28",
- "lambda_http",
- "lambda_runtime",
- "reqwest",
- "tailcall",
- "tokio",
- "tracing",
- "tracing-subscriber",
-]
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
[[package]]
name = "aws_lambda_events"
@@ -586,7 +554,7 @@ dependencies = [
"bytes",
"http 1.1.0",
"http-body 1.0.0",
- "http-serde 2.0.0",
+ "http-serde 2.1.0",
"query_map",
"serde",
"serde_json",
@@ -639,9 +607,9 @@ dependencies = [
[[package]]
name = "backtrace"
-version = "0.3.69"
+version = "0.3.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
dependencies = [
"addr2line",
"cc",
@@ -735,9 +703,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
[[package]]
name = "bitvec"
@@ -775,12 +743,12 @@ version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
dependencies = [
- "async-channel 2.2.0",
+ "async-channel 2.2.1",
"async-lock 3.3.0",
"async-task",
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
"futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
"piper",
"tracing",
]
@@ -808,15 +776,9 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.15.4"
+version = "3.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
-
-[[package]]
-name = "bytecount"
-version = "0.6.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
name = "byteorder"
@@ -826,9 +788,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
-version = "1.5.0"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
dependencies = [
"serde",
]
@@ -839,37 +801,6 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bf2a5fb3207c12b5d208ebc145f967fea5cac41a021c37417ccc31ba40f39ee"
-[[package]]
-name = "camino"
-version = "1.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cargo-platform"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cargo_metadata"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
-dependencies = [
- "camino",
- "cargo-platform",
- "semver 1.0.22",
- "serde",
- "serde_json",
-]
-
[[package]]
name = "cast"
version = "0.3.0"
@@ -878,9 +809,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "cc"
-version = "1.0.90"
+version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7"
[[package]]
name = "cesu8"
@@ -896,16 +827,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
-version = "0.4.37"
+version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
dependencies = [
"android-tzdata",
"iana-time-zone",
"js-sys",
"num-traits",
"wasm-bindgen",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
]
[[package]]
@@ -973,7 +904,7 @@ dependencies = [
"anstream",
"anstyle",
"clap_lex",
- "strsim 0.11.0",
+ "strsim 0.11.1",
]
[[package]]
@@ -985,7 +916,7 @@ dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -1012,9 +943,9 @@ dependencies = [
[[package]]
name = "combine"
-version = "4.6.6"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
dependencies = [
"bytes",
"memchr",
@@ -1275,7 +1206,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim 0.10.0",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -1297,7 +1228,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
dependencies = [
"darling_core 0.20.8",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -1306,6 +1237,19 @@ version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca"
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown 0.14.3",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
[[package]]
name = "data-encoding"
version = "2.5.0"
@@ -1324,9 +1268,9 @@ dependencies = [
[[package]]
name = "deno_core"
-version = "0.273.0"
+version = "0.277.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda4446ea37f4ff797badf17dc74f6f2cc2e464d26e5fa9ecf4a4d60ee111602"
+checksum = "3c562e5660bfaebd9565e938402c55f482faab0c4bd7a784817d9696a9c9cdf0"
dependencies = [
"anyhow",
"bincode",
@@ -1354,16 +1298,16 @@ dependencies = [
[[package]]
name = "deno_ops"
-version = "0.149.0"
+version = "0.153.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a43dda1a058478db57d064b26490fa30c2ff01d35a9d02c84fc85d1839b093c2"
+checksum = "ad83b1a23861e77c36c2e7d0158a24d613c8a2303b423d0a2c21b27bc199821c"
dependencies = [
"proc-macro-rules",
"proc-macro2",
"quote",
"strum 0.25.0",
"strum_macros 0.25.3",
- "syn 2.0.52",
+ "syn 2.0.60",
"thiserror",
]
@@ -1425,7 +1369,7 @@ dependencies = [
"darling 0.20.8",
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -1509,9 +1453,9 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
[[package]]
name = "either"
-version = "1.10.0"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
[[package]]
name = "ena"
@@ -1530,9 +1474,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
[[package]]
name = "encoding_rs"
-version = "0.8.33"
+version = "0.8.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
dependencies = [
"cfg-if",
]
@@ -1553,15 +1497,6 @@ dependencies = [
"windows-sys 0.52.0",
]
-[[package]]
-name = "error-chain"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
-dependencies = [
- "version_check",
-]
-
[[package]]
name = "event-listener"
version = "2.5.3"
@@ -1592,9 +1527,9 @@ dependencies = [
[[package]]
name = "event-listener"
-version = "5.2.0"
+version = "5.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
+checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24"
dependencies = [
"concurrent-queue",
"parking",
@@ -1613,11 +1548,11 @@ dependencies = [
[[package]]
name = "event-listener-strategy"
-version = "0.5.0"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3"
dependencies = [
- "event-listener 5.2.0",
+ "event-listener 5.3.0",
"pin-project-lite",
]
@@ -1657,9 +1592,9 @@ dependencies = [
[[package]]
name = "fastrand"
-version = "2.0.1"
+version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
[[package]]
name = "fixedbitset"
@@ -1763,11 +1698,11 @@ dependencies = [
[[package]]
name = "futures-lite"
-version = "2.2.0"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
dependencies = [
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
"futures-core",
"futures-io",
"parking",
@@ -1793,7 +1728,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -2078,7 +2013,7 @@ dependencies = [
"futures-sink",
"futures-util",
"http 0.2.12",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
"slab",
"tokio",
"tokio-util",
@@ -2087,9 +2022,9 @@ dependencies = [
[[package]]
name = "half"
-version = "2.4.0"
+version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
dependencies = [
"cfg-if",
"crunchy",
@@ -2324,9 +2259,9 @@ dependencies = [
[[package]]
name = "http-serde"
-version = "2.0.0"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fb7239a6d49eda628c2dfdd7e982c59b0c3f0fb99ce45c4237f02a520030688"
+checksum = "1133cafcce27ea69d35e56b3a8772e265633e04de73c5f4e1afdffc1d19b5419"
dependencies = [
"http 1.1.0",
"serde",
@@ -2439,7 +2374,7 @@ dependencies = [
"http 0.2.12",
"hyper 0.14.28",
"log",
- "rustls 0.22.2",
+ "rustls 0.22.3",
"rustls-native-certs",
"rustls-pki-types",
"tokio",
@@ -2541,9 +2476,9 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "2.2.5"
+version = "2.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
dependencies = [
"equivalent",
"hashbrown 0.14.3",
@@ -2565,7 +2500,7 @@ version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe95f33091b9b7b517a5849bce4dce1b550b430fc20d58059fcaa319ed895d8b"
dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
"crossterm",
"dyn-clone",
"fuzzy-matcher",
@@ -2644,11 +2579,20 @@ dependencies = [
"either",
]
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
[[package]]
name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]]
name = "jni"
@@ -2719,7 +2663,7 @@ dependencies = [
"petgraph",
"pico-args",
"regex",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
"string_cache",
"term",
"tiny-keccak",
@@ -2776,7 +2720,7 @@ dependencies = [
"http 1.1.0",
"http-body 1.0.0",
"http-body-util",
- "http-serde 2.0.0",
+ "http-serde 2.1.0",
"hyper 1.2.0",
"hyper-util",
"lambda_runtime_api_client",
@@ -2876,13 +2820,12 @@ dependencies = [
[[package]]
name = "libredox"
-version = "0.0.1"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
"libc",
- "redox_syscall",
]
[[package]]
@@ -2951,7 +2894,7 @@ dependencies = [
"proc-macro2",
"quote",
"regex-syntax 0.6.29",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -2965,8 +2908,8 @@ dependencies = [
"lazy_static",
"proc-macro2",
"quote",
- "regex-syntax 0.8.2",
- "syn 2.0.52",
+ "regex-syntax 0.8.3",
+ "syn 2.0.60",
]
[[package]]
@@ -3076,15 +3019,15 @@ dependencies = [
[[package]]
name = "memchr"
-version = "2.7.1"
+version = "2.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
[[package]]
name = "memoffset"
-version = "0.9.0"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
dependencies = [
"autocfg",
]
@@ -3109,7 +3052,7 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -3166,21 +3109,21 @@ dependencies = [
[[package]]
name = "moka"
-version = "0.12.5"
+version = "0.12.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1911e88d5831f748a4097a43862d129e3c6fca831eecac9b8db6d01d93c9de2"
+checksum = "9e0d88686dc561d743b40de8269b26eaf0dc58781bde087b0984646602021d08"
dependencies = [
- "async-lock 2.8.0",
+ "async-lock 3.3.0",
"async-trait",
"crossbeam-channel",
"crossbeam-epoch",
"crossbeam-utils",
+ "event-listener 5.3.0",
"futures-util",
"once_cell",
"parking_lot",
"quanta",
"rustc_version 0.4.0",
- "skeptic",
"smallvec",
"tagptr",
"thiserror",
@@ -3208,9 +3151,9 @@ dependencies = [
[[package]]
name = "multimap"
-version = "0.8.3"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
+checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03"
[[package]]
name = "ndk-context"
@@ -3220,9 +3163,9 @@ checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
[[package]]
name = "new_debug_unreachable"
-version = "1.0.4"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
[[package]]
name = "newline-converter"
@@ -3387,7 +3330,7 @@ checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a"
dependencies = [
"futures-core",
"futures-sink",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
"js-sys",
"once_cell",
"pin-project-lite",
@@ -3608,11 +3551,11 @@ dependencies = [
[[package]]
name = "pem"
-version = "3.0.3"
+version = "3.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
dependencies = [
- "base64 0.21.7",
+ "base64 0.22.0",
"serde",
]
@@ -3624,9 +3567,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pest"
-version = "2.7.8"
+version = "2.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8"
+checksum = "311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95"
dependencies = [
"memchr",
"thiserror",
@@ -3635,9 +3578,9 @@ dependencies = [
[[package]]
name = "pest_derive"
-version = "2.7.8"
+version = "2.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026"
+checksum = "f73541b156d32197eecda1a4014d7f868fd2bcb3c550d5386087cfba442bf69c"
dependencies = [
"pest",
"pest_generator",
@@ -3645,22 +3588,22 @@ dependencies = [
[[package]]
name = "pest_generator"
-version = "2.7.8"
+version = "2.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80"
+checksum = "c35eeed0a3fab112f75165fdc026b3913f4183133f19b49be773ac9ea966e8bd"
dependencies = [
"pest",
"pest_meta",
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
name = "pest_meta"
-version = "2.7.8"
+version = "2.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293"
+checksum = "2adbf29bb9776f28caece835398781ab24435585fe0d4dc1374a61db5accedca"
dependencies = [
"once_cell",
"pest",
@@ -3674,7 +3617,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
dependencies = [
"fixedbitset",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
]
[[package]]
@@ -3688,14 +3631,14 @@ dependencies = [
[[package]]
name = "phonenumber"
-version = "0.3.3+8.13.9"
+version = "0.3.4+8.13.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "635f3e6288e4f01c049d89332a031bd74f25d64b6fb94703ca966e819488cd06"
+checksum = "8d888d375f2963bf06c5079665fbe53db69860879ff5a78524fe3c93c54fb7b8"
dependencies = [
"bincode",
"either",
"fnv",
- "itertools 0.11.0",
+ "itertools 0.12.1",
"lazy_static",
"nom",
"quick-xml",
@@ -3703,7 +3646,7 @@ dependencies = [
"regex-cache",
"serde",
"serde_derive",
- "strum 0.24.1",
+ "strum 0.25.0",
"thiserror",
]
@@ -3730,14 +3673,14 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
[[package]]
name = "pin-utils"
@@ -3752,7 +3695,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
dependencies = [
"atomic-waker",
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
"futures-io",
]
@@ -3802,14 +3745,15 @@ dependencies = [
[[package]]
name = "polling"
-version = "3.5.0"
+version = "3.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
+checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6"
dependencies = [
"cfg-if",
"concurrent-queue",
+ "hermit-abi",
"pin-project-lite",
- "rustix 0.38.31",
+ "rustix 0.38.32",
"tracing",
"windows-sys 0.52.0",
]
@@ -3844,12 +3788,12 @@ dependencies = [
[[package]]
name = "prettyplease"
-version = "0.2.16"
+version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5"
+checksum = "5ac2cf0f2e4f42b49f5ffd07dae8d746508ef7526c13940e5f524012ae6c6550"
dependencies = [
"proc-macro2",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -3870,7 +3814,7 @@ checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f"
dependencies = [
"proc-macro-rules-macros",
"proc-macro2",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -3882,14 +3826,14 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
name = "proc-macro2"
-version = "1.0.79"
+version = "1.0.80"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+checksum = "a56dea16b0a29e94408b9aa5e2940a4eedbd128a1ba20e8f7ae60fd3d465af0e"
dependencies = [
"unicode-ident",
]
@@ -3921,13 +3865,13 @@ dependencies = [
[[package]]
name = "prost-build"
-version = "0.12.3"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2"
+checksum = "80b776a1b2dc779f5ee0641f8ade0125bc1298dd41a9a0c16d8bd57b42d222b1"
dependencies = [
"bytes",
- "heck 0.4.1",
- "itertools 0.11.0",
+ "heck 0.5.0",
+ "itertools 0.12.1",
"log",
"multimap",
"once_cell",
@@ -3936,9 +3880,8 @@ dependencies = [
"prost",
"prost-types",
"regex",
- "syn 2.0.52",
+ "syn 2.0.60",
"tempfile",
- "which 4.4.2",
]
[[package]]
@@ -3948,10 +3891,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19de2de2a00075bf566bee3bd4db014b11587e84184d3f7a791bc17f1a8e9e48"
dependencies = [
"anyhow",
- "itertools 0.11.0",
+ "itertools 0.12.1",
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -3972,9 +3915,9 @@ dependencies = [
[[package]]
name = "prost-types"
-version = "0.12.3"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e"
+checksum = "3235c33eb02c1f1e212abdbe34c78b264b038fb58ca612664343271e36e55ffe"
dependencies = [
"prost",
]
@@ -4036,56 +3979,6 @@ dependencies = [
"thiserror",
]
-[[package]]
-name = "protoc-bin-vendored"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "005ca8623e5633e298ad1f917d8be0a44bcf406bf3cde3b80e63003e49a3f27d"
-dependencies = [
- "protoc-bin-vendored-linux-aarch_64",
- "protoc-bin-vendored-linux-ppcle_64",
- "protoc-bin-vendored-linux-x86_32",
- "protoc-bin-vendored-linux-x86_64",
- "protoc-bin-vendored-macos-x86_64",
- "protoc-bin-vendored-win32",
-]
-
-[[package]]
-name = "protoc-bin-vendored-linux-aarch_64"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fb9fc9cce84c8694b6ea01cc6296617b288b703719b725b8c9c65f7c5874435"
-
-[[package]]
-name = "protoc-bin-vendored-linux-ppcle_64"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02d2a07dcf7173a04d49974930ccbfb7fd4d74df30ecfc8762cf2f895a094516"
-
-[[package]]
-name = "protoc-bin-vendored-linux-x86_32"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54fef0b04fcacba64d1d80eed74a20356d96847da8497a59b0a0a436c9165b0"
-
-[[package]]
-name = "protoc-bin-vendored-linux-x86_64"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8782f2ce7d43a9a5c74ea4936f001e9e8442205c244f7a3d4286bd4c37bc924"
-
-[[package]]
-name = "protoc-bin-vendored-macos-x86_64"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5de656c7ee83f08e0ae5b81792ccfdc1d04e7876b1d9a38e6876a9e09e02537"
-
-[[package]]
-name = "protoc-bin-vendored-win32"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9653c3ed92974e34c5a6e0a510864dab979760481714c172e0a34e437cb98804"
-
[[package]]
name = "protox"
version = "0.6.0"
@@ -4113,17 +4006,6 @@ dependencies = [
"thiserror",
]
-[[package]]
-name = "pulldown-cmark"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b"
-dependencies = [
- "bitflags 2.4.2",
- "memchr",
- "unicase",
-]
-
[[package]]
name = "pwhash"
version = "1.0.0"
@@ -4141,9 +4023,9 @@ dependencies = [
[[package]]
name = "quanta"
-version = "0.12.2"
+version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ca0b7bac0b97248c40bb77288fc52029cf1459c0461ea1b05ee32ccf011de2c"
+checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5"
dependencies = [
"crossbeam-utils",
"libc",
@@ -4167,18 +4049,18 @@ dependencies = [
[[package]]
name = "quick-xml"
-version = "0.28.2"
+version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
dependencies = [
"memchr",
]
[[package]]
name = "quote"
-version = "1.0.35"
+version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
dependencies = [
"proc-macro2",
]
@@ -4225,7 +4107,7 @@ version = "11.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d86a7c4638d42c44551f4791a20e687dbb4c3de1f33c43dd71e355cd429def1"
dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
]
[[package]]
@@ -4236,9 +4118,9 @@ checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
[[package]]
name = "rayon"
-version = "1.9.0"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
dependencies = [
"either",
"rayon-core",
@@ -4265,9 +4147,9 @@ dependencies = [
[[package]]
name = "redox_users"
-version = "0.4.4"
+version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
dependencies = [
"getrandom",
"libredox",
@@ -4283,7 +4165,7 @@ dependencies = [
"aho-corasick",
"memchr",
"regex-automata 0.4.6",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
]
[[package]]
@@ -4303,7 +4185,7 @@ checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
dependencies = [
"aho-corasick",
"memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
]
[[package]]
@@ -4326,15 +4208,15 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
[[package]]
name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
[[package]]
name = "reqwest"
-version = "0.11.26"
+version = "0.11.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
dependencies = [
"base64 0.21.7",
"bytes",
@@ -4460,11 +4342,11 @@ dependencies = [
[[package]]
name = "rustix"
-version = "0.38.31"
+version = "0.38.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
"errno",
"libc",
"linux-raw-sys 0.4.13",
@@ -4485,9 +4367,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.22.2"
+version = "0.22.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c"
dependencies = [
"log",
"ring",
@@ -4499,9 +4381,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.23.3"
+version = "0.23.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b3818d6051afeb6f88412bc8693cf8219799b2f2c2365f15e7534f0e198a16c"
+checksum = "8c4d6d8ad9f2492485e13453acbb291dd08f64441b6609c491f1c2cd2c6b4fe1"
dependencies = [
"once_cell",
"rustls-pki-types",
@@ -4517,7 +4399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
dependencies = [
"openssl-probe",
- "rustls-pemfile 2.1.1",
+ "rustls-pemfile 2.1.2",
"rustls-pki-types",
"schannel",
"security-framework",
@@ -4534,11 +4416,11 @@ dependencies = [
[[package]]
name = "rustls-pemfile"
-version = "2.1.1"
+version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f48172685e6ff52a556baa527774f61fcaa884f59daf3375c62a3f1cd2549dab"
+checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
dependencies = [
- "base64 0.21.7",
+ "base64 0.22.0",
"rustls-pki-types",
]
@@ -4571,9 +4453,9 @@ dependencies = [
[[package]]
name = "rustversion"
-version = "1.0.14"
+version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47"
[[package]]
name = "ryu"
@@ -4641,9 +4523,9 @@ dependencies = [
[[package]]
name = "security-framework"
-version = "2.9.2"
+version = "2.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6"
dependencies = [
"bitflags 1.3.2",
"core-foundation",
@@ -4654,9 +4536,9 @@ dependencies = [
[[package]]
name = "security-framework-sys"
-version = "2.9.1"
+version = "2.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef"
dependencies = [
"core-foundation-sys",
"libc",
@@ -4676,9 +4558,6 @@ name = "semver"
version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
-dependencies = [
- "serde",
-]
[[package]]
name = "semver-parser"
@@ -4694,9 +4573,9 @@ checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0"
[[package]]
name = "serde"
-version = "1.0.197"
+version = "1.0.198"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
dependencies = [
"serde_derive",
]
@@ -4744,13 +4623,13 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.197"
+version = "1.0.198"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -4766,11 +4645,11 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.115"
+version = "1.0.116"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
"itoa",
"ryu",
"serde",
@@ -4821,9 +4700,9 @@ dependencies = [
[[package]]
name = "serde_v8"
-version = "0.182.0"
+version = "0.186.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31bcbb905458ba3820fc4583312449c56e183296d5bf89ba59d1d67a752c6701"
+checksum = "ed95f28fe0e7082a4bf8b914d14d3876e21340fab5c088556496e5c4b26cfedb"
dependencies = [
"bytes",
"num-bigint",
@@ -4835,11 +4714,11 @@ dependencies = [
[[package]]
name = "serde_yaml"
-version = "0.9.32"
+version = "0.9.34+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
+checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
"itoa",
"ryu",
"serde",
@@ -4944,9 +4823,9 @@ dependencies = [
[[package]]
name = "similar"
-version = "2.4.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21"
+checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640"
[[package]]
name = "simple_asn1"
@@ -4966,21 +4845,6 @@ version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
-[[package]]
-name = "skeptic"
-version = "0.13.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8"
-dependencies = [
- "bytecount",
- "cargo_metadata",
- "error-chain",
- "glob",
- "pulldown-cmark",
- "tempfile",
- "walkdir",
-]
-
[[package]]
name = "slab"
version = "0.4.9"
@@ -4992,9 +4856,9 @@ dependencies = [
[[package]]
name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "socket2"
@@ -5080,18 +4944,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "strsim"
-version = "0.11.0"
+version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
-
-[[package]]
-name = "strum"
-version = "0.24.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
-dependencies = [
- "strum_macros 0.24.3",
-]
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "strum"
@@ -5111,19 +4966,6 @@ dependencies = [
"strum_macros 0.26.2",
]
-[[package]]
-name = "strum_macros"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
-dependencies = [
- "heck 0.4.1",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn 1.0.109",
-]
-
[[package]]
name = "strum_macros"
version = "0.25.3"
@@ -5134,7 +4976,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -5147,7 +4989,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -5169,9 +5011,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.52"
+version = "2.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
dependencies = [
"proc-macro2",
"quote",
@@ -5258,7 +5100,7 @@ dependencies = [
"httpmock",
"hyper 0.14.28",
"hyper-rustls 0.25.0",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
"inquire",
"insta",
"jsonwebtoken",
@@ -5286,7 +5128,6 @@ dependencies = [
"prometheus",
"prost",
"prost-reflect",
- "protoc-bin-vendored",
"protox",
"protox-parse",
"rand",
@@ -5294,7 +5135,7 @@ dependencies = [
"reqwest",
"reqwest-middleware",
"resource",
- "rustls 0.23.3",
+ "rustls 0.23.4",
"rustls-pemfile 1.0.4",
"rustls-pki-types",
"schemars",
@@ -5306,12 +5147,14 @@ dependencies = [
"serde_yaml",
"stripmargin",
"strum_macros 0.26.2",
+ "tailcall-macros",
+ "tailcall-prettier",
"temp-env",
"tempfile",
"thiserror",
"tokio",
"tonic",
- "tonic-build 0.11.0",
+ "tonic-types",
"tracing",
"tracing-opentelemetry",
"tracing-subscriber",
@@ -5322,6 +5165,37 @@ dependencies = [
"which 6.0.1",
]
+[[package]]
+name = "tailcall-autogen"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "lazy_static",
+ "schemars",
+ "serde",
+ "serde_json",
+ "tailcall",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "tailcall-aws-lambda"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "dotenvy",
+ "hyper 0.14.28",
+ "lambda_http",
+ "lambda_runtime",
+ "reqwest",
+ "tailcall",
+ "tokio",
+ "tracing",
+ "tracing-subscriber",
+]
+
[[package]]
name = "tailcall-cloudflare"
version = "0.1.0"
@@ -5344,6 +5218,41 @@ dependencies = [
"worker",
]
+[[package]]
+name = "tailcall-macros"
+version = "0.1.0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "tailcall-prettier"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "lazy_static",
+ "strum_macros 0.26.2",
+ "tokio",
+]
+
+[[package]]
+name = "tailcall_query_plan"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-graphql",
+ "async-recursion",
+ "dashmap",
+ "futures-util",
+ "indenter",
+ "indexmap 2.2.6",
+ "insta",
+ "tailcall",
+ "tokio",
+]
+
[[package]]
name = "tap"
version = "1.0.1"
@@ -5375,8 +5284,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
dependencies = [
"cfg-if",
- "fastrand 2.0.1",
- "rustix 0.38.31",
+ "fastrand 2.0.2",
+ "rustix 0.38.32",
"windows-sys 0.52.0",
]
@@ -5408,7 +5317,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -5423,9 +5332,9 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.34"
+version = "0.3.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
dependencies = [
"deranged",
"itoa",
@@ -5444,9 +5353,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
-version = "0.2.17"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
dependencies = [
"num-conv",
"time-core",
@@ -5523,7 +5432,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -5542,16 +5451,16 @@ version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
dependencies = [
- "rustls 0.22.2",
+ "rustls 0.22.3",
"rustls-pki-types",
"tokio",
]
[[package]]
name = "tokio-stream"
-version = "0.1.14"
+version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
dependencies = [
"futures-core",
"pin-project-lite",
@@ -5584,7 +5493,7 @@ version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
"toml_datetime",
"winnow",
]
@@ -5609,7 +5518,7 @@ dependencies = [
"pin-project",
"prost",
"rustls-native-certs",
- "rustls-pemfile 2.1.1",
+ "rustls-pemfile 2.1.2",
"rustls-pki-types",
"tokio",
"tokio-rustls 0.25.0",
@@ -5630,20 +5539,18 @@ dependencies = [
"proc-macro2",
"prost-build",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
-name = "tonic-build"
+name = "tonic-types"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2"
+checksum = "f4aa089471d8d4c60ec3aef047739713a4695f0b309d4cea0073bc55201064f4"
dependencies = [
- "prettyplease",
- "proc-macro2",
- "prost-build",
- "quote",
- "syn 2.0.52",
+ "prost",
+ "prost-types",
+ "tonic",
]
[[package]]
@@ -5698,7 +5605,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -5886,9 +5793,9 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
[[package]]
name = "unsafe-libyaml"
-version = "0.2.10"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
+checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
[[package]]
name = "untrusted"
@@ -5935,9 +5842,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
name = "uuid"
-version = "1.7.0"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
dependencies = [
"getrandom",
"wasm-bindgen",
@@ -5945,11 +5852,11 @@ dependencies = [
[[package]]
name = "v8"
-version = "0.89.0"
+version = "0.91.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe2197fbef82c98f7953d13568a961d4e1c663793b5caf3c74455a13918cdf33"
+checksum = "03bdee44e85d6235cff99e1ed5b1016c53822c70d1cce3d51f421b27a125a1e8"
dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
"fslock",
"gzip-header",
"home",
@@ -5966,9 +5873,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
[[package]]
name = "value-bag"
-version = "1.8.0"
+version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fec26a25bd6fca441cdd0f769fd7f891bae119f996de31f86a5eddccef54c1d"
+checksum = "74797339c3b98616c009c7c3eb53a0ce41e85c8ec66bd3db96ed132d20cfdee8"
[[package]]
name = "version_check"
@@ -6028,7 +5935,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
"wasm-bindgen-shared",
]
@@ -6062,7 +5969,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -6138,7 +6045,7 @@ dependencies = [
"either",
"home",
"once_cell",
- "rustix 0.38.31",
+ "rustix 0.38.32",
]
[[package]]
@@ -6150,7 +6057,7 @@ dependencies = [
"either",
"home",
"once_cell",
- "rustix 0.38.31",
+ "rustix 0.38.32",
"windows-sys 0.48.0",
]
@@ -6162,7 +6069,7 @@ checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7"
dependencies = [
"either",
"home",
- "rustix 0.38.31",
+ "rustix 0.38.32",
"winsafe",
]
@@ -6203,7 +6110,7 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
]
[[package]]
@@ -6230,7 +6137,7 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
]
[[package]]
@@ -6265,17 +6172,18 @@ dependencies = [
[[package]]
name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
]
[[package]]
@@ -6292,9 +6200,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
[[package]]
name = "windows_aarch64_msvc"
@@ -6310,9 +6218,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
[[package]]
name = "windows_i686_gnu"
@@ -6328,9 +6236,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
[[package]]
name = "windows_i686_msvc"
@@ -6346,9 +6260,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
[[package]]
name = "windows_x86_64_gnu"
@@ -6364,9 +6278,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
[[package]]
name = "windows_x86_64_gnullvm"
@@ -6382,9 +6296,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
[[package]]
name = "windows_x86_64_msvc"
@@ -6400,9 +6314,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
[[package]]
name = "winnow"
@@ -6484,7 +6398,7 @@ dependencies = [
"async-trait",
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
"wasm-bindgen",
"wasm-bindgen-futures",
"wasm-bindgen-macro-support",
@@ -6512,7 +6426,7 @@ dependencies = [
"darling 0.20.8",
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
@@ -6547,7 +6461,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.60",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index f330c5d1e0..174e2a1cdd 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -7,6 +7,14 @@ edition = "2021"
name = "tailcall"
path = "src/main.rs"
+[workspace.dependencies]
+anyhow = "1.0.82"
+async-graphql = { version = "7.0.3" }
+futures-util = { version = "0.3.30" }
+indexmap = "2.2"
+insta = { version = "1.38.0", features = ["json"] }
+tokio = { version = "1.37.0", features = ["rt", "time"] }
+
[dependencies]
# dependencies specific to CLI must have optional = true and the dep should be added to default feature.
# one needs to add default feature tag if it is something IO related or might conflict with WASM
@@ -15,11 +23,13 @@ mimalloc = { version = "0.1.39", default-features = false, optional = true }
http-cache-reqwest = { version = "0.13.0", features = [
"manager-moka",
], default-features = false, optional = true }
-moka = { version = "0.12.5", default-features = false, features = [
+moka = { version = "0.12.7", default-features = false, features = [
"future",
], optional = true }
hyper-rustls = { version = "0.25.0", optional = true }
-rustls = { version = "0.23.3", optional = true, features = ["std"], default-features = false }
+rustls = { version = "0.23.3", optional = true, features = [
+ "std",
+], default-features = false }
rustls-pki-types = "1.4.1"
inquire = { version = "0.7.4", optional = true }
opentelemetry-otlp = { version = "0.15.0", features = [
@@ -36,8 +46,8 @@ opentelemetry-system-metrics = { version = "0.1.8", optional = true }
rustls-pemfile = { version = "1.0.4" }
schemars = { version = "0.8.16", features = ["derive"] }
hyper = { version = "0.14", features = ["server"], default-features = false }
-tokio = { version = "1.37.0", features = ["rt", "time"] }
-anyhow = "1.0.82"
+tokio = { workspace = true }
+anyhow = { workspace = true }
derive_setters = "0.1.6"
thiserror = "1.0.58"
serde_json = { version = "1.0", features = ["preserve_order"] }
@@ -50,13 +60,13 @@ reqwest = { version = "0.11", features = [
"json",
"rustls-tls",
], default-features = false }
-indexmap = "2.2"
+indexmap = { workspace = true }
once_cell = "1.19.0"
clap = { version = "4.5.4", features = ["derive"] }
colored = "2"
regex = "1.10.4"
reqwest-middleware = "0.2.5"
-async-trait = "0.1.79"
+async-trait = "0.1.80"
serde_path_to_error = "0.1.16"
cache_control = "0.2.0"
nom = "7.1.3"
@@ -67,7 +77,7 @@ num_cpus = "1.16.0"
fnv = "1.0.7"
futures-channel = { version = "0.3.30" }
futures-timer = { version = "3.0.3", features = ["wasm-bindgen"] }
-futures-util = { version = "0.3.30" }
+futures-util = { workspace = true }
lru = { version = "0.12.3" }
webbrowser = { version = "0.8.15", features = ["hardened", "disable-wsl"] }
async-std = { version = "1.12.0", features = [
@@ -87,11 +97,17 @@ lazy_static = "1.4.0"
which = { version = "6.0.1", optional = true }
async-recursion = "1.1.0"
tempfile = "3.10.1"
-deno_core = { version = "0.273.0", optional = true, features = ["v8_use_custom_libcxx"], default-features = false }
+deno_core = { version = "0.277.0", optional = true, features = [
+ "v8_use_custom_libcxx",
+], default-features = false }
strum_macros = "0.26.2"
# TODO: disable some levels with features?
tracing = "0.1.40"
-tracing-subscriber = { version = "0.3.18", features = ["default","fmt","env-filter"] }
+tracing-subscriber = { version = "0.3.18", features = [
+ "default",
+ "fmt",
+ "env-filter",
+] }
tracing-opentelemetry = "0.23.0"
getrandom = { version = "0.2.14", features = ["js"] }
prometheus = "0.13.3"
@@ -111,36 +127,35 @@ opentelemetry-stdout = { version = "0.3.0", features = [
] }
opentelemetry-appender-tracing = { version = "0.3.0" }
opentelemetry-prometheus = "0.15.0"
-phonenumber = "0.3.3"
-chrono = "0.4.37"
+phonenumber = "0.3.4"
+chrono = "0.4.38"
async-graphql-extension-apollo-tracing = { git = "https://github.com/tailcallhq/async_graphql_apollo_studio_extension/" }
headers = "0.3.9" # previous version until hyper is updated to 1+
mime = "0.3.17"
htpasswd-verify = { version = "0.3.0", git = "https://github.com/twistedfall/htpasswd-verify", rev = "ff14703083cbd639f7d05622b398926f3e718d61" } # fork version that is wasm compatible
jsonwebtoken = "9.3.0"
async-graphql-value = "7.0.3"
-async-graphql = { version = "7.0.3", features = [
+async-graphql = { workspace = true, features = [
"dynamic-schema",
"dataloader",
"apollo_tracing",
"opentelemetry",
-]}
+] }
dotenvy = "0.15"
convert_case = "0.6.0"
rand = "0.8.5"
-
-[build-dependencies]
-tonic-build = "0.11.0"
-protoc-bin-vendored = "3.0.0"
+tailcall-macros = { path = "tailcall-macros" }
+tonic-types = "0.11.0"
[dev-dependencies]
+tailcall-prettier = {path = "tailcall-prettier"}
criterion = "0.5.1"
httpmock = "0.7.0"
pretty_assertions = "1.4.0"
stripmargin = "0.1.1"
markdown = "1.0.0-alpha.16"
-insta = { version = "1.38.0", features = ["json"] }
+insta = { workspace = true }
tempfile = "3.10.1"
temp-env = "0.3.6"
maplit = "1.0.2"
@@ -168,7 +183,7 @@ cli = [
"opentelemetry_sdk/testing",
"opentelemetry_sdk/rt-tokio",
"dep:opentelemetry-otlp",
- "dep:opentelemetry-system-metrics"
+ "dep:opentelemetry-system-metrics",
]
# Feature flag to enable all default features.
@@ -178,7 +193,15 @@ default = ["cli", "js"]
[workspace]
-members = [".", "autogen", "aws-lambda", "tailcall-cloudflare"]
+members = [
+ ".",
+ "tailcall-autogen",
+ "tailcall-aws-lambda",
+ "tailcall-cloudflare",
+ "tailcall-macros",
+ "tailcall-prettier",
+ "tailcall-query-plan",
+]
# Boost execution_spec snapshot diffing performance
[profile.dev.package]
@@ -217,4 +240,4 @@ harness = false
[[bench]]
name = "protobuf_convert_output"
-harness = false
\ No newline at end of file
+harness = false
diff --git a/README.md b/README.md
index 2ddb04f2f5..eae6486f90 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[![Tailcall](https://raw.githubusercontent.com/tailcallhq/tailcall/main/assets/logo_main.svg)](https://tailcall.run)
+[![Tailcall Logo](https://raw.githubusercontent.com/tailcallhq/tailcall/main/assets/logo_main.svg)](https://tailcall.run)
Tailcall is an open-source solution for building [high-performance] GraphQL backends.
@@ -53,7 +53,7 @@ docker run -p 8080:8080 -p 8081:8081 ghcr.io/tailcallhq/tailcall/tc-server
## Get Started
-The below file is a standard `.graphQL` file, with a few additions such as `@server` and `@http` directives. So basically we specify the GraphQL schema and how to resolve that GraphQL schema in the same file, without having to write any code!
+The below file is a standard `.graphQL` file, with a few additions such as `@server` and `@http` directives. So, basically, we specify the GraphQL schema and how to resolve that GraphQL schema in the same file, without having to write any code!
```graphql
schema
@@ -99,7 +99,7 @@ Head out to [docs] to learn about other powerful tailcall features.
Your contributions are invaluable! Kindly go through our [contribution guidelines] if you are a first time contributor.
-[contribution guidelines]: ./.github/contributing.md
+[contribution guidelines]: https://tailcall.run/docs/contributors/guidelines/
### Support Us
diff --git a/benches/protobuf_convert_output.rs b/benches/protobuf_convert_output.rs
index 9dc36b5077..ff40f53978 100644
--- a/benches/protobuf_convert_output.rs
+++ b/benches/protobuf_convert_output.rs
@@ -1,46 +1,59 @@
use std::path::Path;
+use anyhow::Result;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
-use prost::Message;
-use rand::random;
+use rand::{thread_rng, Fill};
+use serde_json::{json, Value};
use tailcall::blueprint::GrpcMethod;
use tailcall::grpc::protobuf::ProtobufSet;
-pub mod dummy {
- tonic::include_proto!("dummy");
-}
-
-const OUT_DIR: &str = "benches/grpc";
+const PROTO_DIR: &str = "benches/grpc";
const PROTO_FILE: &str = "dummy.proto";
const SERVICE_NAME: &str = "dummy.DummyService.GetDummy";
const N: usize = 1000;
const M: usize = 100;
-pub struct Dummy;
-
-impl Dummy {
- #[allow(clippy::new_ret_no_self)]
- fn new(n: usize, m: usize) -> dummy::Dummy {
- dummy::Dummy {
- ints: (0..n).map(|_| random()).collect(),
- flags: (0..n).map(|_| random()).collect(),
- names: (0..n)
- .map(|_| (0..m).map(|_| random::()).collect())
- .collect(),
- floats: (0..n).map(|_| random()).collect(),
- }
- }
+fn create_dummy_value(n: usize, m: usize) -> Result {
+ let rng = &mut thread_rng();
+ let mut ints = vec![0i32; n];
+ let mut floats = vec![0f32; n];
+ let mut flags = vec![false; n];
+ let names: Vec = (0..n)
+ .map(|_| {
+ let mut chars = vec![' '; m];
+
+ chars.try_fill(rng)?;
+
+ Ok(chars.into_iter().collect::())
+ })
+ .collect::>()?;
+
+ ints.try_fill(rng)?;
+ floats.try_fill(rng)?;
+ flags.try_fill(rng)?;
+
+ let value = json!({
+ "ints": ints,
+ "floats": floats,
+ "flags": flags,
+ "names": names,
+ });
+
+ Ok(value)
}
fn benchmark_convert_output(c: &mut Criterion) {
- let proto_file_path = Path::new(OUT_DIR).join(PROTO_FILE);
+ let proto_file_path = Path::new(PROTO_DIR).join(PROTO_FILE);
let file_descriptor_set = protox::compile([proto_file_path], ["."]).unwrap();
- let protobuf_set = ProtobufSet::from_proto_file(&file_descriptor_set).unwrap();
+ let protobuf_set = ProtobufSet::from_proto_file(file_descriptor_set).unwrap();
let method = GrpcMethod::try_from(SERVICE_NAME).unwrap();
let service = protobuf_set.find_service(&method).unwrap();
let protobuf_operation = service.find_operation(&method).unwrap();
- let mut msg: Vec = vec![0, 0, 0, 0, 14];
- Dummy::new(N, M).encode(&mut msg).unwrap();
+
+ let dummy_value = create_dummy_value(N, M).unwrap();
+ let msg = protobuf_operation
+ .convert_input(&dummy_value.to_string())
+ .unwrap();
c.bench_function("test_batched_body", |b| {
b.iter(|| {
diff --git a/build.rs b/build.rs
deleted file mode 100644
index 0d8d6e9496..0000000000
--- a/build.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-use std::path::Path;
-
-const PROTO_PATH: &str = "benches/grpc/dummy.proto";
-
-fn main() {
- let path = protoc_bin_vendored::protoc_bin_path().expect("Failed to find protoc binary");
- std::env::set_var("PROTOC", format!("{}", path.display()));
- let proto_file_path = Path::new(PROTO_PATH);
- tonic_build::configure()
- .compile(&[proto_file_path], &["proto"])
- .unwrap();
-}
diff --git a/generated/.tailcallrc.graphql b/generated/.tailcallrc.graphql
index e1ead52f61..72f0216808 100644
--- a/generated/.tailcallrc.graphql
+++ b/generated/.tailcallrc.graphql
@@ -421,20 +421,20 @@ input Apollo {
"""
Setting `platform` for Apollo.
"""
- platform: String!
+ platform: String
"""
Setting `userVersion` for Apollo.
"""
- userVersion: String!
+ userVersion: String
"""
Setting `version` for Apollo.
"""
- version: String!
+ version: String
}
input Batch {
delay: Int!
headers: [String!]
- maxSize: Int!
+ maxSize: Int
}
"""
The @cache operator enables caching for the query, field or type it is applied to.
diff --git a/generated/.tailcallrc.schema.json b/generated/.tailcallrc.schema.json
index 2843d575db..c23b622061 100644
--- a/generated/.tailcallrc.schema.json
+++ b/generated/.tailcallrc.schema.json
@@ -103,18 +103,24 @@
},
"platform": {
"description": "Setting `platform` for Apollo.",
- "default": "platform",
- "type": "string"
+ "type": [
+ "string",
+ "null"
+ ]
},
"userVersion": {
"description": "Setting `userVersion` for Apollo.",
- "default": "1.0",
- "type": "string"
+ "type": [
+ "string",
+ "null"
+ ]
},
"version": {
"description": "Setting `version` for Apollo.",
- "default": "1.0",
- "type": "string"
+ "type": [
+ "string",
+ "null"
+ ]
}
}
},
@@ -170,8 +176,10 @@
"uniqueItems": true
},
"maxSize": {
- "default": 100,
- "type": "integer",
+ "type": [
+ "integer",
+ "null"
+ ],
"format": "uint",
"minimum": 0.0
}
diff --git a/lint.sh b/lint.sh
index 2841c83e49..a9f45b80c8 100755
--- a/lint.sh
+++ b/lint.sh
@@ -36,7 +36,7 @@ run_prettier() {
run_autogen_schema() {
MODE=$1
- cargo run -p autogen $MODE
+ cargo run -p tailcall-autogen $MODE
return $?
}
diff --git a/src/blueprint/operators/grpc.rs b/src/blueprint/operators/grpc.rs
index f88524a82e..3029469519 100644
--- a/src/blueprint/operators/grpc.rs
+++ b/src/blueprint/operators/grpc.rs
@@ -33,7 +33,7 @@ fn to_url(grpc: &Grpc, method: &GrpcMethod, config: &Config) -> Valid Valid {
Valid::from(
ProtobufSet::from_proto_file(file_descriptor_set)
@@ -165,15 +165,17 @@ pub fn compile_grpc(inputs: CompileGrpc) -> Valid {
Valid::from(GrpcMethod::try_from(grpc.method.as_str()))
.and_then(|method| {
- Valid::from_option(
- config_module.extensions.get_file_descriptor_set(&method),
- format!("File descriptor not found for method: {}", grpc.method),
- )
- .and_then(|file_descriptor_set| to_operation(&method, file_descriptor_set))
- .fuse(to_url(grpc, &method, config_module))
- .fuse(helpers::headers::to_mustache_headers(&grpc.headers))
- .fuse(helpers::body::to_body(grpc.body.as_deref()))
- .into()
+ let file_descriptor_set = config_module.extensions.get_file_descriptor_set();
+
+ if file_descriptor_set.file.is_empty() {
+ return Valid::fail("Protobuf files were not specified in the config".to_string());
+ }
+
+ to_operation(&method, file_descriptor_set)
+ .fuse(to_url(grpc, &method, config_module))
+ .fuse(helpers::headers::to_mustache_headers(&grpc.headers))
+ .fuse(helpers::body::to_body(grpc.body.as_deref()))
+ .into()
})
.and_then(|(operation, url, headers, body)| {
let validation = if validate_with_schema {
diff --git a/src/blueprint/upstream.rs b/src/blueprint/upstream.rs
index 9e3340d955..279bbf1a55 100644
--- a/src/blueprint/upstream.rs
+++ b/src/blueprint/upstream.rs
@@ -32,7 +32,7 @@ pub struct Upstream {
impl Upstream {
pub fn is_batching_enabled(&self) -> bool {
if let Some(batch) = self.batch.as_ref() {
- batch.delay >= 1 || batch.max_size >= 1
+ batch.delay >= 1 || batch.max_size.unwrap_or_default() >= 1
} else {
false
}
@@ -88,7 +88,7 @@ fn get_batch(upstream: &config::Upstream) -> Valid