├── project ├── .gitignore ├── README.md ├── src │ └── main.rs ├── rustfmt.toml ├── Cargo.lock ├── Cargo.toml └── .editorconfig ├── rust-api-gateway-v2-sqs ├── .gitignore ├── functions │ ├── api │ │ ├── .env.example │ │ ├── rustfmt.toml │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ └── queue │ │ ├── rustfmt.toml │ │ ├── Cargo.toml │ │ ├── src │ │ └── main.rs │ │ └── Cargo.lock ├── .editorconfig ├── deploy-local.sh ├── docker-compose.yml ├── package.json ├── serverless.yml ├── serverless.local.yml └── README.md ├── rust-api-gateway-v2 ├── .gitignore ├── functions │ └── api │ │ ├── .env.example │ │ ├── rustfmt.toml │ │ ├── Cargo.toml │ │ └── src │ │ └── main.rs ├── .editorconfig ├── package.json ├── serverless.yml └── README.md ├── rust-api-gateway-v2-sqs-2 ├── .gitignore ├── functions │ └── api │ │ ├── .env.example │ │ ├── rustfmt.toml │ │ ├── Cargo.toml │ │ └── src │ │ ├── lib.rs │ │ ├── bin │ │ └── queue.rs │ │ └── main.rs ├── .editorconfig ├── deploy-local.sh ├── docker-compose.yml ├── package.json ├── serverless.yml ├── serverless.local.yml └── README.md ├── .gitignore ├── rust-lambda ├── functions │ └── api │ │ ├── rustfmt.toml │ │ ├── Cargo.toml │ │ ├── src │ │ └── main.rs │ │ └── Cargo.lock ├── .editorconfig ├── docker-compose.yml ├── package.json ├── serverless.yml └── README.md ├── rust-api-gateway-v1 ├── functions │ └── api │ │ ├── rustfmt.toml │ │ ├── Cargo.toml │ │ ├── src │ │ └── main.rs │ │ └── Cargo.lock ├── .editorconfig ├── docker-compose.yml ├── package.json ├── serverless.yml └── README.md ├── rust-lambda-sqs ├── functions │ └── api │ │ ├── rustfmt.toml │ │ ├── Cargo.toml │ │ ├── src │ │ └── main.rs │ │ └── Cargo.lock ├── .editorconfig ├── docker-compose.yml ├── package.json ├── serverless.yml └── README.md ├── rust-api-gateway-v1-2 ├── functions │ └── api │ │ ├── rustfmt.toml │ │ ├── Cargo.toml │ │ ├── src │ │ └── main.rs │ │ └── Cargo.lock ├── .editorconfig ├── docker-compose.yml ├── package.json ├── serverless.yml └── README.md └── README.md /project/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /project/README.md: -------------------------------------------------------------------------------- 1 | # Rust project 2 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | -------------------------------------------------------------------------------- /rust-api-gateway-v2/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | node_modules 3 | .serverless 4 | -------------------------------------------------------------------------------- /project/src/main.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("Hello, world!"); 3 | } 4 | -------------------------------------------------------------------------------- /rust-api-gateway-v2/functions/api/.env.example: -------------------------------------------------------------------------------- 1 | export ENVIRONMENT=local 2 | export RUST_BACKTRACE=1 3 | export OFFLINE=true 4 | -------------------------------------------------------------------------------- /project/rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 2 | max_width = 80 3 | imports_layout = "HorizontalVertical" 4 | inline_attribute_width = 50 5 | -------------------------------------------------------------------------------- /rust-lambda/functions/api/rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 2 | max_width = 80 3 | imports_layout = "HorizontalVertical" 4 | inline_attribute_width = 50 5 | -------------------------------------------------------------------------------- /rust-api-gateway-v1/functions/api/rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 2 | max_width = 80 3 | imports_layout = "HorizontalVertical" 4 | inline_attribute_width = 50 5 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/functions/api/.env.example: -------------------------------------------------------------------------------- 1 | export ENVIRONMENT=local 2 | export RUST_BACKTRACE=1 3 | export OFFLINE=true 4 | export LOCALSTACK=true 5 | -------------------------------------------------------------------------------- /rust-api-gateway-v2/functions/api/rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 2 | max_width = 80 3 | imports_layout = "HorizontalVertical" 4 | inline_attribute_width = 50 5 | -------------------------------------------------------------------------------- /rust-lambda-sqs/functions/api/rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 2 | max_width = 80 3 | imports_layout = "HorizontalVertical" 4 | inline_attribute_width = 50 5 | -------------------------------------------------------------------------------- /rust-api-gateway-v1-2/functions/api/rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 2 | max_width = 80 3 | imports_layout = "HorizontalVertical" 4 | inline_attribute_width = 50 5 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/functions/api/.env.example: -------------------------------------------------------------------------------- 1 | export ENVIRONMENT=local 2 | export RUST_BACKTRACE=1 3 | export OFFLINE=true 4 | export LOCALSTACK=true 5 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/functions/api/rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 2 | max_width = 80 3 | imports_layout = "HorizontalVertical" 4 | inline_attribute_width = 50 5 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/functions/api/rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 2 | max_width = 80 3 | imports_layout = "HorizontalVertical" 4 | inline_attribute_width = 50 5 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/functions/queue/rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 2 | max_width = 80 3 | imports_layout = "HorizontalVertical" 4 | inline_attribute_width = 50 5 | -------------------------------------------------------------------------------- /project/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "rust-serverless-examples" 7 | version = "0.1.0" 8 | -------------------------------------------------------------------------------- /project/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rust-serverless-examples" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | -------------------------------------------------------------------------------- /project/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 2 5 | indent_style = space 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | end_of_line = lf 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /rust-lambda-sqs/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 2 5 | indent_style = space 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | end_of_line = lf 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /rust-lambda/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 2 5 | indent_style = space 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | end_of_line = lf 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /rust-api-gateway-v1/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 2 5 | indent_style = space 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | end_of_line = lf 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /rust-api-gateway-v2/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 2 5 | indent_style = space 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | end_of_line = lf 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /rust-api-gateway-v1-2/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 2 5 | indent_style = space 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | end_of_line = lf 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 2 5 | indent_style = space 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | end_of_line = lf 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 2 5 | indent_style = space 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | end_of_line = lf 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /rust-api-gateway-v2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "deploy:dev": "serverless deploy --stage dev", 5 | "sls:destroy:dev": "serverless remove --stage dev" 6 | }, 7 | "devDependencies": { 8 | "serverless": "3.19.0", 9 | "sls-rust": "0.2.1" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /rust-lambda/functions/api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "api" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | lambda_runtime = "0.6.0" 8 | serde_json = "1.0.82" 9 | tokio = { version = "1.20.1", features = ["full"] } 10 | tracing = "0.1.36" 11 | tracing-subscriber = "0.3.15" 12 | -------------------------------------------------------------------------------- /rust-lambda-sqs/functions/api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "api" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | lambda_runtime = "0.6.0" 8 | serde = "1.0.141" 9 | serde_json = "1.0.82" 10 | tokio = { version = "1.20.1", features = ["full"] } 11 | tracing = "0.1.36" 12 | tracing-subscriber = "0.3.15" 13 | -------------------------------------------------------------------------------- /rust-api-gateway-v1-2/functions/api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "api" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | lambda_http = "0.6.0" 8 | serde = "1.0.140" 9 | serde_json = "1.0.82" 10 | tokio = { version = "1.20.1", features = ["full"] } 11 | tracing = "0.1.36" 12 | tracing-subscriber = "0.3.15" 13 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/functions/queue/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "queue" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | lambda_runtime = "0.6.0" 8 | serde = "1.0.141" 9 | serde_json = "1.0.82" 10 | tokio = { version = "1.20.1", features = ["full"] } 11 | tracing = "0.1.36" 12 | tracing-subscriber = "0.3.15" 13 | -------------------------------------------------------------------------------- /rust-api-gateway-v1/functions/api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "api" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | aws_lambda_events = "0.6.3" 8 | http = "0.2.8" 9 | lambda_runtime = "0.6.0" 10 | serde = "1.0.140" 11 | serde_json = "1.0.82" 12 | tokio = { version = "1.20.1", features = ["full"] } 13 | tracing = "0.1.36" 14 | tracing-subscriber = "0.3.15" 15 | -------------------------------------------------------------------------------- /rust-api-gateway-v2/functions/api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "api" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [package.metadata.commands] 7 | dev = "bash -c \"source .env && cargo watch -x 'run'\"" 8 | 9 | [dependencies] 10 | actix-web = "4.1.0" 11 | lambda-web = { version = "0.2.0", features = ["actix4"] } 12 | serde = "1.0.140" 13 | serde_json = "1.0.82" 14 | tracing = "0.1.36" 15 | tracing-subscriber = "0.3.15" 16 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/deploy-local.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Ajustando configuração..." 3 | mv serverless.yml serverless.yml.bkp 4 | mv serverless.local.yml serverless.yml 5 | echo "Configuração ajustada!" 6 | echo "Iniciando deploy..." 7 | 8 | yarn deploy:local 9 | 10 | echo "Deploy finalizado!" 11 | echo "Finalizando configuração..." 12 | mv serverless.yml serverless.local.yml 13 | mv serverless.yml.bkp serverless.yml 14 | echo "Configuração finalizada!" 15 | 16 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/deploy-local.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Ajustando configuração..." 3 | mv serverless.yml serverless.yml.bkp 4 | mv serverless.local.yml serverless.yml 5 | echo "Configuração ajustada!" 6 | echo "Iniciando deploy..." 7 | 8 | yarn deploy:local 9 | 10 | echo "Deploy finalizado!" 11 | echo "Finalizando configuração..." 12 | mv serverless.yml serverless.local.yml 13 | mv serverless.yml.bkp serverless.yml 14 | echo "Configuração finalizada!" 15 | 16 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/functions/api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "api" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [package.metadata.commands] 7 | dev = "bash -c \"source .env && cargo watch -x 'run'\"" 8 | 9 | [dependencies] 10 | actix-web = "4.1.0" 11 | aws-config = "0.46.0" 12 | aws-sdk-sqs = "0.16.0" 13 | lambda-web = { version = "0.2.0", features = ["actix4"] } 14 | serde = "1.0.140" 15 | serde_json = "1.0.82" 16 | tracing = "0.1.36" 17 | tracing-subscriber = "0.3.15" 18 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/functions/api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "api" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [package.metadata.commands] 7 | dev = "bash -c \"source .env && cargo watch -x 'run --bin api'\"" 8 | 9 | [[bin]] 10 | name = "queue" 11 | path = "src/bin/queue.rs" 12 | 13 | [dependencies] 14 | actix-web = "4.1.0" 15 | aws-config = "0.46.0" 16 | aws-sdk-sqs = "0.16.0" 17 | lambda-web = { version = "0.2.0", features = ["actix4"] } 18 | lambda_runtime = "0.6.0" 19 | serde = "1.0.140" 20 | serde_json = "1.0.82" 21 | tokio = { version = "1.20.1", features = ["full"] } 22 | tracing = "0.1.36" 23 | tracing-subscriber = "0.3.15" 24 | -------------------------------------------------------------------------------- /rust-lambda-sqs/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | services: 3 | localstack: 4 | container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}" 5 | image: localstack/localstack 6 | ports: 7 | - "127.0.0.1:4566:4566" # LocalStack Gateway 8 | - "127.0.0.1:4510-4559:4510-4559" # external services port range 9 | environment: 10 | - DEBUG=${DEBUG-} 11 | - PERSISTENCE=${PERSISTENCE-} 12 | - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR-} 13 | - DOCKER_HOST=unix:///var/run/docker.sock 14 | volumes: 15 | - "${LOCALSTACK_VOLUME_DIR:-/tmp/volume}:/var/lib/localstack" 16 | - "/var/run/docker.sock:/var/run/docker.sock" 17 | -------------------------------------------------------------------------------- /rust-lambda/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | services: 3 | localstack: 4 | container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}" 5 | image: localstack/localstack 6 | ports: 7 | - "127.0.0.1:4566:4566" # LocalStack Gateway 8 | - "127.0.0.1:4510-4559:4510-4559" # external services port range 9 | environment: 10 | - DEBUG=${DEBUG-} 11 | - PERSISTENCE=${PERSISTENCE-} 12 | - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR-} 13 | - DOCKER_HOST=unix:///var/run/docker.sock 14 | volumes: 15 | - "${LOCALSTACK_VOLUME_DIR:-/tmp/volume}:/var/lib/localstack" 16 | - "/var/run/docker.sock:/var/run/docker.sock" 17 | -------------------------------------------------------------------------------- /rust-api-gateway-v1/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | services: 3 | localstack: 4 | container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}" 5 | image: localstack/localstack 6 | ports: 7 | - "127.0.0.1:4566:4566" # LocalStack Gateway 8 | - "127.0.0.1:4510-4559:4510-4559" # external services port range 9 | environment: 10 | - DEBUG=${DEBUG-} 11 | - PERSISTENCE=${PERSISTENCE-} 12 | - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR-} 13 | - DOCKER_HOST=unix:///var/run/docker.sock 14 | volumes: 15 | - "${LOCALSTACK_VOLUME_DIR:-/tmp/volume}:/var/lib/localstack" 16 | - "/var/run/docker.sock:/var/run/docker.sock" 17 | -------------------------------------------------------------------------------- /rust-api-gateway-v1-2/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | services: 3 | localstack: 4 | container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}" 5 | image: localstack/localstack 6 | ports: 7 | - "127.0.0.1:4566:4566" # LocalStack Gateway 8 | - "127.0.0.1:4510-4559:4510-4559" # external services port range 9 | environment: 10 | - DEBUG=${DEBUG-} 11 | - PERSISTENCE=${PERSISTENCE-} 12 | - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR-} 13 | - DOCKER_HOST=unix:///var/run/docker.sock 14 | volumes: 15 | - "${LOCALSTACK_VOLUME_DIR:-/tmp/volume}:/var/lib/localstack" 16 | - "/var/run/docker.sock:/var/run/docker.sock" 17 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | services: 3 | localstack: 4 | container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}" 5 | image: localstack/localstack 6 | ports: 7 | - "127.0.0.1:4566:4566" # LocalStack Gateway 8 | - "127.0.0.1:4510-4559:4510-4559" # external services port range 9 | environment: 10 | - DEBUG=${DEBUG-} 11 | - PERSISTENCE=${PERSISTENCE-} 12 | - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR-} 13 | - DOCKER_HOST=unix:///var/run/docker.sock 14 | volumes: 15 | - "${LOCALSTACK_VOLUME_DIR:-/tmp/volume}:/var/lib/localstack" 16 | - "/var/run/docker.sock:/var/run/docker.sock" 17 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | services: 3 | localstack: 4 | container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}" 5 | image: localstack/localstack 6 | ports: 7 | - "127.0.0.1:4566:4566" # LocalStack Gateway 8 | - "127.0.0.1:4510-4559:4510-4559" # external services port range 9 | environment: 10 | - DEBUG=${DEBUG-} 11 | - PERSISTENCE=${PERSISTENCE-} 12 | - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR-} 13 | - DOCKER_HOST=unix:///var/run/docker.sock 14 | volumes: 15 | - "${LOCALSTACK_VOLUME_DIR:-/tmp/volume}:/var/lib/localstack" 16 | - "/var/run/docker.sock:/var/run/docker.sock" 17 | -------------------------------------------------------------------------------- /rust-lambda/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "docker:up": "docker-compose up -d", 5 | "docker:up:logs": "yarn docker:up && docker-compose logs -f", 6 | "docker:down": "docker-compose down --timeout 30", 7 | "docker:destroy": "yarn docker:down --volumes --remove-orphans", 8 | "deploy:local": "serverless deploy --stage local", 9 | "deploy:dev": "serverless deploy --stage dev", 10 | "sls:destroy:local": "serverless remove --stage local", 11 | "sls:destroy:dev": "serverless remove --stage dev" 12 | }, 13 | "devDependencies": { 14 | "serverless": "3.19.0", 15 | "serverless-localstack": "0.4.36", 16 | "sls-rust": "0.2.1" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /rust-lambda-sqs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "docker:up": "docker-compose up -d", 5 | "docker:up:logs": "yarn docker:up && docker-compose logs -f", 6 | "docker:down": "docker-compose down --timeout 30", 7 | "docker:destroy": "yarn docker:down --volumes --remove-orphans", 8 | "deploy:local": "serverless deploy --stage local", 9 | "deploy:dev": "serverless deploy --stage dev", 10 | "sls:destroy:local": "serverless remove --stage local", 11 | "sls:destroy:dev": "serverless remove --stage dev" 12 | }, 13 | "devDependencies": { 14 | "serverless": "3.19.0", 15 | "serverless-localstack": "0.4.36", 16 | "sls-rust": "0.2.1" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /rust-api-gateway-v1-2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "docker:up": "docker-compose up -d", 5 | "docker:up:logs": "yarn docker:up && docker-compose logs -f", 6 | "docker:down": "docker-compose down --timeout 30", 7 | "docker:destroy": "yarn docker:down --volumes --remove-orphans", 8 | "deploy:local": "serverless deploy --stage local", 9 | "deploy:dev": "serverless deploy --stage dev", 10 | "sls:destroy:local": "serverless remove --stage local", 11 | "sls:destroy:dev": "serverless remove --stage dev" 12 | }, 13 | "devDependencies": { 14 | "serverless": "3.19.0", 15 | "serverless-localstack": "0.4.36", 16 | "sls-rust": "0.2.1" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /rust-api-gateway-v1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "docker:up": "docker-compose up -d", 5 | "docker:up:logs": "yarn docker:up && docker-compose logs -f", 6 | "docker:down": "docker-compose down --timeout 30", 7 | "docker:destroy": "yarn docker:down --volumes --remove-orphans", 8 | "deploy:local": "serverless deploy --stage local", 9 | "deploy:dev": "serverless deploy --stage dev", 10 | "sls:destroy:local": "serverless remove --stage local", 11 | "sls:destroy:dev": "serverless remove --stage dev" 12 | }, 13 | "devDependencies": { 14 | "serverless": "3.19.0", 15 | "serverless-localstack": "0.4.36", 16 | "sls-rust": "0.2.1" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "docker:up": "docker-compose up -d", 5 | "docker:up:logs": "yarn docker:up && docker-compose logs -f", 6 | "docker:down": "docker-compose down --timeout 30", 7 | "docker:destroy": "yarn docker:down --volumes --remove-orphans", 8 | "deploy:local": "serverless deploy --stage local", 9 | "deploy:dev": "serverless deploy --stage dev", 10 | "sls:destroy:local": "serverless remove --stage local", 11 | "sls:destroy:dev": "serverless remove --stage dev" 12 | }, 13 | "devDependencies": { 14 | "serverless": "3.19.0", 15 | "serverless-localstack": "1.0.0", 16 | "sls-rust": "0.2.1" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "docker:up": "docker-compose up -d", 5 | "docker:up:logs": "yarn docker:up && docker-compose logs -f", 6 | "docker:down": "docker-compose down --timeout 30", 7 | "docker:destroy": "yarn docker:down --volumes --remove-orphans", 8 | "deploy:local": "serverless deploy --stage local", 9 | "deploy:dev": "serverless deploy --stage dev", 10 | "sls:destroy:local": "serverless remove --stage local", 11 | "sls:destroy:dev": "serverless remove --stage dev" 12 | }, 13 | "devDependencies": { 14 | "serverless": "3.19.0", 15 | "serverless-localstack": "1.0.0", 16 | "sls-rust": "0.2.1" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /rust-lambda/serverless.yml: -------------------------------------------------------------------------------- 1 | service: rust-lambda 2 | frameworkVersion: '3' 3 | configValidationMode: error 4 | 5 | provider: 6 | name: aws 7 | memorySize: 128 8 | region: us-east-1 9 | 10 | iam: 11 | role: 12 | statements: 13 | - Effect: Allow 14 | Action: 15 | - lambda:* 16 | Resource: '*' 17 | 18 | environment: 19 | ENVIRONMENT: ${opt:stage, 'local'} 20 | 21 | package: 22 | individually: true 23 | 24 | functions: 25 | rust: 26 | handler: functions/api.api 27 | runtime: provided.al2 28 | tags: 29 | rust: true 30 | 31 | custom: 32 | # localstack 33 | localstack: 34 | stages: 35 | - local 36 | host: http://0.0.0.0 37 | 38 | plugins: 39 | - sls-rust 40 | - serverless-localstack 41 | -------------------------------------------------------------------------------- /rust-api-gateway-v2/serverless.yml: -------------------------------------------------------------------------------- 1 | service: rust-lambda 2 | frameworkVersion: '3' 3 | configValidationMode: error 4 | 5 | provider: 6 | name: aws 7 | memorySize: 128 8 | region: us-east-1 9 | httpApi: 10 | payload: '2.0' 11 | shouldStartNameWithService: true 12 | metrics: true 13 | cors: true 14 | 15 | iam: 16 | role: 17 | statements: 18 | - Effect: Allow 19 | Action: 20 | - lambda:* 21 | Resource: '*' 22 | 23 | environment: 24 | ENVIRONMENT: ${opt:stage, 'local'} 25 | 26 | package: 27 | individually: true 28 | 29 | functions: 30 | rust: 31 | handler: functions/api.api 32 | runtime: provided.al2 33 | tags: 34 | rust: true 35 | events: 36 | - httpApi: '*' 37 | 38 | plugins: 39 | - sls-rust 40 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/functions/api/src/lib.rs: -------------------------------------------------------------------------------- 1 | use aws_sdk_sqs::Endpoint; 2 | use lambda_web::actix_web::http::Uri; 3 | use tracing_subscriber; 4 | 5 | pub fn setup_logs() { 6 | match is_local() { 7 | true => tracing_subscriber::fmt::init(), 8 | false => tracing_subscriber::fmt().with_ansi(false).init(), 9 | }; 10 | } 11 | 12 | fn is_local() -> bool { 13 | match std::env::var("ENVIRONMENT") { 14 | Ok(value) => value == "local", 15 | Err(_) => false, 16 | } 17 | } 18 | 19 | pub fn is_running_on_lambda() -> bool { 20 | std::env::var("OFFLINE").is_err() 21 | } 22 | 23 | pub fn localstack_endpoint() -> Endpoint { 24 | Endpoint::immutable(Uri::from_static("http://localhost:4566")) 25 | } 26 | 27 | pub fn use_localstack() -> bool { 28 | std::env::var("LOCALSTACK").is_ok() 29 | } 30 | -------------------------------------------------------------------------------- /rust-api-gateway-v1/serverless.yml: -------------------------------------------------------------------------------- 1 | service: rust-lambda 2 | frameworkVersion: '3' 3 | configValidationMode: error 4 | 5 | provider: 6 | name: aws 7 | memorySize: 128 8 | region: us-east-1 9 | apiGateway: 10 | shouldStartNameWithService: true 11 | 12 | iam: 13 | role: 14 | statements: 15 | - Effect: Allow 16 | Action: 17 | - lambda:* 18 | Resource: '*' 19 | 20 | environment: 21 | ENVIRONMENT: ${opt:stage, 'local'} 22 | 23 | package: 24 | individually: true 25 | 26 | functions: 27 | rust: 28 | handler: functions/api.api 29 | runtime: provided.al2 30 | tags: 31 | rust: true 32 | events: 33 | - http: 34 | method: post 35 | path: hello 36 | cors: true 37 | 38 | custom: 39 | # localstack 40 | localstack: 41 | stages: 42 | - local 43 | host: http://0.0.0.0 44 | 45 | plugins: 46 | - sls-rust 47 | - serverless-localstack 48 | -------------------------------------------------------------------------------- /rust-api-gateway-v1-2/serverless.yml: -------------------------------------------------------------------------------- 1 | service: rust-lambda 2 | frameworkVersion: '3' 3 | configValidationMode: error 4 | 5 | provider: 6 | name: aws 7 | memorySize: 128 8 | region: us-east-1 9 | apiGateway: 10 | shouldStartNameWithService: true 11 | 12 | iam: 13 | role: 14 | statements: 15 | - Effect: Allow 16 | Action: 17 | - lambda:* 18 | Resource: '*' 19 | 20 | environment: 21 | ENVIRONMENT: ${opt:stage, 'local'} 22 | 23 | package: 24 | individually: true 25 | 26 | functions: 27 | rust: 28 | handler: functions/api.api 29 | runtime: provided.al2 30 | tags: 31 | rust: true 32 | events: 33 | - http: 34 | method: post 35 | path: hello 36 | cors: true 37 | 38 | custom: 39 | # localstack 40 | localstack: 41 | stages: 42 | - local 43 | host: http://0.0.0.0 44 | 45 | plugins: 46 | - sls-rust 47 | - serverless-localstack 48 | -------------------------------------------------------------------------------- /rust-lambda/functions/api/src/main.rs: -------------------------------------------------------------------------------- 1 | use lambda_runtime::{service_fn, Error as LambdaError, LambdaEvent}; 2 | use serde_json::{json, Value}; 3 | use tracing::info; 4 | use tracing_subscriber; 5 | 6 | #[tokio::main] 7 | async fn main() -> Result<(), LambdaError> { 8 | setup_logs(); 9 | let func = service_fn(handler); 10 | lambda_runtime::run(func).await?; 11 | Ok(()) 12 | } 13 | 14 | fn setup_logs() { 15 | match is_local() { 16 | true => tracing_subscriber::fmt::init(), 17 | false => tracing_subscriber::fmt().with_ansi(false).init(), 18 | } 19 | } 20 | 21 | fn is_local() -> bool { 22 | match std::env::var("ENVIRONMENT") { 23 | Ok(value) => value == "local", 24 | Err(_) => false, 25 | } 26 | } 27 | 28 | async fn handler(event: LambdaEvent) -> Result { 29 | let (event, _context) = event.into_parts(); 30 | let first_name = event["firstName"].as_str().unwrap_or("world"); 31 | info!("The first_name is {}", first_name); 32 | Ok(json!({ "message": format!("Hello, {}", first_name) })) 33 | } 34 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/functions/api/src/bin/queue.rs: -------------------------------------------------------------------------------- 1 | use lambda_runtime::{service_fn, Error as LambdaError, LambdaEvent}; 2 | use serde::Deserialize; 3 | use serde_json::{json, Value}; 4 | use tracing::info; 5 | 6 | #[tokio::main] 7 | async fn main() -> Result<(), LambdaError> { 8 | api::setup_logs(); 9 | let func = service_fn(handler); 10 | lambda_runtime::run(func).await?; 11 | Ok(()) 12 | } 13 | 14 | #[derive(Debug, Deserialize)] 15 | struct Body { 16 | first_name: String, 17 | } 18 | 19 | #[derive(Deserialize)] 20 | struct Record { 21 | body: String, 22 | } 23 | 24 | #[derive(Deserialize)] 25 | struct Event { 26 | #[serde(rename = "Records")] 27 | records: Vec, 28 | } 29 | 30 | async fn handler(data: LambdaEvent) -> Result { 31 | let (event, _context) = data.into_parts(); 32 | let body = match serde_json::from_str::(&event.records[0].body) { 33 | Ok(body) => body, 34 | Err(error) => return Err(Box::new(error)), 35 | }; 36 | info!("BODY: {:?}", body); 37 | Ok(json!({ "message": format!("Hello, {}", body.first_name) })) 38 | } 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Rust Serverless Examples 2 | 3 | All examples live in their own directories: 4 | 5 | - [project](/project): there is nothing here, just a simple `cargo new project_name` with a custom `rustfmt.toml` and `.editorconfig`. 6 | - [rust-lambda](/rust-lambda): the minimum configuration you need to run rust on a lambda 7 | - [rust-api-gateway-v1](/rust-api-gateway-v1): rust in a lambda with api gateway v1 in front of it 8 | - [rust-api-gateway-v1-2](/rust-api-gateway-v1-2): a simpler implementation of rust in a lambda with api gateway v1 in front of it 9 | - [rust-api-gateway-v2](/rust-api-gateway-v2): rust in a lambda with api gateway v2 in front of it, using a rest API + local server 10 | - [rust-lambda-sqs](/rust-lambda-sqs): rust in a lambda awaiting for an sqs event 11 | - [rust-api-gateway-v2-sqs](/rust-api-gateway-v2-sqs): rust in a lambda with api gateway v2 in front of it sending a message to an sqs queue 12 | - [rust-api-gateway-v2-sqs-2](/rust-api-gateway-v2-sqs-2): rust in a lambda with api gateway v2 in front of it sending a message to an sqs queue. Two lambdas, but only one Rust project. 13 | - [rust-api-gateway-v2-graphql (TODO)](/): rust in a lambda with api gateway v2 in front of it, using a graphql API 14 | 15 | # License 16 | 17 | MIT 18 | -------------------------------------------------------------------------------- /rust-lambda-sqs/serverless.yml: -------------------------------------------------------------------------------- 1 | service: rust-lambda 2 | frameworkVersion: '3' 3 | configValidationMode: error 4 | 5 | provider: 6 | name: aws 7 | memorySize: 128 8 | region: us-east-1 9 | 10 | iam: 11 | role: 12 | statements: 13 | - Effect: Allow 14 | Action: 15 | - lambda:* 16 | - sqs:* 17 | Resource: '*' 18 | 19 | environment: 20 | ENVIRONMENT: ${opt:stage, 'local'} 21 | 22 | package: 23 | individually: true 24 | 25 | functions: 26 | rust: 27 | handler: functions/api.api 28 | runtime: provided.al2 29 | tags: 30 | rust: true 31 | events: 32 | - sqs: 33 | arn: 34 | Fn::GetAtt: 35 | - SQSHooks 36 | - Arn 37 | 38 | resources: 39 | Resources: 40 | SQSHooks: 41 | Type: AWS::SQS::Queue 42 | Properties: 43 | RedrivePolicy: 44 | deadLetterTargetArn: !GetAtt DeadLetterMessagesQueue.Arn 45 | maxReceiveCount: 3 46 | VisibilityTimeout: 60 47 | 48 | DeadLetterMessagesQueue: 49 | Type: AWS::SQS::Queue 50 | Properties: 51 | # Seven days 52 | MessageRetentionPeriod: 604800 53 | 54 | custom: 55 | # localstack 56 | localstack: 57 | stages: 58 | - local 59 | host: http://0.0.0.0 60 | 61 | plugins: 62 | - sls-rust 63 | - serverless-localstack 64 | -------------------------------------------------------------------------------- /rust-api-gateway-v1/functions/api/src/main.rs: -------------------------------------------------------------------------------- 1 | use aws_lambda_events::encodings::Body; 2 | use aws_lambda_events::event::apigw::{ 3 | ApiGatewayProxyRequest, 4 | ApiGatewayProxyResponse, 5 | }; 6 | use http::header::HeaderMap; 7 | use lambda_runtime::{service_fn, Error as LambdaError, LambdaEvent}; 8 | use tracing::info; 9 | use tracing_subscriber; 10 | 11 | #[tokio::main] 12 | async fn main() -> Result<(), LambdaError> { 13 | setup_logs(); 14 | let func = service_fn(handler); 15 | lambda_runtime::run(func).await?; 16 | Ok(()) 17 | } 18 | 19 | fn setup_logs() { 20 | match is_local() { 21 | true => tracing_subscriber::fmt::init(), 22 | false => tracing_subscriber::fmt().with_ansi(false).init(), 23 | }; 24 | } 25 | 26 | fn is_local() -> bool { 27 | match std::env::var("ENVIRONMENT") { 28 | Ok(value) => value == "local", 29 | Err(_) => false, 30 | } 31 | } 32 | 33 | async fn handler( 34 | event: LambdaEvent, 35 | ) -> Result { 36 | let (event, _context) = event.into_parts(); 37 | let data = event.body.unwrap_or(String::from("{}")); 38 | let resp = ApiGatewayProxyResponse { 39 | status_code: 200, 40 | headers: HeaderMap::new(), 41 | multi_value_headers: HeaderMap::new(), 42 | body: Some(Body::Text(format!("Data: {}", data))), 43 | is_base64_encoded: Some(false), 44 | }; 45 | 46 | info!("Response: {:?}", resp); 47 | Ok(resp) 48 | } 49 | -------------------------------------------------------------------------------- /rust-lambda-sqs/functions/api/src/main.rs: -------------------------------------------------------------------------------- 1 | use lambda_runtime::{service_fn, Error as LambdaError, LambdaEvent}; 2 | use serde::Deserialize; 3 | use serde_json::{json, Value}; 4 | use tracing::info; 5 | use tracing_subscriber; 6 | 7 | #[tokio::main] 8 | async fn main() -> Result<(), LambdaError> { 9 | setup_logs(); 10 | let func = service_fn(handler); 11 | lambda_runtime::run(func).await?; 12 | Ok(()) 13 | } 14 | 15 | fn setup_logs() { 16 | match is_local() { 17 | true => tracing_subscriber::fmt::init(), 18 | false => tracing_subscriber::fmt().with_ansi(false).init(), 19 | } 20 | } 21 | 22 | fn is_local() -> bool { 23 | match std::env::var("ENVIRONMENT") { 24 | Ok(value) => value == "local", 25 | Err(_) => false, 26 | } 27 | } 28 | 29 | #[derive(Debug, Deserialize)] 30 | struct Body { 31 | first_name: String, 32 | } 33 | 34 | #[derive(Deserialize)] 35 | struct Record { 36 | body: String, 37 | } 38 | 39 | #[derive(Deserialize)] 40 | struct Event { 41 | #[serde(rename = "Records")] 42 | records: Vec, 43 | } 44 | 45 | async fn handler(data: LambdaEvent) -> Result { 46 | let (event, _context) = data.into_parts(); 47 | let body = match serde_json::from_str::(&event.records[0].body) { 48 | Ok(body) => body, 49 | Err(error) => return Err(Box::new(error)), 50 | }; 51 | info!("BODY: {:?}", body); 52 | Ok(json!({ "message": format!("Hello, {}", body.first_name) })) 53 | } 54 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/functions/queue/src/main.rs: -------------------------------------------------------------------------------- 1 | use lambda_runtime::{service_fn, Error as LambdaError, LambdaEvent}; 2 | use serde::Deserialize; 3 | use serde_json::{json, Value}; 4 | use tracing::info; 5 | use tracing_subscriber; 6 | 7 | #[tokio::main] 8 | async fn main() -> Result<(), LambdaError> { 9 | setup_logs(); 10 | let func = service_fn(handler); 11 | lambda_runtime::run(func).await?; 12 | Ok(()) 13 | } 14 | 15 | fn setup_logs() { 16 | match is_local() { 17 | true => tracing_subscriber::fmt::init(), 18 | false => tracing_subscriber::fmt().with_ansi(false).init(), 19 | } 20 | } 21 | 22 | fn is_local() -> bool { 23 | match std::env::var("ENVIRONMENT") { 24 | Ok(value) => value == "local", 25 | Err(_) => false, 26 | } 27 | } 28 | 29 | #[derive(Debug, Deserialize)] 30 | struct Body { 31 | first_name: String, 32 | } 33 | 34 | #[derive(Deserialize)] 35 | struct Record { 36 | body: String, 37 | } 38 | 39 | #[derive(Deserialize)] 40 | struct Event { 41 | #[serde(rename = "Records")] 42 | records: Vec, 43 | } 44 | 45 | async fn handler(data: LambdaEvent) -> Result { 46 | let (event, _context) = data.into_parts(); 47 | let body = match serde_json::from_str::(&event.records[0].body) { 48 | Ok(body) => body, 49 | Err(error) => return Err(Box::new(error)), 50 | }; 51 | info!("BODY: {:?}", body); 52 | Ok(json!({ "message": format!("Hello, {}", body.first_name) })) 53 | } 54 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/serverless.yml: -------------------------------------------------------------------------------- 1 | service: rust-lambda 2 | frameworkVersion: '3' 3 | configValidationMode: error 4 | 5 | provider: 6 | name: aws 7 | memorySize: 128 8 | region: us-east-1 9 | httpApi: 10 | payload: '2.0' 11 | shouldStartNameWithService: true 12 | metrics: true 13 | cors: true 14 | 15 | iam: 16 | role: 17 | statements: 18 | - Effect: Allow 19 | Action: 20 | - lambda:* 21 | - sqs:* 22 | Resource: '*' 23 | 24 | environment: 25 | ENVIRONMENT: ${opt:stage, 'local'} 26 | SQS_HOOKS_URL: { Ref: SQSHooks } 27 | 28 | package: 29 | individually: true 30 | 31 | functions: 32 | rust: 33 | handler: functions/api.api 34 | runtime: provided.al2 35 | tags: 36 | rust: true 37 | events: 38 | - httpApi: '*' 39 | 40 | queueHandler: 41 | handler: functions/api.queue 42 | runtime: provided.al2 43 | tags: 44 | rust: true 45 | events: 46 | - sqs: 47 | arn: 48 | Fn::GetAtt: 49 | - SQSHooks 50 | - Arn 51 | 52 | resources: 53 | Resources: 54 | SQSHooks: 55 | Type: AWS::SQS::Queue 56 | Properties: 57 | RedrivePolicy: 58 | deadLetterTargetArn: !GetAtt DeadLetterMessagesQueue.Arn 59 | maxReceiveCount: 3 60 | VisibilityTimeout: 60 61 | 62 | DeadLetterMessagesQueue: 63 | Type: AWS::SQS::Queue 64 | Properties: 65 | # Seven days 66 | MessageRetentionPeriod: 604800 67 | 68 | plugins: 69 | - sls-rust 70 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/serverless.yml: -------------------------------------------------------------------------------- 1 | service: rust-lambda 2 | frameworkVersion: '3' 3 | configValidationMode: error 4 | 5 | provider: 6 | name: aws 7 | memorySize: 128 8 | region: us-east-1 9 | httpApi: 10 | payload: '2.0' 11 | shouldStartNameWithService: true 12 | metrics: true 13 | cors: true 14 | 15 | iam: 16 | role: 17 | statements: 18 | - Effect: Allow 19 | Action: 20 | - lambda:* 21 | - sqs:* 22 | Resource: '*' 23 | 24 | environment: 25 | ENVIRONMENT: ${opt:stage, 'local'} 26 | SQS_HOOKS_URL: { Ref: SQSHooks } 27 | 28 | package: 29 | individually: true 30 | 31 | functions: 32 | rust: 33 | handler: functions/api.api 34 | runtime: provided.al2 35 | tags: 36 | rust: true 37 | events: 38 | - httpApi: '*' 39 | 40 | queueHandler: 41 | handler: functions/queue.queue 42 | runtime: provided.al2 43 | tags: 44 | rust: true 45 | events: 46 | - sqs: 47 | arn: 48 | Fn::GetAtt: 49 | - SQSHooks 50 | - Arn 51 | 52 | resources: 53 | Resources: 54 | SQSHooks: 55 | Type: AWS::SQS::Queue 56 | Properties: 57 | RedrivePolicy: 58 | deadLetterTargetArn: !GetAtt DeadLetterMessagesQueue.Arn 59 | maxReceiveCount: 3 60 | VisibilityTimeout: 60 61 | 62 | DeadLetterMessagesQueue: 63 | Type: AWS::SQS::Queue 64 | Properties: 65 | # Seven days 66 | MessageRetentionPeriod: 604800 67 | 68 | plugins: 69 | - sls-rust 70 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/serverless.local.yml: -------------------------------------------------------------------------------- 1 | service: rust-lambda 2 | frameworkVersion: '3' 3 | configValidationMode: error 4 | 5 | provider: 6 | name: aws 7 | memorySize: 128 8 | region: us-east-1 9 | apiGateway: 10 | shouldStartNameWithService: true 11 | 12 | iam: 13 | role: 14 | statements: 15 | - Effect: Allow 16 | Action: 17 | - lambda:* 18 | - sqs:* 19 | Resource: '*' 20 | 21 | environment: 22 | ENVIRONMENT: ${opt:stage, 'local'} 23 | SQS_HOOKS_URL: { Ref: SQSHooks } 24 | 25 | package: 26 | individually: true 27 | 28 | functions: 29 | rust: 30 | handler: functions/api.api 31 | runtime: provided.al2 32 | tags: 33 | rust: true 34 | events: 35 | - http: 36 | method: post 37 | path: hello 38 | cors: true 39 | 40 | queueHandler: 41 | handler: functions/api.queue 42 | runtime: provided.al2 43 | tags: 44 | rust: true 45 | events: 46 | - sqs: 47 | arn: 48 | Fn::GetAtt: 49 | - SQSHooks 50 | - Arn 51 | 52 | resources: 53 | Resources: 54 | SQSHooks: 55 | Type: AWS::SQS::Queue 56 | Properties: 57 | RedrivePolicy: 58 | deadLetterTargetArn: !GetAtt DeadLetterMessagesQueue.Arn 59 | maxReceiveCount: 3 60 | VisibilityTimeout: 60 61 | 62 | DeadLetterMessagesQueue: 63 | Type: AWS::SQS::Queue 64 | Properties: 65 | # Seven days 66 | MessageRetentionPeriod: 604800 67 | 68 | custom: 69 | # localstack 70 | localstack: 71 | stages: 72 | - local 73 | host: http://0.0.0.0 74 | 75 | plugins: 76 | - sls-rust 77 | - serverless-localstack 78 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/serverless.local.yml: -------------------------------------------------------------------------------- 1 | service: rust-lambda 2 | frameworkVersion: '3' 3 | configValidationMode: error 4 | 5 | provider: 6 | name: aws 7 | memorySize: 128 8 | region: us-east-1 9 | apiGateway: 10 | shouldStartNameWithService: true 11 | 12 | iam: 13 | role: 14 | statements: 15 | - Effect: Allow 16 | Action: 17 | - lambda:* 18 | - sqs:* 19 | Resource: '*' 20 | 21 | environment: 22 | ENVIRONMENT: ${opt:stage, 'local'} 23 | SQS_HOOKS_URL: { Ref: SQSHooks } 24 | 25 | package: 26 | individually: true 27 | 28 | functions: 29 | rust: 30 | handler: functions/api.api 31 | runtime: provided.al2 32 | tags: 33 | rust: true 34 | events: 35 | - http: 36 | method: post 37 | path: hello 38 | cors: true 39 | 40 | queueHandler: 41 | handler: functions/queue.queue 42 | runtime: provided.al2 43 | tags: 44 | rust: true 45 | events: 46 | - sqs: 47 | arn: 48 | Fn::GetAtt: 49 | - SQSHooks 50 | - Arn 51 | 52 | resources: 53 | Resources: 54 | SQSHooks: 55 | Type: AWS::SQS::Queue 56 | Properties: 57 | RedrivePolicy: 58 | deadLetterTargetArn: !GetAtt DeadLetterMessagesQueue.Arn 59 | maxReceiveCount: 3 60 | VisibilityTimeout: 60 61 | 62 | DeadLetterMessagesQueue: 63 | Type: AWS::SQS::Queue 64 | Properties: 65 | # Seven days 66 | MessageRetentionPeriod: 604800 67 | 68 | custom: 69 | # localstack 70 | localstack: 71 | stages: 72 | - local 73 | host: http://0.0.0.0 74 | 75 | plugins: 76 | - sls-rust 77 | - serverless-localstack 78 | -------------------------------------------------------------------------------- /rust-api-gateway-v2/functions/api/src/main.rs: -------------------------------------------------------------------------------- 1 | use lambda_web::actix_web::{ 2 | get, 3 | post, 4 | web, 5 | App, 6 | HttpResponse, 7 | HttpServer, 8 | Responder, 9 | }; 10 | use lambda_web::{run_actix_on_lambda, LambdaError}; 11 | use serde::{Deserialize, Serialize}; 12 | use tracing::info; 13 | use tracing_subscriber; 14 | 15 | #[actix_web::main] 16 | async fn main() -> Result<(), LambdaError> { 17 | setup_logs(); 18 | let factory = || App::new().service(hello_handler).service(create_user); 19 | 20 | match is_running_on_lambda() { 21 | true => run_actix_on_lambda(factory).await?, 22 | false => { 23 | let port = 3008; 24 | info!("Server is running on http://localhost:{}", port); 25 | HttpServer::new(factory) 26 | .bind(("127.0.0.1", port))? 27 | .run() 28 | .await? 29 | } 30 | }; 31 | 32 | Ok(()) 33 | } 34 | 35 | fn setup_logs() { 36 | match is_local() { 37 | true => tracing_subscriber::fmt::init(), 38 | false => tracing_subscriber::fmt().with_ansi(false).init(), 39 | } 40 | } 41 | 42 | fn is_local() -> bool { 43 | match std::env::var("ENVIRONMENT") { 44 | Ok(value) => value == "local", 45 | Err(_) => false, 46 | } 47 | } 48 | 49 | fn is_running_on_lambda() -> bool { 50 | std::env::var("OFFLINE").is_err() 51 | } 52 | 53 | #[get("/")] 54 | async fn hello_handler() -> impl Responder { 55 | HttpResponse::Ok().body("Hello Rust!") 56 | } 57 | 58 | #[derive(Debug, Serialize, Deserialize)] 59 | struct UserData { 60 | first_name: String, 61 | last_name: String, 62 | } 63 | 64 | #[post("/user")] 65 | async fn create_user(json: web::Json) -> impl Responder { 66 | info!("CREATE_USER: User data: {:?}", json); 67 | HttpResponse::Ok().json(&json) 68 | } 69 | -------------------------------------------------------------------------------- /rust-api-gateway-v1-2/functions/api/src/main.rs: -------------------------------------------------------------------------------- 1 | use lambda_http::{ 2 | service_fn, 3 | Body, 4 | Error as LambdaError, 5 | IntoResponse, 6 | Request, 7 | }; 8 | use serde::Deserialize; 9 | use serde_json::{json, Value}; 10 | use tracing::{error, info}; 11 | use tracing_subscriber; 12 | 13 | #[tokio::main] 14 | async fn main() -> Result<(), LambdaError> { 15 | setup_logs(); 16 | let func = service_fn(handler); 17 | lambda_http::run(func).await?; 18 | Ok(()) 19 | } 20 | 21 | fn setup_logs() { 22 | match is_local() { 23 | true => tracing_subscriber::fmt::init(), 24 | false => tracing_subscriber::fmt().with_ansi(false).init(), 25 | } 26 | } 27 | 28 | fn is_local() -> bool { 29 | match std::env::var("ENVIRONMENT") { 30 | Ok(value) => value == "local", 31 | Err(_) => false, 32 | } 33 | } 34 | 35 | async fn handler(request: Request) -> Result { 36 | match request.body() { 37 | Body::Text(value) => match serde_json::from_str::(value) { 38 | Ok(data) => Ok(fn_data(&data)), 39 | Err(error) => { 40 | error!("ERROR: {}", error.to_string()); 41 | Ok(json!({ 42 | "error": true, 43 | "message": format!("Deserialization error: {}", error.to_string()) 44 | })) 45 | } 46 | }, 47 | _ => { 48 | error!("ERROR: Unknown error"); 49 | Ok(json!({ "error": true, "message": "Unknown error" })) 50 | } 51 | } 52 | } 53 | 54 | #[derive(Debug, Deserialize)] 55 | struct UserData { 56 | first_name: String, 57 | last_name: String, 58 | } 59 | 60 | fn fn_data(data: &UserData) -> Value { 61 | info!("INFO: UserData: {:?}", data); 62 | json!({ 63 | "message": format!("The name is {} {}", data.first_name, data.last_name) 64 | }) 65 | } 66 | -------------------------------------------------------------------------------- /rust-lambda/README.md: -------------------------------------------------------------------------------- 1 | # Rust Lambda 2 | 3 | ## Global Dependencies 4 | 5 | - Node.js 6 | - NPM / Yarn 7 | - Rust 8 | - Cargo 9 | - x86_64-unknown-linux-musl (*) 10 | - Docker 11 | - Docker Compose 12 | 13 | ## x86_64-unknown-linux-musl Installation 14 | 15 | **If you are going to build this project locally**, in order to build the project 16 | properly to use in AWS Lambda, its expected that you install the 17 | `x86_64-unknown-linux-musl` target on all platforms with: 18 | 19 | ``` 20 | $ rustup target add x86_64-unknown-linux-musl 21 | ``` 22 | 23 | On **Linux** platforms, you will need to install `musl-tools` 24 | 25 | On **Mac OSX**, you will need to install a MUSL cross compilation toolchain: 26 | 27 | ``` 28 | $ brew install filosottile/musl-cross/musl-cross 29 | ``` 30 | 31 | ## Install 32 | 33 | In the root of the project, install Node.js dependencies: 34 | 35 | ``` 36 | yarn 37 | ``` 38 | 39 | In the `functions/api` directory, install Rust dependencies (only if you want to modify something on Rust project): 40 | 41 | ``` 42 | cargo build 43 | ``` 44 | 45 | ## Deploy 46 | 47 | To configure localstack locally, put this configuration on your `~/.aws/credentials`: 48 | 49 | ``` 50 | [default] 51 | aws_access_key_id = temp 52 | aws_secret_access_key = temp 53 | ``` 54 | 55 | Get localstack up and running: 56 | 57 | ``` 58 | yarn docker:up:logs 59 | ``` 60 | 61 | Use env var `DEBUG=1` to see all logs: 62 | 63 | ``` 64 | DEBUG=1 yarn docker:up:logs 65 | ``` 66 | 67 | After that, deploy with the command: 68 | 69 | ``` 70 | yarn deploy:local 71 | ``` 72 | 73 | ## Invoke function 74 | 75 | To invoke the function, execute: 76 | 77 | ``` 78 | yarn serverless invoke -f rust --stage local 79 | ``` 80 | 81 | You should see the response: 82 | 83 | ``` 84 | { 85 | "message": "Hello, world" 86 | } 87 | ``` 88 | 89 | To pass arguments to the lambda function, run: 90 | 91 | ``` 92 | yarn serverless invoke -f rust --stage local -d '{"firstName": "John"}' 93 | ``` 94 | 95 | You should see the response: 96 | 97 | ``` 98 | { 99 | "message": "Hello, Jhon" 100 | } 101 | ``` 102 | 103 | # License 104 | 105 | MIT 106 | -------------------------------------------------------------------------------- /rust-api-gateway-v1/README.md: -------------------------------------------------------------------------------- 1 | # Rust API Gateway v1 + Lambda 2 | 3 | ## Global Dependencies 4 | 5 | - Node.js 6 | - NPM / Yarn 7 | - Rust 8 | - Cargo 9 | - x86_64-unknown-linux-musl (*) 10 | - Docker 11 | - Docker Compose 12 | 13 | ## x86_64-unknown-linux-musl Installation 14 | 15 | **If you are going to build this project locally**, in order to build the project 16 | properly to use in AWS Lambda, its expected that you install the 17 | `x86_64-unknown-linux-musl` target on all platforms with: 18 | 19 | ``` 20 | $ rustup target add x86_64-unknown-linux-musl 21 | ``` 22 | 23 | On **Linux** platforms, you will need to install `musl-tools` 24 | 25 | On **Mac OSX**, you will need to install a MUSL cross compilation toolchain: 26 | 27 | ``` 28 | $ brew install filosottile/musl-cross/musl-cross 29 | ``` 30 | 31 | ## Install 32 | 33 | In the root of the project, install Node.js dependencies: 34 | 35 | ``` 36 | yarn 37 | ``` 38 | 39 | In the `functions/api` directory, install Rust dependencies (only if you want to modify something on Rust project): 40 | 41 | ``` 42 | cargo build 43 | ``` 44 | 45 | ## Deploy 46 | 47 | To configure localstack locally, put this configuration on your `~/.aws/credentials`: 48 | 49 | ``` 50 | [default] 51 | aws_access_key_id = temp 52 | aws_secret_access_key = temp 53 | ``` 54 | 55 | Get localstack up and running: 56 | 57 | ``` 58 | yarn docker:up:logs 59 | ``` 60 | 61 | Use env var `DEBUG=1` to see all logs: 62 | 63 | ``` 64 | DEBUG=1 yarn docker:up:logs 65 | ``` 66 | 67 | After that, deploy with the command: 68 | 69 | ``` 70 | yarn deploy:local 71 | ``` 72 | 73 | ## Request data from API 74 | 75 | To make a request, get the URL given from localstack + the `path` set in 76 | `serverless.yml` (`/hello`, in this case) and use curl: 77 | 78 | ``` 79 | curl -i -X POST http://localhost:4566/restapis/SOME_ID/local/_user_request_/hello 80 | ``` 81 | 82 | You should see the response: 83 | 84 | ``` 85 | Data: {}% 86 | ``` 87 | 88 | To make a request with arguments, you can use the method `POST`: 89 | 90 | ``` 91 | curl -i -X POST http://localhost:4566/restapis/SOME_ID/local/_user_request_/hello -H 'Content-Type: application/json' -d '{"message": "hi"}' 92 | ``` 93 | 94 | You should see the response: 95 | 96 | ``` 97 | Data: {"message": "hi"}% 98 | ``` 99 | 100 | # License 101 | 102 | MIT 103 | -------------------------------------------------------------------------------- /rust-lambda-sqs/README.md: -------------------------------------------------------------------------------- 1 | # Rust Lambda + SQS 2 | 3 | ## Global Dependencies 4 | 5 | - Node.js 6 | - NPM / Yarn 7 | - Rust 8 | - Cargo 9 | - x86_64-unknown-linux-musl (*) 10 | - Docker 11 | - Docker Compose 12 | - AWS CLI 13 | 14 | ## x86_64-unknown-linux-musl Installation 15 | 16 | **If you are going to build this project locally**, in order to build the project 17 | properly to use in AWS Lambda, its expected that you install the 18 | `x86_64-unknown-linux-musl` target on all platforms with: 19 | 20 | ``` 21 | $ rustup target add x86_64-unknown-linux-musl 22 | ``` 23 | 24 | On **Linux** platforms, you will need to install `musl-tools` 25 | 26 | On **Mac OSX**, you will need to install a MUSL cross compilation toolchain: 27 | 28 | ``` 29 | $ brew install filosottile/musl-cross/musl-cross 30 | ``` 31 | 32 | ## Install 33 | 34 | In the root of the project, install Node.js dependencies: 35 | 36 | ``` 37 | yarn 38 | ``` 39 | 40 | In the `functions/api` directory, install Rust dependencies (only if you want to modify something on Rust project): 41 | 42 | ``` 43 | cargo build 44 | ``` 45 | 46 | ## Deploy 47 | 48 | To configure localstack locally, put this configuration on your `~/.aws/credentials`: 49 | 50 | ``` 51 | [default] 52 | aws_access_key_id = temp 53 | aws_secret_access_key = temp 54 | ``` 55 | 56 | Get localstack up and running: 57 | 58 | ``` 59 | yarn docker:up:logs 60 | ``` 61 | 62 | Use env var `DEBUG=1` to see all logs: 63 | 64 | ``` 65 | DEBUG=1 yarn docker:up:logs 66 | ``` 67 | 68 | After that, deploy with the command: 69 | 70 | ``` 71 | yarn deploy:local 72 | ``` 73 | 74 | ## Send message 75 | 76 | To send message to SQS, first you must get the URL of the queue: 77 | 78 | ``` 79 | aws --endpoint-url=http://localhost:4566 sqs list-queues 80 | ``` 81 | 82 | You are going to see two URLs: the SQSHooks and the DeadLetter. 83 | Copy the URL of the SQSHooks queue, and execute the following command switching 84 | `` to URL you got: 85 | 86 | ``` 87 | aws --endpoint-url=http://localhost:4566 sqs send-message --queue-url --message-body '{"first_name": "John"}' 88 | ``` 89 | 90 | You should see the response: 91 | 92 | ``` 93 | { 94 | "MD5OfMessageBody": "", 95 | "MessageId": "" 96 | } 97 | ``` 98 | 99 | And in the docker logs, you should see the logs from lambda function: 100 | 101 | ``` 102 | INFO api: BODY: Body { first_name: "John" } 103 | ``` 104 | 105 | # License 106 | 107 | MIT 108 | -------------------------------------------------------------------------------- /rust-api-gateway-v1-2/README.md: -------------------------------------------------------------------------------- 1 | # Rust API Gateway v1 + Lambda 2 | 3 | A simpler implementation of rust in a lambda with api gateway v1 in front of it 4 | 5 | ## Global Dependencies 6 | 7 | - Node.js 8 | - NPM / Yarn 9 | - Rust 10 | - Cargo 11 | - x86_64-unknown-linux-musl (*) 12 | - Docker 13 | - Docker Compose 14 | 15 | ## x86_64-unknown-linux-musl Installation 16 | 17 | **If you are going to build this project locally**, in order to build the project 18 | properly to use in AWS Lambda, its expected that you install the 19 | `x86_64-unknown-linux-musl` target on all platforms with: 20 | 21 | ``` 22 | $ rustup target add x86_64-unknown-linux-musl 23 | ``` 24 | 25 | On **Linux** platforms, you will need to install `musl-tools` 26 | 27 | On **Mac OSX**, you will need to install a MUSL cross compilation toolchain: 28 | 29 | ``` 30 | $ brew install filosottile/musl-cross/musl-cross 31 | ``` 32 | 33 | ## Install 34 | 35 | In the root of the project, install Node.js dependencies: 36 | 37 | ``` 38 | yarn 39 | ``` 40 | 41 | In the `functions/api` directory, install Rust dependencies (only if you want to modify something on Rust project): 42 | 43 | ``` 44 | cargo build 45 | ``` 46 | 47 | ## Deploy 48 | 49 | To configure localstack locally, put this configuration on your `~/.aws/credentials`: 50 | 51 | ``` 52 | [default] 53 | aws_access_key_id = temp 54 | aws_secret_access_key = temp 55 | ``` 56 | 57 | Get localstack up and running: 58 | 59 | ``` 60 | yarn docker:up:logs 61 | ``` 62 | 63 | Use env var `DEBUG=1` to see all logs: 64 | 65 | ``` 66 | DEBUG=1 yarn docker:up:logs 67 | ``` 68 | 69 | After that, deploy with the command: 70 | 71 | ``` 72 | yarn deploy:local 73 | ``` 74 | 75 | ## Request data from API 76 | 77 | To make a request, get the URL given from localstack + the `path` set in 78 | `serverless.yml` (`/hello`, in this case) and use curl: 79 | 80 | ``` 81 | curl -i -X POST http://localhost:4566/restapis/SOME_ID/local/_user_request_/hello -H 'Content-Type: application/json' -d '{"first_name": "John", "last_name": "Doe"}' 82 | ``` 83 | 84 | You should see the response: 85 | 86 | ``` 87 | Data: {"message": "The name is John Doe"}% 88 | ``` 89 | 90 | The data is being validated with serde. If you don't pass some of the required 91 | keys (`first_name` or `last_name` in this case), you will see an error message. 92 | 93 | Try calling without `last_name`, for example: 94 | 95 | ``` 96 | curl -i -X POST http://localhost:4566/restapis/SOME_ID/local/_user_request_/hello -H 'Content-Type: application/json' -d '{"first_name": "John"}' 97 | ``` 98 | 99 | You should see the response: 100 | 101 | ``` 102 | {"error":true,"message":"Deserialization error: missing field `last_name` at line 1 column 49"}% 103 | ``` 104 | 105 | # License 106 | 107 | MIT 108 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/functions/api/src/main.rs: -------------------------------------------------------------------------------- 1 | use aws_sdk_sqs::Client; 2 | use lambda_web::actix_web::{ 3 | get, 4 | post, 5 | web, 6 | App, 7 | HttpResponse, 8 | HttpServer, 9 | Responder, 10 | }; 11 | use lambda_web::{run_actix_on_lambda, LambdaError}; 12 | use serde::{Deserialize, Serialize}; 13 | use tracing::{error, info}; 14 | 15 | #[actix_web::main] 16 | async fn main() -> Result<(), LambdaError> { 17 | api::setup_logs(); 18 | let factory = || App::new().service(hello_handler).service(create_user); 19 | 20 | match api::is_running_on_lambda() { 21 | true => run_actix_on_lambda(factory).await?, 22 | false => { 23 | let port = 3008; 24 | info!("Server is running on http://localhost:{}", port); 25 | HttpServer::new(factory) 26 | .bind(("127.0.0.1", port))? 27 | .run() 28 | .await? 29 | } 30 | }; 31 | 32 | Ok(()) 33 | } 34 | 35 | #[get("/")] 36 | async fn hello_handler() -> impl Responder { 37 | HttpResponse::Ok().body("Hello Rust!") 38 | } 39 | 40 | #[derive(Debug, Serialize, Deserialize)] 41 | struct UserData { 42 | first_name: String, 43 | last_name: String, 44 | } 45 | 46 | #[post("/user")] 47 | async fn create_user(json: web::Json) -> impl Responder { 48 | info!("CREATE_USER: User data: {:?}", json); 49 | let client = get_sqs_client().await; 50 | let queue_url = get_queue_url().await.expect("Queue URL not found"); 51 | let body = format!( 52 | "{{ \"first_name\": \"{}\", \"last_name\": \"{}\" }}", 53 | json.first_name, json.last_name 54 | ); 55 | info!("Body to send: {}", body); 56 | let response = client 57 | .send_message() 58 | .queue_url(queue_url) 59 | .message_body(body) 60 | .send() 61 | .await; 62 | 63 | info!("Message response: {:?}", response); 64 | HttpResponse::Ok().json(&json) 65 | } 66 | 67 | async fn get_queue_url() -> Result> { 68 | match std::env::var("SQS_HOOKS_URL") { 69 | Ok(value) => { 70 | info!("SQS_HOOKS_URL: {}", value); 71 | Ok(value) 72 | } 73 | _ => get_queue_url_local().await, 74 | } 75 | } 76 | 77 | async fn get_queue_url_local() -> Result> { 78 | let client = get_sqs_client().await; 79 | let queues = match client.list_queues().send().await { 80 | Ok(v) => v, 81 | Err(error) => { 82 | error!("Error when list queues: {}", error); 83 | return Err("Deu merda pra buscar as filas!")?; 84 | } 85 | }; 86 | let queue_urls = queues.queue_urls().unwrap_or_default(); 87 | let hooks_queue = queue_urls 88 | .into_iter() 89 | .find(|hooks_queue| hooks_queue.contains("SQSHooks")) 90 | .expect("Queue URL not found"); 91 | Ok(hooks_queue.to_owned()) 92 | } 93 | 94 | async fn get_sqs_client() -> Client { 95 | let shared_config = aws_config::from_env().load().await; 96 | let mut sqs_config_builder = 97 | aws_sdk_sqs::config::Builder::from(&shared_config); 98 | 99 | if api::use_localstack() { 100 | sqs_config_builder = 101 | sqs_config_builder.endpoint_resolver(api::localstack_endpoint()) 102 | } 103 | Client::from_conf(sqs_config_builder.build()) 104 | } 105 | -------------------------------------------------------------------------------- /rust-api-gateway-v2/README.md: -------------------------------------------------------------------------------- 1 | # Rust API Gateway v2 + Lambda + Local Server 2 | 3 | A simpler implementation of rust in a lambda with api gateway v2 in front of it, 4 | and a local server to test locally 5 | 6 | ## Global Dependencies 7 | 8 | - Node.js 9 | - NPM / Yarn 10 | - Rust 11 | - Cargo 12 | - `cargo-cmd` (optional) 13 | - `cargo-watch` 14 | - x86_64-unknown-linux-musl (*) 15 | 16 | ## x86_64-unknown-linux-musl Installation 17 | 18 | **If you are going to build this project locally**, in order to build the project 19 | properly to use in AWS Lambda, its expected that you install the 20 | `x86_64-unknown-linux-musl` target on all platforms with: 21 | 22 | ``` 23 | $ rustup target add x86_64-unknown-linux-musl 24 | ``` 25 | 26 | On **Linux** platforms, you will need to install `musl-tools` 27 | 28 | On **Mac OSX**, you will need to install a MUSL cross compilation toolchain: 29 | 30 | ``` 31 | $ brew install filosottile/musl-cross/musl-cross 32 | ``` 33 | 34 | ## Install 35 | 36 | In the root of the project, install Node.js dependencies: 37 | 38 | ``` 39 | yarn 40 | ``` 41 | 42 | In the `functions/api` directory, install Rust dependencies (only if you want to modify something on Rust project): 43 | 44 | ``` 45 | cargo build 46 | ``` 47 | 48 | ## Run server locally 49 | 50 | First, In the `functions/api` directory, make a copy of `.env.example` to `.env`. 51 | 52 | Then, to run the webserver locally, just execute: 53 | 54 | ``` 55 | cargo cmd dev 56 | ``` 57 | 58 | If you don't have `cargo-cmd` installed, you have to run: 59 | 60 | ``` 61 | source .env && cargo watch -x 'run' 62 | ``` 63 | 64 | This command will get the server up and running on `http://localhost:3008`. 65 | 66 | To make requests, read the session `Request data from API` below, and use 67 | `http://localhost:3008` as `URL`. 68 | 69 | ## Deploy 70 | 71 | API Gateway V2 only works in localstack if you have a PRO plan. So, you should 72 | deploy directly on AWS if you want to test this in production mode. 73 | 74 | Check the Serverless Framework documentation to learn how to make a deploy. 75 | 76 | As an example, if you want to deploy a project in dev mode, you can run: 77 | 78 | ``` 79 | yarn serverless deploy --stage dev 80 | ``` 81 | 82 | Don't forget to configure your AWS credentials. 83 | 84 | ## Request data from API 85 | 86 | To make a request, get the URL given from serverless and use curl: 87 | 88 | ``` 89 | curl http:// 90 | ``` 91 | 92 | You should see the response: 93 | 94 | ``` 95 | Hello Rust!% 96 | ``` 97 | 98 | There is a route to test a request with POST method: 99 | 100 | ``` 101 | curl -i -X POST http:///user -H 'Content-Type: application/json' -d '{"first_name": "John", "last_name": "Doe"}' 102 | ``` 103 | 104 | You sould see the response: 105 | 106 | ``` 107 | {"first_name":"John","last_name":"Doe"}% 108 | ``` 109 | 110 | The data is being validated with serde. If you don't pass some of the required 111 | keys (`first_name` or `last_name` in this case), you will see an error message. 112 | 113 | Try calling without `last_name`, for example: 114 | 115 | ``` 116 | curl -i -X POST http:///user -H 'Content-Type: application/json' -d '{"first_name": "John"}' 117 | ``` 118 | 119 | You should see the response: 120 | 121 | ``` 122 | HTTP/1.1 400 Bad Request 123 | content-length: 69 124 | content-type: text/plain; charset=utf-8 125 | date: Mon, 01 Aug 2022 23:46:59 GMT 126 | 127 | Json deserialize error: missing field `last_name` at line 1 column 26% 128 | ``` 129 | 130 | # License 131 | 132 | MIT 133 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/functions/api/src/main.rs: -------------------------------------------------------------------------------- 1 | use aws_sdk_sqs::{Client, Endpoint}; 2 | use lambda_web::actix_web::{ 3 | get, 4 | http::Uri, 5 | post, 6 | web, 7 | App, 8 | HttpResponse, 9 | HttpServer, 10 | Responder, 11 | }; 12 | use lambda_web::{run_actix_on_lambda, LambdaError}; 13 | use serde::{Deserialize, Serialize}; 14 | use tracing::{error, info}; 15 | use tracing_subscriber; 16 | 17 | #[actix_web::main] 18 | async fn main() -> Result<(), LambdaError> { 19 | setup_logs(); 20 | let factory = || App::new().service(hello_handler).service(create_user); 21 | 22 | match is_running_on_lambda() { 23 | true => run_actix_on_lambda(factory).await?, 24 | false => { 25 | let port = 3008; 26 | info!("Server is running on http://localhost:{}", port); 27 | HttpServer::new(factory) 28 | .bind(("127.0.0.1", port))? 29 | .run() 30 | .await? 31 | } 32 | }; 33 | 34 | Ok(()) 35 | } 36 | 37 | fn setup_logs() { 38 | match is_local() { 39 | true => tracing_subscriber::fmt::init(), 40 | false => tracing_subscriber::fmt().with_ansi(false).init(), 41 | }; 42 | } 43 | 44 | fn is_local() -> bool { 45 | match std::env::var("ENVIRONMENT") { 46 | Ok(value) => value == "local", 47 | Err(_) => false, 48 | } 49 | } 50 | 51 | fn is_running_on_lambda() -> bool { 52 | std::env::var("OFFLINE").is_err() 53 | } 54 | 55 | #[get("/")] 56 | async fn hello_handler() -> impl Responder { 57 | HttpResponse::Ok().body("Hello Rust!") 58 | } 59 | 60 | #[derive(Debug, Serialize, Deserialize)] 61 | struct UserData { 62 | first_name: String, 63 | last_name: String, 64 | } 65 | 66 | #[post("/user")] 67 | async fn create_user(json: web::Json) -> impl Responder { 68 | info!("CREATE_USER: User data: {:?}", json); 69 | let client = get_sqs_client().await; 70 | let queue_url = get_queue_url().await.expect("Queue URL not found"); 71 | let body = format!( 72 | "{{ \"first_name\": \"{}\", \"last_name\": \"{}\" }}", 73 | json.first_name, json.last_name 74 | ); 75 | info!("Body to send: {}", body); 76 | let response = client 77 | .send_message() 78 | .queue_url(queue_url) 79 | .message_body(body) 80 | .send() 81 | .await; 82 | 83 | info!("Message response: {:?}", response); 84 | HttpResponse::Ok().json(&json) 85 | } 86 | 87 | async fn get_queue_url() -> Result> { 88 | match std::env::var("SQS_HOOKS_URL") { 89 | Ok(value) => { 90 | info!("SQS_HOOKS_URL: {}", value); 91 | Ok(value) 92 | } 93 | _ => get_queue_url_local().await, 94 | } 95 | } 96 | 97 | async fn get_queue_url_local() -> Result> { 98 | let client = get_sqs_client().await; 99 | let queues = match client.list_queues().send().await { 100 | Ok(v) => v, 101 | Err(error) => { 102 | error!("Error when list queues: {}", error); 103 | return Err("Deu merda pra buscar as filas!")?; 104 | } 105 | }; 106 | let queue_urls = queues.queue_urls().unwrap_or_default(); 107 | let hooks_queue = queue_urls 108 | .into_iter() 109 | .find(|hooks_queue| hooks_queue.contains("SQSHooks")) 110 | .expect("Queue URL not found"); 111 | Ok(hooks_queue.to_owned()) 112 | } 113 | 114 | async fn get_sqs_client() -> Client { 115 | let shared_config = aws_config::from_env().load().await; 116 | let mut sqs_config_builder = 117 | aws_sdk_sqs::config::Builder::from(&shared_config); 118 | 119 | if use_localstack() { 120 | sqs_config_builder = 121 | sqs_config_builder.endpoint_resolver(localstack_endpoint()) 122 | } 123 | Client::from_conf(sqs_config_builder.build()) 124 | } 125 | 126 | fn localstack_endpoint() -> Endpoint { 127 | Endpoint::immutable(Uri::from_static("http://localhost:4566")) 128 | } 129 | 130 | fn use_localstack() -> bool { 131 | std::env::var("LOCALSTACK").is_ok() 132 | } 133 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs-2/README.md: -------------------------------------------------------------------------------- 1 | # Rust API Gateway v2 + Lambda + Local Server 2 | 3 | A simpler implementation of rust in a lambda with api gateway v2 in front of it, 4 | and a local server to test locally 5 | 6 | ## Global Dependencies 7 | 8 | - Node.js 9 | - NPM / Yarn 10 | - Rust 11 | - Cargo 12 | - `cargo-cmd` (optional) 13 | - `cargo-watch` 14 | - x86_64-unknown-linux-musl (*) 15 | 16 | ## x86_64-unknown-linux-musl Installation 17 | 18 | **If you are going to build this project locally**, in order to build the project 19 | properly to use in AWS Lambda, its expected that you install the 20 | `x86_64-unknown-linux-musl` target on all platforms with: 21 | 22 | ``` 23 | $ rustup target add x86_64-unknown-linux-musl 24 | ``` 25 | 26 | On **Linux** platforms, you will need to install `musl-tools` 27 | 28 | On **Mac OSX**, you will need to install a MUSL cross compilation toolchain: 29 | 30 | ``` 31 | $ brew install filosottile/musl-cross/musl-cross 32 | ``` 33 | 34 | ## Install 35 | 36 | In the root of the project, install Node.js dependencies: 37 | 38 | ``` 39 | yarn 40 | ``` 41 | 42 | In the `functions/api` directory, install Rust dependencies (only if you want to modify something on Rust project): 43 | 44 | ``` 45 | cargo build 46 | ``` 47 | 48 | ## Run server locally 49 | 50 | First, In the `functions/api` directory, make a copy of `.env.example` to `.env`. 51 | 52 | Then, to run the webserver locally, just execute: 53 | 54 | ``` 55 | cargo cmd dev 56 | ``` 57 | 58 | If you don't have `cargo-cmd` installed, you have to run: 59 | 60 | ``` 61 | source .env && cargo watch -x 'run' 62 | ``` 63 | 64 | This command will get the server up and running on `http://localhost:3008`. 65 | 66 | To make requests, read the session `Request data from API` below, and use 67 | `http://localhost:3008` as `URL`. 68 | 69 | ## Deploy 70 | 71 | To configure localstack locally, put this configuration on your `~/.aws/credentials`: 72 | 73 | ``` 74 | [default] 75 | aws_access_key_id = temp 76 | aws_secret_access_key = temp 77 | ``` 78 | 79 | Get localstack up and running: 80 | 81 | ``` 82 | yarn docker:up:logs 83 | ``` 84 | 85 | Use env var `DEBUG=1` to see all logs: 86 | 87 | ``` 88 | DEBUG=1 yarn docker:up:logs 89 | ``` 90 | 91 | After that, deploy with the command: 92 | 93 | ``` 94 | ./deploy-local.sh 95 | ``` 96 | 97 | This script will use the `serverless.local.yml` instead of `serverless.yml` to 98 | deploy functions with API Gateway v1, instead of v2, because API Gateway v2 is 99 | only available on localstack from the PRO plan. 100 | 101 | When you deploy to AWS, the `serverless.yml` default file will be used, and 102 | this configuration is using API Gateway v2. 103 | 104 | 105 | ### Important info about deploy to AWS 106 | 107 | API Gateway V2 only works in localstack if you have a PRO plan. So, you should 108 | deploy directly on AWS if you want to test this in production mode. 109 | 110 | Check the Serverless Framework documentation to learn how to make a deploy. 111 | 112 | As an example, if you want to deploy a project in dev mode, you can run: 113 | 114 | ``` 115 | yarn serverless deploy --stage dev 116 | ``` 117 | 118 | Don't forget to configure your AWS credentials. 119 | 120 | ## Request data from API 121 | 122 | To make a request, get the URL given from serverless and use curl: 123 | 124 | ``` 125 | curl http:// 126 | ``` 127 | 128 | You should see the response: 129 | 130 | ``` 131 | Hello Rust!% 132 | ``` 133 | 134 | There is a route to test a request with POST method. This route will send a 135 | message to SQS, and the new message will trigger the lambda: 136 | 137 | ``` 138 | curl -i -X POST http:///user -H 'Content-Type: application/json' -d '{"first_name": "John", "last_name": "Doe"}' 139 | ``` 140 | 141 | You sould see the response: 142 | 143 | ``` 144 | {"first_name":"John","last_name":"Doe"}% 145 | ``` 146 | 147 | The data is being validated with serde. If you don't pass some of the required 148 | keys (`first_name` or `last_name` in this case), you will see an error message. 149 | 150 | Try calling without `last_name`, for example: 151 | 152 | ``` 153 | curl -i -X POST http:///user -H 'Content-Type: application/json' -d '{"first_name": "John"}' 154 | ``` 155 | 156 | You should see the response: 157 | 158 | ``` 159 | HTTP/1.1 400 Bad Request 160 | content-length: 69 161 | content-type: text/plain; charset=utf-8 162 | date: Mon, 01 Aug 2022 23:46:59 GMT 163 | 164 | Json deserialize error: missing field `last_name` at line 1 column 26% 165 | ``` 166 | 167 | # License 168 | 169 | MIT 170 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/README.md: -------------------------------------------------------------------------------- 1 | # Rust API Gateway v2 + Lambda + Local Server 2 | 3 | A simpler implementation of rust in a lambda with api gateway v2 in front of it, 4 | and a local server to test locally 5 | 6 | ## Global Dependencies 7 | 8 | - Node.js 9 | - NPM / Yarn 10 | - Rust 11 | - Cargo 12 | - `cargo-cmd` (optional) 13 | - `cargo-watch` 14 | - x86_64-unknown-linux-musl (*) 15 | 16 | ## x86_64-unknown-linux-musl Installation 17 | 18 | **If you are going to build this project locally**, in order to build the project 19 | properly to use in AWS Lambda, its expected that you install the 20 | `x86_64-unknown-linux-musl` target on all platforms with: 21 | 22 | ``` 23 | $ rustup target add x86_64-unknown-linux-musl 24 | ``` 25 | 26 | On **Linux** platforms, you will need to install `musl-tools` 27 | 28 | On **Mac OSX**, you will need to install a MUSL cross compilation toolchain: 29 | 30 | ``` 31 | $ brew install filosottile/musl-cross/musl-cross 32 | ``` 33 | 34 | ## Install 35 | 36 | In the root of the project, install Node.js dependencies: 37 | 38 | ``` 39 | yarn 40 | ``` 41 | 42 | In the `functions/api` directory, install Rust dependencies (only if you want to modify something on Rust project): 43 | 44 | ``` 45 | cargo build 46 | ``` 47 | 48 | ## Run server locally 49 | 50 | First, In the `functions/api` directory, make a copy of `.env.example` to `.env`. 51 | 52 | Then, to run the webserver locally, just execute: 53 | 54 | ``` 55 | cargo cmd dev 56 | ``` 57 | 58 | If you don't have `cargo-cmd` installed, you have to run: 59 | 60 | ``` 61 | source .env && cargo watch -x 'run' 62 | ``` 63 | 64 | This command will get the server up and running on `http://localhost:3008`. 65 | 66 | To make requests, read the session `Request data from API` below, and use 67 | `http://localhost:3008` as `URL`. 68 | 69 | ## Deploy 70 | 71 | To configure localstack locally, put this configuration on your `~/.aws/credentials`: 72 | 73 | ``` 74 | [default] 75 | aws_access_key_id = temp 76 | aws_secret_access_key = temp 77 | ``` 78 | 79 | Get localstack up and running: 80 | 81 | ``` 82 | yarn docker:up:logs 83 | ``` 84 | 85 | Use env var `DEBUG=1` to see all logs: 86 | 87 | ``` 88 | DEBUG=1 yarn docker:up:logs 89 | ``` 90 | 91 | After that, deploy with the command: 92 | 93 | ``` 94 | ./deploy-local.sh 95 | ``` 96 | 97 | This script will use the `serverless.local.yml` instead of `serverless.yml` to 98 | deploy functions with API Gateway v1, instead of v2, because API Gateway v2 is 99 | only available on localstack from the PRO plan. 100 | 101 | When you deploy to AWS, the `serverless.yml` default file will be used, and 102 | this configuration is using API Gateway v2. 103 | 104 | 105 | ### Important info about deploy to AWS 106 | 107 | API Gateway V2 only works in localstack if you have a PRO plan. So, you should 108 | deploy directly on AWS if you want to test this in production mode. 109 | 110 | Check the Serverless Framework documentation to learn how to make a deploy. 111 | 112 | As an example, if you want to deploy a project in dev mode, you can run: 113 | 114 | ``` 115 | yarn serverless deploy --stage dev 116 | ``` 117 | 118 | Don't forget to configure your AWS credentials. 119 | 120 | ## Request data from API 121 | 122 | To make a request, get the URL given from serverless and use curl: 123 | 124 | ``` 125 | curl http:// 126 | ``` 127 | 128 | You should see the response: 129 | 130 | ``` 131 | Hello Rust!% 132 | ``` 133 | 134 | There is a route to test a request with POST method. This route will send a 135 | message to SQS, and the new message will trigger the lambda: 136 | 137 | ``` 138 | curl -i -X POST http:///user -H 'Content-Type: application/json' -d '{"first_name": "John", "last_name": "Doe"}' 139 | ``` 140 | 141 | You sould see the response: 142 | 143 | ``` 144 | {"first_name":"John","last_name":"Doe"}% 145 | ``` 146 | 147 | The data is being validated with serde. If you don't pass some of the required 148 | keys (`first_name` or `last_name` in this case), you will see an error message. 149 | 150 | Try calling without `last_name`, for example: 151 | 152 | ``` 153 | curl -i -X POST http:///user -H 'Content-Type: application/json' -d '{"first_name": "John"}' 154 | ``` 155 | 156 | You should see the response: 157 | 158 | ``` 159 | HTTP/1.1 400 Bad Request 160 | content-length: 69 161 | content-type: text/plain; charset=utf-8 162 | date: Mon, 01 Aug 2022 23:46:59 GMT 163 | 164 | Json deserialize error: missing field `last_name` at line 1 column 26% 165 | ``` 166 | 167 | # License 168 | 169 | MIT 170 | -------------------------------------------------------------------------------- /rust-lambda/functions/api/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "ansi_term" 7 | version = "0.12.1" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 10 | dependencies = [ 11 | "winapi", 12 | ] 13 | 14 | [[package]] 15 | name = "api" 16 | version = "0.1.0" 17 | dependencies = [ 18 | "lambda_runtime", 19 | "serde_json", 20 | "tokio", 21 | "tracing", 22 | "tracing-subscriber", 23 | ] 24 | 25 | [[package]] 26 | name = "async-stream" 27 | version = "0.3.3" 28 | source = "registry+https://github.com/rust-lang/crates.io-index" 29 | checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" 30 | dependencies = [ 31 | "async-stream-impl", 32 | "futures-core", 33 | ] 34 | 35 | [[package]] 36 | name = "async-stream-impl" 37 | version = "0.3.3" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" 40 | dependencies = [ 41 | "proc-macro2", 42 | "quote", 43 | "syn", 44 | ] 45 | 46 | [[package]] 47 | name = "autocfg" 48 | version = "1.1.0" 49 | source = "registry+https://github.com/rust-lang/crates.io-index" 50 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 51 | 52 | [[package]] 53 | name = "bitflags" 54 | version = "1.3.2" 55 | source = "registry+https://github.com/rust-lang/crates.io-index" 56 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 57 | 58 | [[package]] 59 | name = "bytes" 60 | version = "1.2.1" 61 | source = "registry+https://github.com/rust-lang/crates.io-index" 62 | checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" 63 | 64 | [[package]] 65 | name = "cfg-if" 66 | version = "1.0.0" 67 | source = "registry+https://github.com/rust-lang/crates.io-index" 68 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 69 | 70 | [[package]] 71 | name = "fnv" 72 | version = "1.0.7" 73 | source = "registry+https://github.com/rust-lang/crates.io-index" 74 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 75 | 76 | [[package]] 77 | name = "futures-channel" 78 | version = "0.3.21" 79 | source = "registry+https://github.com/rust-lang/crates.io-index" 80 | checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" 81 | dependencies = [ 82 | "futures-core", 83 | ] 84 | 85 | [[package]] 86 | name = "futures-core" 87 | version = "0.3.21" 88 | source = "registry+https://github.com/rust-lang/crates.io-index" 89 | checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" 90 | 91 | [[package]] 92 | name = "futures-task" 93 | version = "0.3.21" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" 96 | 97 | [[package]] 98 | name = "futures-util" 99 | version = "0.3.21" 100 | source = "registry+https://github.com/rust-lang/crates.io-index" 101 | checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" 102 | dependencies = [ 103 | "futures-core", 104 | "futures-task", 105 | "pin-project-lite", 106 | "pin-utils", 107 | ] 108 | 109 | [[package]] 110 | name = "hermit-abi" 111 | version = "0.1.19" 112 | source = "registry+https://github.com/rust-lang/crates.io-index" 113 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 114 | dependencies = [ 115 | "libc", 116 | ] 117 | 118 | [[package]] 119 | name = "http" 120 | version = "0.2.8" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" 123 | dependencies = [ 124 | "bytes", 125 | "fnv", 126 | "itoa", 127 | ] 128 | 129 | [[package]] 130 | name = "http-body" 131 | version = "0.4.5" 132 | source = "registry+https://github.com/rust-lang/crates.io-index" 133 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 134 | dependencies = [ 135 | "bytes", 136 | "http", 137 | "pin-project-lite", 138 | ] 139 | 140 | [[package]] 141 | name = "httparse" 142 | version = "1.7.1" 143 | source = "registry+https://github.com/rust-lang/crates.io-index" 144 | checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" 145 | 146 | [[package]] 147 | name = "httpdate" 148 | version = "1.0.2" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 151 | 152 | [[package]] 153 | name = "hyper" 154 | version = "0.14.20" 155 | source = "registry+https://github.com/rust-lang/crates.io-index" 156 | checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" 157 | dependencies = [ 158 | "bytes", 159 | "futures-channel", 160 | "futures-core", 161 | "futures-util", 162 | "http", 163 | "http-body", 164 | "httparse", 165 | "httpdate", 166 | "itoa", 167 | "pin-project-lite", 168 | "socket2", 169 | "tokio", 170 | "tower-service", 171 | "tracing", 172 | "want", 173 | ] 174 | 175 | [[package]] 176 | name = "itoa" 177 | version = "1.0.2" 178 | source = "registry+https://github.com/rust-lang/crates.io-index" 179 | checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" 180 | 181 | [[package]] 182 | name = "lambda_runtime" 183 | version = "0.6.0" 184 | source = "registry+https://github.com/rust-lang/crates.io-index" 185 | checksum = "76cf2e2a435d327806e7c8d46d341d624a6a2e3b35b253eee44d1c89980451be" 186 | dependencies = [ 187 | "async-stream", 188 | "bytes", 189 | "http", 190 | "hyper", 191 | "lambda_runtime_api_client", 192 | "serde", 193 | "serde_json", 194 | "tokio", 195 | "tokio-stream", 196 | "tower", 197 | "tracing", 198 | ] 199 | 200 | [[package]] 201 | name = "lambda_runtime_api_client" 202 | version = "0.6.0" 203 | source = "registry+https://github.com/rust-lang/crates.io-index" 204 | checksum = "b54698c666ffe503cb51fa66e4567e53e806128a10359de7095999d925a771ed" 205 | dependencies = [ 206 | "http", 207 | "hyper", 208 | "tokio", 209 | "tower-service", 210 | ] 211 | 212 | [[package]] 213 | name = "lazy_static" 214 | version = "1.4.0" 215 | source = "registry+https://github.com/rust-lang/crates.io-index" 216 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 217 | 218 | [[package]] 219 | name = "libc" 220 | version = "0.2.126" 221 | source = "registry+https://github.com/rust-lang/crates.io-index" 222 | checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" 223 | 224 | [[package]] 225 | name = "lock_api" 226 | version = "0.4.7" 227 | source = "registry+https://github.com/rust-lang/crates.io-index" 228 | checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" 229 | dependencies = [ 230 | "autocfg", 231 | "scopeguard", 232 | ] 233 | 234 | [[package]] 235 | name = "log" 236 | version = "0.4.17" 237 | source = "registry+https://github.com/rust-lang/crates.io-index" 238 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 239 | dependencies = [ 240 | "cfg-if", 241 | ] 242 | 243 | [[package]] 244 | name = "memchr" 245 | version = "2.5.0" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 248 | 249 | [[package]] 250 | name = "mio" 251 | version = "0.8.4" 252 | source = "registry+https://github.com/rust-lang/crates.io-index" 253 | checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" 254 | dependencies = [ 255 | "libc", 256 | "log", 257 | "wasi", 258 | "windows-sys", 259 | ] 260 | 261 | [[package]] 262 | name = "num_cpus" 263 | version = "1.13.1" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" 266 | dependencies = [ 267 | "hermit-abi", 268 | "libc", 269 | ] 270 | 271 | [[package]] 272 | name = "once_cell" 273 | version = "1.13.0" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" 276 | 277 | [[package]] 278 | name = "parking_lot" 279 | version = "0.12.1" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 282 | dependencies = [ 283 | "lock_api", 284 | "parking_lot_core", 285 | ] 286 | 287 | [[package]] 288 | name = "parking_lot_core" 289 | version = "0.9.3" 290 | source = "registry+https://github.com/rust-lang/crates.io-index" 291 | checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" 292 | dependencies = [ 293 | "cfg-if", 294 | "libc", 295 | "redox_syscall", 296 | "smallvec", 297 | "windows-sys", 298 | ] 299 | 300 | [[package]] 301 | name = "pin-project" 302 | version = "1.0.11" 303 | source = "registry+https://github.com/rust-lang/crates.io-index" 304 | checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" 305 | dependencies = [ 306 | "pin-project-internal", 307 | ] 308 | 309 | [[package]] 310 | name = "pin-project-internal" 311 | version = "1.0.11" 312 | source = "registry+https://github.com/rust-lang/crates.io-index" 313 | checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" 314 | dependencies = [ 315 | "proc-macro2", 316 | "quote", 317 | "syn", 318 | ] 319 | 320 | [[package]] 321 | name = "pin-project-lite" 322 | version = "0.2.9" 323 | source = "registry+https://github.com/rust-lang/crates.io-index" 324 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 325 | 326 | [[package]] 327 | name = "pin-utils" 328 | version = "0.1.0" 329 | source = "registry+https://github.com/rust-lang/crates.io-index" 330 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 331 | 332 | [[package]] 333 | name = "proc-macro2" 334 | version = "1.0.42" 335 | source = "registry+https://github.com/rust-lang/crates.io-index" 336 | checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b" 337 | dependencies = [ 338 | "unicode-ident", 339 | ] 340 | 341 | [[package]] 342 | name = "quote" 343 | version = "1.0.20" 344 | source = "registry+https://github.com/rust-lang/crates.io-index" 345 | checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" 346 | dependencies = [ 347 | "proc-macro2", 348 | ] 349 | 350 | [[package]] 351 | name = "redox_syscall" 352 | version = "0.2.16" 353 | source = "registry+https://github.com/rust-lang/crates.io-index" 354 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 355 | dependencies = [ 356 | "bitflags", 357 | ] 358 | 359 | [[package]] 360 | name = "ryu" 361 | version = "1.0.10" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" 364 | 365 | [[package]] 366 | name = "scopeguard" 367 | version = "1.1.0" 368 | source = "registry+https://github.com/rust-lang/crates.io-index" 369 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 370 | 371 | [[package]] 372 | name = "serde" 373 | version = "1.0.140" 374 | source = "registry+https://github.com/rust-lang/crates.io-index" 375 | checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03" 376 | dependencies = [ 377 | "serde_derive", 378 | ] 379 | 380 | [[package]] 381 | name = "serde_derive" 382 | version = "1.0.140" 383 | source = "registry+https://github.com/rust-lang/crates.io-index" 384 | checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da" 385 | dependencies = [ 386 | "proc-macro2", 387 | "quote", 388 | "syn", 389 | ] 390 | 391 | [[package]] 392 | name = "serde_json" 393 | version = "1.0.82" 394 | source = "registry+https://github.com/rust-lang/crates.io-index" 395 | checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" 396 | dependencies = [ 397 | "itoa", 398 | "ryu", 399 | "serde", 400 | ] 401 | 402 | [[package]] 403 | name = "sharded-slab" 404 | version = "0.1.4" 405 | source = "registry+https://github.com/rust-lang/crates.io-index" 406 | checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" 407 | dependencies = [ 408 | "lazy_static", 409 | ] 410 | 411 | [[package]] 412 | name = "signal-hook-registry" 413 | version = "1.4.0" 414 | source = "registry+https://github.com/rust-lang/crates.io-index" 415 | checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" 416 | dependencies = [ 417 | "libc", 418 | ] 419 | 420 | [[package]] 421 | name = "smallvec" 422 | version = "1.9.0" 423 | source = "registry+https://github.com/rust-lang/crates.io-index" 424 | checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" 425 | 426 | [[package]] 427 | name = "socket2" 428 | version = "0.4.4" 429 | source = "registry+https://github.com/rust-lang/crates.io-index" 430 | checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" 431 | dependencies = [ 432 | "libc", 433 | "winapi", 434 | ] 435 | 436 | [[package]] 437 | name = "syn" 438 | version = "1.0.98" 439 | source = "registry+https://github.com/rust-lang/crates.io-index" 440 | checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" 441 | dependencies = [ 442 | "proc-macro2", 443 | "quote", 444 | "unicode-ident", 445 | ] 446 | 447 | [[package]] 448 | name = "thread_local" 449 | version = "1.1.4" 450 | source = "registry+https://github.com/rust-lang/crates.io-index" 451 | checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" 452 | dependencies = [ 453 | "once_cell", 454 | ] 455 | 456 | [[package]] 457 | name = "tokio" 458 | version = "1.20.1" 459 | source = "registry+https://github.com/rust-lang/crates.io-index" 460 | checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" 461 | dependencies = [ 462 | "autocfg", 463 | "bytes", 464 | "libc", 465 | "memchr", 466 | "mio", 467 | "num_cpus", 468 | "once_cell", 469 | "parking_lot", 470 | "pin-project-lite", 471 | "signal-hook-registry", 472 | "socket2", 473 | "tokio-macros", 474 | "winapi", 475 | ] 476 | 477 | [[package]] 478 | name = "tokio-macros" 479 | version = "1.8.0" 480 | source = "registry+https://github.com/rust-lang/crates.io-index" 481 | checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" 482 | dependencies = [ 483 | "proc-macro2", 484 | "quote", 485 | "syn", 486 | ] 487 | 488 | [[package]] 489 | name = "tokio-stream" 490 | version = "0.1.9" 491 | source = "registry+https://github.com/rust-lang/crates.io-index" 492 | checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" 493 | dependencies = [ 494 | "futures-core", 495 | "pin-project-lite", 496 | "tokio", 497 | ] 498 | 499 | [[package]] 500 | name = "tower" 501 | version = "0.4.13" 502 | source = "registry+https://github.com/rust-lang/crates.io-index" 503 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 504 | dependencies = [ 505 | "futures-core", 506 | "futures-util", 507 | "pin-project", 508 | "pin-project-lite", 509 | "tower-layer", 510 | "tower-service", 511 | "tracing", 512 | ] 513 | 514 | [[package]] 515 | name = "tower-layer" 516 | version = "0.3.1" 517 | source = "registry+https://github.com/rust-lang/crates.io-index" 518 | checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" 519 | 520 | [[package]] 521 | name = "tower-service" 522 | version = "0.3.2" 523 | source = "registry+https://github.com/rust-lang/crates.io-index" 524 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 525 | 526 | [[package]] 527 | name = "tracing" 528 | version = "0.1.36" 529 | source = "registry+https://github.com/rust-lang/crates.io-index" 530 | checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" 531 | dependencies = [ 532 | "cfg-if", 533 | "log", 534 | "pin-project-lite", 535 | "tracing-attributes", 536 | "tracing-core", 537 | ] 538 | 539 | [[package]] 540 | name = "tracing-attributes" 541 | version = "0.1.22" 542 | source = "registry+https://github.com/rust-lang/crates.io-index" 543 | checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" 544 | dependencies = [ 545 | "proc-macro2", 546 | "quote", 547 | "syn", 548 | ] 549 | 550 | [[package]] 551 | name = "tracing-core" 552 | version = "0.1.29" 553 | source = "registry+https://github.com/rust-lang/crates.io-index" 554 | checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" 555 | dependencies = [ 556 | "once_cell", 557 | "valuable", 558 | ] 559 | 560 | [[package]] 561 | name = "tracing-log" 562 | version = "0.1.3" 563 | source = "registry+https://github.com/rust-lang/crates.io-index" 564 | checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" 565 | dependencies = [ 566 | "lazy_static", 567 | "log", 568 | "tracing-core", 569 | ] 570 | 571 | [[package]] 572 | name = "tracing-subscriber" 573 | version = "0.3.15" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" 576 | dependencies = [ 577 | "ansi_term", 578 | "sharded-slab", 579 | "smallvec", 580 | "thread_local", 581 | "tracing-core", 582 | "tracing-log", 583 | ] 584 | 585 | [[package]] 586 | name = "try-lock" 587 | version = "0.2.3" 588 | source = "registry+https://github.com/rust-lang/crates.io-index" 589 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" 590 | 591 | [[package]] 592 | name = "unicode-ident" 593 | version = "1.0.2" 594 | source = "registry+https://github.com/rust-lang/crates.io-index" 595 | checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" 596 | 597 | [[package]] 598 | name = "valuable" 599 | version = "0.1.0" 600 | source = "registry+https://github.com/rust-lang/crates.io-index" 601 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 602 | 603 | [[package]] 604 | name = "want" 605 | version = "0.3.0" 606 | source = "registry+https://github.com/rust-lang/crates.io-index" 607 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 608 | dependencies = [ 609 | "log", 610 | "try-lock", 611 | ] 612 | 613 | [[package]] 614 | name = "wasi" 615 | version = "0.11.0+wasi-snapshot-preview1" 616 | source = "registry+https://github.com/rust-lang/crates.io-index" 617 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 618 | 619 | [[package]] 620 | name = "winapi" 621 | version = "0.3.9" 622 | source = "registry+https://github.com/rust-lang/crates.io-index" 623 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 624 | dependencies = [ 625 | "winapi-i686-pc-windows-gnu", 626 | "winapi-x86_64-pc-windows-gnu", 627 | ] 628 | 629 | [[package]] 630 | name = "winapi-i686-pc-windows-gnu" 631 | version = "0.4.0" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 634 | 635 | [[package]] 636 | name = "winapi-x86_64-pc-windows-gnu" 637 | version = "0.4.0" 638 | source = "registry+https://github.com/rust-lang/crates.io-index" 639 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 640 | 641 | [[package]] 642 | name = "windows-sys" 643 | version = "0.36.1" 644 | source = "registry+https://github.com/rust-lang/crates.io-index" 645 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 646 | dependencies = [ 647 | "windows_aarch64_msvc", 648 | "windows_i686_gnu", 649 | "windows_i686_msvc", 650 | "windows_x86_64_gnu", 651 | "windows_x86_64_msvc", 652 | ] 653 | 654 | [[package]] 655 | name = "windows_aarch64_msvc" 656 | version = "0.36.1" 657 | source = "registry+https://github.com/rust-lang/crates.io-index" 658 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 659 | 660 | [[package]] 661 | name = "windows_i686_gnu" 662 | version = "0.36.1" 663 | source = "registry+https://github.com/rust-lang/crates.io-index" 664 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 665 | 666 | [[package]] 667 | name = "windows_i686_msvc" 668 | version = "0.36.1" 669 | source = "registry+https://github.com/rust-lang/crates.io-index" 670 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 671 | 672 | [[package]] 673 | name = "windows_x86_64_gnu" 674 | version = "0.36.1" 675 | source = "registry+https://github.com/rust-lang/crates.io-index" 676 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 677 | 678 | [[package]] 679 | name = "windows_x86_64_msvc" 680 | version = "0.36.1" 681 | source = "registry+https://github.com/rust-lang/crates.io-index" 682 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 683 | -------------------------------------------------------------------------------- /rust-lambda-sqs/functions/api/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "ansi_term" 7 | version = "0.12.1" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 10 | dependencies = [ 11 | "winapi", 12 | ] 13 | 14 | [[package]] 15 | name = "api" 16 | version = "0.1.0" 17 | dependencies = [ 18 | "lambda_runtime", 19 | "serde", 20 | "serde_json", 21 | "tokio", 22 | "tracing", 23 | "tracing-subscriber", 24 | ] 25 | 26 | [[package]] 27 | name = "async-stream" 28 | version = "0.3.3" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" 31 | dependencies = [ 32 | "async-stream-impl", 33 | "futures-core", 34 | ] 35 | 36 | [[package]] 37 | name = "async-stream-impl" 38 | version = "0.3.3" 39 | source = "registry+https://github.com/rust-lang/crates.io-index" 40 | checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" 41 | dependencies = [ 42 | "proc-macro2", 43 | "quote", 44 | "syn", 45 | ] 46 | 47 | [[package]] 48 | name = "autocfg" 49 | version = "1.1.0" 50 | source = "registry+https://github.com/rust-lang/crates.io-index" 51 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 52 | 53 | [[package]] 54 | name = "bitflags" 55 | version = "1.3.2" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 58 | 59 | [[package]] 60 | name = "bytes" 61 | version = "1.2.1" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" 64 | 65 | [[package]] 66 | name = "cfg-if" 67 | version = "1.0.0" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 70 | 71 | [[package]] 72 | name = "fnv" 73 | version = "1.0.7" 74 | source = "registry+https://github.com/rust-lang/crates.io-index" 75 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 76 | 77 | [[package]] 78 | name = "futures-channel" 79 | version = "0.3.21" 80 | source = "registry+https://github.com/rust-lang/crates.io-index" 81 | checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" 82 | dependencies = [ 83 | "futures-core", 84 | ] 85 | 86 | [[package]] 87 | name = "futures-core" 88 | version = "0.3.21" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" 91 | 92 | [[package]] 93 | name = "futures-task" 94 | version = "0.3.21" 95 | source = "registry+https://github.com/rust-lang/crates.io-index" 96 | checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" 97 | 98 | [[package]] 99 | name = "futures-util" 100 | version = "0.3.21" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" 103 | dependencies = [ 104 | "futures-core", 105 | "futures-task", 106 | "pin-project-lite", 107 | "pin-utils", 108 | ] 109 | 110 | [[package]] 111 | name = "hermit-abi" 112 | version = "0.1.19" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 115 | dependencies = [ 116 | "libc", 117 | ] 118 | 119 | [[package]] 120 | name = "http" 121 | version = "0.2.8" 122 | source = "registry+https://github.com/rust-lang/crates.io-index" 123 | checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" 124 | dependencies = [ 125 | "bytes", 126 | "fnv", 127 | "itoa", 128 | ] 129 | 130 | [[package]] 131 | name = "http-body" 132 | version = "0.4.5" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 135 | dependencies = [ 136 | "bytes", 137 | "http", 138 | "pin-project-lite", 139 | ] 140 | 141 | [[package]] 142 | name = "httparse" 143 | version = "1.7.1" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" 146 | 147 | [[package]] 148 | name = "httpdate" 149 | version = "1.0.2" 150 | source = "registry+https://github.com/rust-lang/crates.io-index" 151 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 152 | 153 | [[package]] 154 | name = "hyper" 155 | version = "0.14.20" 156 | source = "registry+https://github.com/rust-lang/crates.io-index" 157 | checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" 158 | dependencies = [ 159 | "bytes", 160 | "futures-channel", 161 | "futures-core", 162 | "futures-util", 163 | "http", 164 | "http-body", 165 | "httparse", 166 | "httpdate", 167 | "itoa", 168 | "pin-project-lite", 169 | "socket2", 170 | "tokio", 171 | "tower-service", 172 | "tracing", 173 | "want", 174 | ] 175 | 176 | [[package]] 177 | name = "itoa" 178 | version = "1.0.2" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" 181 | 182 | [[package]] 183 | name = "lambda_runtime" 184 | version = "0.6.0" 185 | source = "registry+https://github.com/rust-lang/crates.io-index" 186 | checksum = "76cf2e2a435d327806e7c8d46d341d624a6a2e3b35b253eee44d1c89980451be" 187 | dependencies = [ 188 | "async-stream", 189 | "bytes", 190 | "http", 191 | "hyper", 192 | "lambda_runtime_api_client", 193 | "serde", 194 | "serde_json", 195 | "tokio", 196 | "tokio-stream", 197 | "tower", 198 | "tracing", 199 | ] 200 | 201 | [[package]] 202 | name = "lambda_runtime_api_client" 203 | version = "0.6.0" 204 | source = "registry+https://github.com/rust-lang/crates.io-index" 205 | checksum = "b54698c666ffe503cb51fa66e4567e53e806128a10359de7095999d925a771ed" 206 | dependencies = [ 207 | "http", 208 | "hyper", 209 | "tokio", 210 | "tower-service", 211 | ] 212 | 213 | [[package]] 214 | name = "lazy_static" 215 | version = "1.4.0" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 218 | 219 | [[package]] 220 | name = "libc" 221 | version = "0.2.126" 222 | source = "registry+https://github.com/rust-lang/crates.io-index" 223 | checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" 224 | 225 | [[package]] 226 | name = "lock_api" 227 | version = "0.4.7" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" 230 | dependencies = [ 231 | "autocfg", 232 | "scopeguard", 233 | ] 234 | 235 | [[package]] 236 | name = "log" 237 | version = "0.4.17" 238 | source = "registry+https://github.com/rust-lang/crates.io-index" 239 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 240 | dependencies = [ 241 | "cfg-if", 242 | ] 243 | 244 | [[package]] 245 | name = "memchr" 246 | version = "2.5.0" 247 | source = "registry+https://github.com/rust-lang/crates.io-index" 248 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 249 | 250 | [[package]] 251 | name = "mio" 252 | version = "0.8.4" 253 | source = "registry+https://github.com/rust-lang/crates.io-index" 254 | checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" 255 | dependencies = [ 256 | "libc", 257 | "log", 258 | "wasi", 259 | "windows-sys", 260 | ] 261 | 262 | [[package]] 263 | name = "num_cpus" 264 | version = "1.13.1" 265 | source = "registry+https://github.com/rust-lang/crates.io-index" 266 | checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" 267 | dependencies = [ 268 | "hermit-abi", 269 | "libc", 270 | ] 271 | 272 | [[package]] 273 | name = "once_cell" 274 | version = "1.13.0" 275 | source = "registry+https://github.com/rust-lang/crates.io-index" 276 | checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" 277 | 278 | [[package]] 279 | name = "parking_lot" 280 | version = "0.12.1" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 283 | dependencies = [ 284 | "lock_api", 285 | "parking_lot_core", 286 | ] 287 | 288 | [[package]] 289 | name = "parking_lot_core" 290 | version = "0.9.3" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" 293 | dependencies = [ 294 | "cfg-if", 295 | "libc", 296 | "redox_syscall", 297 | "smallvec", 298 | "windows-sys", 299 | ] 300 | 301 | [[package]] 302 | name = "pin-project" 303 | version = "1.0.11" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" 306 | dependencies = [ 307 | "pin-project-internal", 308 | ] 309 | 310 | [[package]] 311 | name = "pin-project-internal" 312 | version = "1.0.11" 313 | source = "registry+https://github.com/rust-lang/crates.io-index" 314 | checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" 315 | dependencies = [ 316 | "proc-macro2", 317 | "quote", 318 | "syn", 319 | ] 320 | 321 | [[package]] 322 | name = "pin-project-lite" 323 | version = "0.2.9" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 326 | 327 | [[package]] 328 | name = "pin-utils" 329 | version = "0.1.0" 330 | source = "registry+https://github.com/rust-lang/crates.io-index" 331 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 332 | 333 | [[package]] 334 | name = "proc-macro2" 335 | version = "1.0.42" 336 | source = "registry+https://github.com/rust-lang/crates.io-index" 337 | checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b" 338 | dependencies = [ 339 | "unicode-ident", 340 | ] 341 | 342 | [[package]] 343 | name = "quote" 344 | version = "1.0.20" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" 347 | dependencies = [ 348 | "proc-macro2", 349 | ] 350 | 351 | [[package]] 352 | name = "redox_syscall" 353 | version = "0.2.16" 354 | source = "registry+https://github.com/rust-lang/crates.io-index" 355 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 356 | dependencies = [ 357 | "bitflags", 358 | ] 359 | 360 | [[package]] 361 | name = "ryu" 362 | version = "1.0.10" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" 365 | 366 | [[package]] 367 | name = "scopeguard" 368 | version = "1.1.0" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 371 | 372 | [[package]] 373 | name = "serde" 374 | version = "1.0.141" 375 | source = "registry+https://github.com/rust-lang/crates.io-index" 376 | checksum = "7af873f2c95b99fcb0bd0fe622a43e29514658873c8ceba88c4cb88833a22500" 377 | dependencies = [ 378 | "serde_derive", 379 | ] 380 | 381 | [[package]] 382 | name = "serde_derive" 383 | version = "1.0.141" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "75743a150d003dd863b51dc809bcad0d73f2102c53632f1e954e738192a3413f" 386 | dependencies = [ 387 | "proc-macro2", 388 | "quote", 389 | "syn", 390 | ] 391 | 392 | [[package]] 393 | name = "serde_json" 394 | version = "1.0.82" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" 397 | dependencies = [ 398 | "itoa", 399 | "ryu", 400 | "serde", 401 | ] 402 | 403 | [[package]] 404 | name = "sharded-slab" 405 | version = "0.1.4" 406 | source = "registry+https://github.com/rust-lang/crates.io-index" 407 | checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" 408 | dependencies = [ 409 | "lazy_static", 410 | ] 411 | 412 | [[package]] 413 | name = "signal-hook-registry" 414 | version = "1.4.0" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" 417 | dependencies = [ 418 | "libc", 419 | ] 420 | 421 | [[package]] 422 | name = "smallvec" 423 | version = "1.9.0" 424 | source = "registry+https://github.com/rust-lang/crates.io-index" 425 | checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" 426 | 427 | [[package]] 428 | name = "socket2" 429 | version = "0.4.4" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" 432 | dependencies = [ 433 | "libc", 434 | "winapi", 435 | ] 436 | 437 | [[package]] 438 | name = "syn" 439 | version = "1.0.98" 440 | source = "registry+https://github.com/rust-lang/crates.io-index" 441 | checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" 442 | dependencies = [ 443 | "proc-macro2", 444 | "quote", 445 | "unicode-ident", 446 | ] 447 | 448 | [[package]] 449 | name = "thread_local" 450 | version = "1.1.4" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" 453 | dependencies = [ 454 | "once_cell", 455 | ] 456 | 457 | [[package]] 458 | name = "tokio" 459 | version = "1.20.1" 460 | source = "registry+https://github.com/rust-lang/crates.io-index" 461 | checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" 462 | dependencies = [ 463 | "autocfg", 464 | "bytes", 465 | "libc", 466 | "memchr", 467 | "mio", 468 | "num_cpus", 469 | "once_cell", 470 | "parking_lot", 471 | "pin-project-lite", 472 | "signal-hook-registry", 473 | "socket2", 474 | "tokio-macros", 475 | "winapi", 476 | ] 477 | 478 | [[package]] 479 | name = "tokio-macros" 480 | version = "1.8.0" 481 | source = "registry+https://github.com/rust-lang/crates.io-index" 482 | checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" 483 | dependencies = [ 484 | "proc-macro2", 485 | "quote", 486 | "syn", 487 | ] 488 | 489 | [[package]] 490 | name = "tokio-stream" 491 | version = "0.1.9" 492 | source = "registry+https://github.com/rust-lang/crates.io-index" 493 | checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" 494 | dependencies = [ 495 | "futures-core", 496 | "pin-project-lite", 497 | "tokio", 498 | ] 499 | 500 | [[package]] 501 | name = "tower" 502 | version = "0.4.13" 503 | source = "registry+https://github.com/rust-lang/crates.io-index" 504 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 505 | dependencies = [ 506 | "futures-core", 507 | "futures-util", 508 | "pin-project", 509 | "pin-project-lite", 510 | "tower-layer", 511 | "tower-service", 512 | "tracing", 513 | ] 514 | 515 | [[package]] 516 | name = "tower-layer" 517 | version = "0.3.1" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" 520 | 521 | [[package]] 522 | name = "tower-service" 523 | version = "0.3.2" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 526 | 527 | [[package]] 528 | name = "tracing" 529 | version = "0.1.36" 530 | source = "registry+https://github.com/rust-lang/crates.io-index" 531 | checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" 532 | dependencies = [ 533 | "cfg-if", 534 | "log", 535 | "pin-project-lite", 536 | "tracing-attributes", 537 | "tracing-core", 538 | ] 539 | 540 | [[package]] 541 | name = "tracing-attributes" 542 | version = "0.1.22" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" 545 | dependencies = [ 546 | "proc-macro2", 547 | "quote", 548 | "syn", 549 | ] 550 | 551 | [[package]] 552 | name = "tracing-core" 553 | version = "0.1.29" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" 556 | dependencies = [ 557 | "once_cell", 558 | "valuable", 559 | ] 560 | 561 | [[package]] 562 | name = "tracing-log" 563 | version = "0.1.3" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" 566 | dependencies = [ 567 | "lazy_static", 568 | "log", 569 | "tracing-core", 570 | ] 571 | 572 | [[package]] 573 | name = "tracing-subscriber" 574 | version = "0.3.15" 575 | source = "registry+https://github.com/rust-lang/crates.io-index" 576 | checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" 577 | dependencies = [ 578 | "ansi_term", 579 | "sharded-slab", 580 | "smallvec", 581 | "thread_local", 582 | "tracing-core", 583 | "tracing-log", 584 | ] 585 | 586 | [[package]] 587 | name = "try-lock" 588 | version = "0.2.3" 589 | source = "registry+https://github.com/rust-lang/crates.io-index" 590 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" 591 | 592 | [[package]] 593 | name = "unicode-ident" 594 | version = "1.0.2" 595 | source = "registry+https://github.com/rust-lang/crates.io-index" 596 | checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" 597 | 598 | [[package]] 599 | name = "valuable" 600 | version = "0.1.0" 601 | source = "registry+https://github.com/rust-lang/crates.io-index" 602 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 603 | 604 | [[package]] 605 | name = "want" 606 | version = "0.3.0" 607 | source = "registry+https://github.com/rust-lang/crates.io-index" 608 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 609 | dependencies = [ 610 | "log", 611 | "try-lock", 612 | ] 613 | 614 | [[package]] 615 | name = "wasi" 616 | version = "0.11.0+wasi-snapshot-preview1" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 619 | 620 | [[package]] 621 | name = "winapi" 622 | version = "0.3.9" 623 | source = "registry+https://github.com/rust-lang/crates.io-index" 624 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 625 | dependencies = [ 626 | "winapi-i686-pc-windows-gnu", 627 | "winapi-x86_64-pc-windows-gnu", 628 | ] 629 | 630 | [[package]] 631 | name = "winapi-i686-pc-windows-gnu" 632 | version = "0.4.0" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 635 | 636 | [[package]] 637 | name = "winapi-x86_64-pc-windows-gnu" 638 | version = "0.4.0" 639 | source = "registry+https://github.com/rust-lang/crates.io-index" 640 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 641 | 642 | [[package]] 643 | name = "windows-sys" 644 | version = "0.36.1" 645 | source = "registry+https://github.com/rust-lang/crates.io-index" 646 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 647 | dependencies = [ 648 | "windows_aarch64_msvc", 649 | "windows_i686_gnu", 650 | "windows_i686_msvc", 651 | "windows_x86_64_gnu", 652 | "windows_x86_64_msvc", 653 | ] 654 | 655 | [[package]] 656 | name = "windows_aarch64_msvc" 657 | version = "0.36.1" 658 | source = "registry+https://github.com/rust-lang/crates.io-index" 659 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 660 | 661 | [[package]] 662 | name = "windows_i686_gnu" 663 | version = "0.36.1" 664 | source = "registry+https://github.com/rust-lang/crates.io-index" 665 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 666 | 667 | [[package]] 668 | name = "windows_i686_msvc" 669 | version = "0.36.1" 670 | source = "registry+https://github.com/rust-lang/crates.io-index" 671 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 672 | 673 | [[package]] 674 | name = "windows_x86_64_gnu" 675 | version = "0.36.1" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 678 | 679 | [[package]] 680 | name = "windows_x86_64_msvc" 681 | version = "0.36.1" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 684 | -------------------------------------------------------------------------------- /rust-api-gateway-v2-sqs/functions/queue/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "ansi_term" 7 | version = "0.12.1" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 10 | dependencies = [ 11 | "winapi", 12 | ] 13 | 14 | [[package]] 15 | name = "async-stream" 16 | version = "0.3.3" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" 19 | dependencies = [ 20 | "async-stream-impl", 21 | "futures-core", 22 | ] 23 | 24 | [[package]] 25 | name = "async-stream-impl" 26 | version = "0.3.3" 27 | source = "registry+https://github.com/rust-lang/crates.io-index" 28 | checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" 29 | dependencies = [ 30 | "proc-macro2", 31 | "quote", 32 | "syn", 33 | ] 34 | 35 | [[package]] 36 | name = "autocfg" 37 | version = "1.1.0" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 40 | 41 | [[package]] 42 | name = "bitflags" 43 | version = "1.3.2" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 46 | 47 | [[package]] 48 | name = "bytes" 49 | version = "1.2.1" 50 | source = "registry+https://github.com/rust-lang/crates.io-index" 51 | checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" 52 | 53 | [[package]] 54 | name = "cfg-if" 55 | version = "1.0.0" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 58 | 59 | [[package]] 60 | name = "fnv" 61 | version = "1.0.7" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 64 | 65 | [[package]] 66 | name = "futures-channel" 67 | version = "0.3.21" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" 70 | dependencies = [ 71 | "futures-core", 72 | ] 73 | 74 | [[package]] 75 | name = "futures-core" 76 | version = "0.3.21" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" 79 | 80 | [[package]] 81 | name = "futures-task" 82 | version = "0.3.21" 83 | source = "registry+https://github.com/rust-lang/crates.io-index" 84 | checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" 85 | 86 | [[package]] 87 | name = "futures-util" 88 | version = "0.3.21" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" 91 | dependencies = [ 92 | "futures-core", 93 | "futures-task", 94 | "pin-project-lite", 95 | "pin-utils", 96 | ] 97 | 98 | [[package]] 99 | name = "hermit-abi" 100 | version = "0.1.19" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 103 | dependencies = [ 104 | "libc", 105 | ] 106 | 107 | [[package]] 108 | name = "http" 109 | version = "0.2.8" 110 | source = "registry+https://github.com/rust-lang/crates.io-index" 111 | checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" 112 | dependencies = [ 113 | "bytes", 114 | "fnv", 115 | "itoa", 116 | ] 117 | 118 | [[package]] 119 | name = "http-body" 120 | version = "0.4.5" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 123 | dependencies = [ 124 | "bytes", 125 | "http", 126 | "pin-project-lite", 127 | ] 128 | 129 | [[package]] 130 | name = "httparse" 131 | version = "1.7.1" 132 | source = "registry+https://github.com/rust-lang/crates.io-index" 133 | checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" 134 | 135 | [[package]] 136 | name = "httpdate" 137 | version = "1.0.2" 138 | source = "registry+https://github.com/rust-lang/crates.io-index" 139 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 140 | 141 | [[package]] 142 | name = "hyper" 143 | version = "0.14.20" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" 146 | dependencies = [ 147 | "bytes", 148 | "futures-channel", 149 | "futures-core", 150 | "futures-util", 151 | "http", 152 | "http-body", 153 | "httparse", 154 | "httpdate", 155 | "itoa", 156 | "pin-project-lite", 157 | "socket2", 158 | "tokio", 159 | "tower-service", 160 | "tracing", 161 | "want", 162 | ] 163 | 164 | [[package]] 165 | name = "itoa" 166 | version = "1.0.2" 167 | source = "registry+https://github.com/rust-lang/crates.io-index" 168 | checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" 169 | 170 | [[package]] 171 | name = "lambda_runtime" 172 | version = "0.6.0" 173 | source = "registry+https://github.com/rust-lang/crates.io-index" 174 | checksum = "76cf2e2a435d327806e7c8d46d341d624a6a2e3b35b253eee44d1c89980451be" 175 | dependencies = [ 176 | "async-stream", 177 | "bytes", 178 | "http", 179 | "hyper", 180 | "lambda_runtime_api_client", 181 | "serde", 182 | "serde_json", 183 | "tokio", 184 | "tokio-stream", 185 | "tower", 186 | "tracing", 187 | ] 188 | 189 | [[package]] 190 | name = "lambda_runtime_api_client" 191 | version = "0.6.0" 192 | source = "registry+https://github.com/rust-lang/crates.io-index" 193 | checksum = "b54698c666ffe503cb51fa66e4567e53e806128a10359de7095999d925a771ed" 194 | dependencies = [ 195 | "http", 196 | "hyper", 197 | "tokio", 198 | "tower-service", 199 | ] 200 | 201 | [[package]] 202 | name = "lazy_static" 203 | version = "1.4.0" 204 | source = "registry+https://github.com/rust-lang/crates.io-index" 205 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 206 | 207 | [[package]] 208 | name = "libc" 209 | version = "0.2.126" 210 | source = "registry+https://github.com/rust-lang/crates.io-index" 211 | checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" 212 | 213 | [[package]] 214 | name = "lock_api" 215 | version = "0.4.7" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" 218 | dependencies = [ 219 | "autocfg", 220 | "scopeguard", 221 | ] 222 | 223 | [[package]] 224 | name = "log" 225 | version = "0.4.17" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 228 | dependencies = [ 229 | "cfg-if", 230 | ] 231 | 232 | [[package]] 233 | name = "memchr" 234 | version = "2.5.0" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 237 | 238 | [[package]] 239 | name = "mio" 240 | version = "0.8.4" 241 | source = "registry+https://github.com/rust-lang/crates.io-index" 242 | checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" 243 | dependencies = [ 244 | "libc", 245 | "log", 246 | "wasi", 247 | "windows-sys", 248 | ] 249 | 250 | [[package]] 251 | name = "num_cpus" 252 | version = "1.13.1" 253 | source = "registry+https://github.com/rust-lang/crates.io-index" 254 | checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" 255 | dependencies = [ 256 | "hermit-abi", 257 | "libc", 258 | ] 259 | 260 | [[package]] 261 | name = "once_cell" 262 | version = "1.13.0" 263 | source = "registry+https://github.com/rust-lang/crates.io-index" 264 | checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" 265 | 266 | [[package]] 267 | name = "parking_lot" 268 | version = "0.12.1" 269 | source = "registry+https://github.com/rust-lang/crates.io-index" 270 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 271 | dependencies = [ 272 | "lock_api", 273 | "parking_lot_core", 274 | ] 275 | 276 | [[package]] 277 | name = "parking_lot_core" 278 | version = "0.9.3" 279 | source = "registry+https://github.com/rust-lang/crates.io-index" 280 | checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" 281 | dependencies = [ 282 | "cfg-if", 283 | "libc", 284 | "redox_syscall", 285 | "smallvec", 286 | "windows-sys", 287 | ] 288 | 289 | [[package]] 290 | name = "pin-project" 291 | version = "1.0.11" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" 294 | dependencies = [ 295 | "pin-project-internal", 296 | ] 297 | 298 | [[package]] 299 | name = "pin-project-internal" 300 | version = "1.0.11" 301 | source = "registry+https://github.com/rust-lang/crates.io-index" 302 | checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" 303 | dependencies = [ 304 | "proc-macro2", 305 | "quote", 306 | "syn", 307 | ] 308 | 309 | [[package]] 310 | name = "pin-project-lite" 311 | version = "0.2.9" 312 | source = "registry+https://github.com/rust-lang/crates.io-index" 313 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 314 | 315 | [[package]] 316 | name = "pin-utils" 317 | version = "0.1.0" 318 | source = "registry+https://github.com/rust-lang/crates.io-index" 319 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 320 | 321 | [[package]] 322 | name = "proc-macro2" 323 | version = "1.0.42" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b" 326 | dependencies = [ 327 | "unicode-ident", 328 | ] 329 | 330 | [[package]] 331 | name = "queue" 332 | version = "0.1.0" 333 | dependencies = [ 334 | "lambda_runtime", 335 | "serde", 336 | "serde_json", 337 | "tokio", 338 | "tracing", 339 | "tracing-subscriber", 340 | ] 341 | 342 | [[package]] 343 | name = "quote" 344 | version = "1.0.20" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" 347 | dependencies = [ 348 | "proc-macro2", 349 | ] 350 | 351 | [[package]] 352 | name = "redox_syscall" 353 | version = "0.2.16" 354 | source = "registry+https://github.com/rust-lang/crates.io-index" 355 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 356 | dependencies = [ 357 | "bitflags", 358 | ] 359 | 360 | [[package]] 361 | name = "ryu" 362 | version = "1.0.10" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" 365 | 366 | [[package]] 367 | name = "scopeguard" 368 | version = "1.1.0" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 371 | 372 | [[package]] 373 | name = "serde" 374 | version = "1.0.141" 375 | source = "registry+https://github.com/rust-lang/crates.io-index" 376 | checksum = "7af873f2c95b99fcb0bd0fe622a43e29514658873c8ceba88c4cb88833a22500" 377 | dependencies = [ 378 | "serde_derive", 379 | ] 380 | 381 | [[package]] 382 | name = "serde_derive" 383 | version = "1.0.141" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "75743a150d003dd863b51dc809bcad0d73f2102c53632f1e954e738192a3413f" 386 | dependencies = [ 387 | "proc-macro2", 388 | "quote", 389 | "syn", 390 | ] 391 | 392 | [[package]] 393 | name = "serde_json" 394 | version = "1.0.82" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" 397 | dependencies = [ 398 | "itoa", 399 | "ryu", 400 | "serde", 401 | ] 402 | 403 | [[package]] 404 | name = "sharded-slab" 405 | version = "0.1.4" 406 | source = "registry+https://github.com/rust-lang/crates.io-index" 407 | checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" 408 | dependencies = [ 409 | "lazy_static", 410 | ] 411 | 412 | [[package]] 413 | name = "signal-hook-registry" 414 | version = "1.4.0" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" 417 | dependencies = [ 418 | "libc", 419 | ] 420 | 421 | [[package]] 422 | name = "smallvec" 423 | version = "1.9.0" 424 | source = "registry+https://github.com/rust-lang/crates.io-index" 425 | checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" 426 | 427 | [[package]] 428 | name = "socket2" 429 | version = "0.4.4" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" 432 | dependencies = [ 433 | "libc", 434 | "winapi", 435 | ] 436 | 437 | [[package]] 438 | name = "syn" 439 | version = "1.0.98" 440 | source = "registry+https://github.com/rust-lang/crates.io-index" 441 | checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" 442 | dependencies = [ 443 | "proc-macro2", 444 | "quote", 445 | "unicode-ident", 446 | ] 447 | 448 | [[package]] 449 | name = "thread_local" 450 | version = "1.1.4" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" 453 | dependencies = [ 454 | "once_cell", 455 | ] 456 | 457 | [[package]] 458 | name = "tokio" 459 | version = "1.20.1" 460 | source = "registry+https://github.com/rust-lang/crates.io-index" 461 | checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" 462 | dependencies = [ 463 | "autocfg", 464 | "bytes", 465 | "libc", 466 | "memchr", 467 | "mio", 468 | "num_cpus", 469 | "once_cell", 470 | "parking_lot", 471 | "pin-project-lite", 472 | "signal-hook-registry", 473 | "socket2", 474 | "tokio-macros", 475 | "winapi", 476 | ] 477 | 478 | [[package]] 479 | name = "tokio-macros" 480 | version = "1.8.0" 481 | source = "registry+https://github.com/rust-lang/crates.io-index" 482 | checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" 483 | dependencies = [ 484 | "proc-macro2", 485 | "quote", 486 | "syn", 487 | ] 488 | 489 | [[package]] 490 | name = "tokio-stream" 491 | version = "0.1.9" 492 | source = "registry+https://github.com/rust-lang/crates.io-index" 493 | checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" 494 | dependencies = [ 495 | "futures-core", 496 | "pin-project-lite", 497 | "tokio", 498 | ] 499 | 500 | [[package]] 501 | name = "tower" 502 | version = "0.4.13" 503 | source = "registry+https://github.com/rust-lang/crates.io-index" 504 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 505 | dependencies = [ 506 | "futures-core", 507 | "futures-util", 508 | "pin-project", 509 | "pin-project-lite", 510 | "tower-layer", 511 | "tower-service", 512 | "tracing", 513 | ] 514 | 515 | [[package]] 516 | name = "tower-layer" 517 | version = "0.3.1" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" 520 | 521 | [[package]] 522 | name = "tower-service" 523 | version = "0.3.2" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 526 | 527 | [[package]] 528 | name = "tracing" 529 | version = "0.1.36" 530 | source = "registry+https://github.com/rust-lang/crates.io-index" 531 | checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" 532 | dependencies = [ 533 | "cfg-if", 534 | "log", 535 | "pin-project-lite", 536 | "tracing-attributes", 537 | "tracing-core", 538 | ] 539 | 540 | [[package]] 541 | name = "tracing-attributes" 542 | version = "0.1.22" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" 545 | dependencies = [ 546 | "proc-macro2", 547 | "quote", 548 | "syn", 549 | ] 550 | 551 | [[package]] 552 | name = "tracing-core" 553 | version = "0.1.29" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" 556 | dependencies = [ 557 | "once_cell", 558 | "valuable", 559 | ] 560 | 561 | [[package]] 562 | name = "tracing-log" 563 | version = "0.1.3" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" 566 | dependencies = [ 567 | "lazy_static", 568 | "log", 569 | "tracing-core", 570 | ] 571 | 572 | [[package]] 573 | name = "tracing-subscriber" 574 | version = "0.3.15" 575 | source = "registry+https://github.com/rust-lang/crates.io-index" 576 | checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" 577 | dependencies = [ 578 | "ansi_term", 579 | "sharded-slab", 580 | "smallvec", 581 | "thread_local", 582 | "tracing-core", 583 | "tracing-log", 584 | ] 585 | 586 | [[package]] 587 | name = "try-lock" 588 | version = "0.2.3" 589 | source = "registry+https://github.com/rust-lang/crates.io-index" 590 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" 591 | 592 | [[package]] 593 | name = "unicode-ident" 594 | version = "1.0.2" 595 | source = "registry+https://github.com/rust-lang/crates.io-index" 596 | checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" 597 | 598 | [[package]] 599 | name = "valuable" 600 | version = "0.1.0" 601 | source = "registry+https://github.com/rust-lang/crates.io-index" 602 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 603 | 604 | [[package]] 605 | name = "want" 606 | version = "0.3.0" 607 | source = "registry+https://github.com/rust-lang/crates.io-index" 608 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 609 | dependencies = [ 610 | "log", 611 | "try-lock", 612 | ] 613 | 614 | [[package]] 615 | name = "wasi" 616 | version = "0.11.0+wasi-snapshot-preview1" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 619 | 620 | [[package]] 621 | name = "winapi" 622 | version = "0.3.9" 623 | source = "registry+https://github.com/rust-lang/crates.io-index" 624 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 625 | dependencies = [ 626 | "winapi-i686-pc-windows-gnu", 627 | "winapi-x86_64-pc-windows-gnu", 628 | ] 629 | 630 | [[package]] 631 | name = "winapi-i686-pc-windows-gnu" 632 | version = "0.4.0" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 635 | 636 | [[package]] 637 | name = "winapi-x86_64-pc-windows-gnu" 638 | version = "0.4.0" 639 | source = "registry+https://github.com/rust-lang/crates.io-index" 640 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 641 | 642 | [[package]] 643 | name = "windows-sys" 644 | version = "0.36.1" 645 | source = "registry+https://github.com/rust-lang/crates.io-index" 646 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 647 | dependencies = [ 648 | "windows_aarch64_msvc", 649 | "windows_i686_gnu", 650 | "windows_i686_msvc", 651 | "windows_x86_64_gnu", 652 | "windows_x86_64_msvc", 653 | ] 654 | 655 | [[package]] 656 | name = "windows_aarch64_msvc" 657 | version = "0.36.1" 658 | source = "registry+https://github.com/rust-lang/crates.io-index" 659 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 660 | 661 | [[package]] 662 | name = "windows_i686_gnu" 663 | version = "0.36.1" 664 | source = "registry+https://github.com/rust-lang/crates.io-index" 665 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 666 | 667 | [[package]] 668 | name = "windows_i686_msvc" 669 | version = "0.36.1" 670 | source = "registry+https://github.com/rust-lang/crates.io-index" 671 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 672 | 673 | [[package]] 674 | name = "windows_x86_64_gnu" 675 | version = "0.36.1" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 678 | 679 | [[package]] 680 | name = "windows_x86_64_msvc" 681 | version = "0.36.1" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 684 | -------------------------------------------------------------------------------- /rust-api-gateway-v1/functions/api/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "ansi_term" 7 | version = "0.12.1" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 10 | dependencies = [ 11 | "winapi", 12 | ] 13 | 14 | [[package]] 15 | name = "api" 16 | version = "0.1.0" 17 | dependencies = [ 18 | "aws_lambda_events", 19 | "http", 20 | "lambda_runtime", 21 | "serde", 22 | "serde_json", 23 | "tokio", 24 | "tracing", 25 | "tracing-subscriber", 26 | ] 27 | 28 | [[package]] 29 | name = "async-stream" 30 | version = "0.3.3" 31 | source = "registry+https://github.com/rust-lang/crates.io-index" 32 | checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" 33 | dependencies = [ 34 | "async-stream-impl", 35 | "futures-core", 36 | ] 37 | 38 | [[package]] 39 | name = "async-stream-impl" 40 | version = "0.3.3" 41 | source = "registry+https://github.com/rust-lang/crates.io-index" 42 | checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" 43 | dependencies = [ 44 | "proc-macro2", 45 | "quote", 46 | "syn", 47 | ] 48 | 49 | [[package]] 50 | name = "autocfg" 51 | version = "1.1.0" 52 | source = "registry+https://github.com/rust-lang/crates.io-index" 53 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 54 | 55 | [[package]] 56 | name = "aws_lambda_events" 57 | version = "0.6.3" 58 | source = "registry+https://github.com/rust-lang/crates.io-index" 59 | checksum = "55d7e5deac5e49330042b4e174dafe84ebf71685bfcd94f285bac7aa31e0aeb1" 60 | dependencies = [ 61 | "base64", 62 | "bytes", 63 | "chrono", 64 | "http", 65 | "http-body", 66 | "http-serde", 67 | "query_map", 68 | "serde", 69 | "serde_derive", 70 | "serde_json", 71 | ] 72 | 73 | [[package]] 74 | name = "base64" 75 | version = "0.13.0" 76 | source = "registry+https://github.com/rust-lang/crates.io-index" 77 | checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" 78 | 79 | [[package]] 80 | name = "bitflags" 81 | version = "1.3.2" 82 | source = "registry+https://github.com/rust-lang/crates.io-index" 83 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 84 | 85 | [[package]] 86 | name = "bytes" 87 | version = "1.2.1" 88 | source = "registry+https://github.com/rust-lang/crates.io-index" 89 | checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" 90 | dependencies = [ 91 | "serde", 92 | ] 93 | 94 | [[package]] 95 | name = "cfg-if" 96 | version = "1.0.0" 97 | source = "registry+https://github.com/rust-lang/crates.io-index" 98 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 99 | 100 | [[package]] 101 | name = "chrono" 102 | version = "0.4.19" 103 | source = "registry+https://github.com/rust-lang/crates.io-index" 104 | checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" 105 | dependencies = [ 106 | "libc", 107 | "num-integer", 108 | "num-traits", 109 | "serde", 110 | "time", 111 | "winapi", 112 | ] 113 | 114 | [[package]] 115 | name = "fnv" 116 | version = "1.0.7" 117 | source = "registry+https://github.com/rust-lang/crates.io-index" 118 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 119 | 120 | [[package]] 121 | name = "futures-channel" 122 | version = "0.3.21" 123 | source = "registry+https://github.com/rust-lang/crates.io-index" 124 | checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" 125 | dependencies = [ 126 | "futures-core", 127 | ] 128 | 129 | [[package]] 130 | name = "futures-core" 131 | version = "0.3.21" 132 | source = "registry+https://github.com/rust-lang/crates.io-index" 133 | checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" 134 | 135 | [[package]] 136 | name = "futures-task" 137 | version = "0.3.21" 138 | source = "registry+https://github.com/rust-lang/crates.io-index" 139 | checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" 140 | 141 | [[package]] 142 | name = "futures-util" 143 | version = "0.3.21" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" 146 | dependencies = [ 147 | "futures-core", 148 | "futures-task", 149 | "pin-project-lite", 150 | "pin-utils", 151 | ] 152 | 153 | [[package]] 154 | name = "hermit-abi" 155 | version = "0.1.19" 156 | source = "registry+https://github.com/rust-lang/crates.io-index" 157 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 158 | dependencies = [ 159 | "libc", 160 | ] 161 | 162 | [[package]] 163 | name = "http" 164 | version = "0.2.8" 165 | source = "registry+https://github.com/rust-lang/crates.io-index" 166 | checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" 167 | dependencies = [ 168 | "bytes", 169 | "fnv", 170 | "itoa", 171 | ] 172 | 173 | [[package]] 174 | name = "http-body" 175 | version = "0.4.5" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 178 | dependencies = [ 179 | "bytes", 180 | "http", 181 | "pin-project-lite", 182 | ] 183 | 184 | [[package]] 185 | name = "http-serde" 186 | version = "1.1.0" 187 | source = "registry+https://github.com/rust-lang/crates.io-index" 188 | checksum = "6d98b3d9662de70952b14c4840ee0f37e23973542a363e2275f4b9d024ff6cca" 189 | dependencies = [ 190 | "http", 191 | "serde", 192 | ] 193 | 194 | [[package]] 195 | name = "httparse" 196 | version = "1.7.1" 197 | source = "registry+https://github.com/rust-lang/crates.io-index" 198 | checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" 199 | 200 | [[package]] 201 | name = "httpdate" 202 | version = "1.0.2" 203 | source = "registry+https://github.com/rust-lang/crates.io-index" 204 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 205 | 206 | [[package]] 207 | name = "hyper" 208 | version = "0.14.20" 209 | source = "registry+https://github.com/rust-lang/crates.io-index" 210 | checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" 211 | dependencies = [ 212 | "bytes", 213 | "futures-channel", 214 | "futures-core", 215 | "futures-util", 216 | "http", 217 | "http-body", 218 | "httparse", 219 | "httpdate", 220 | "itoa", 221 | "pin-project-lite", 222 | "socket2", 223 | "tokio", 224 | "tower-service", 225 | "tracing", 226 | "want", 227 | ] 228 | 229 | [[package]] 230 | name = "itoa" 231 | version = "1.0.2" 232 | source = "registry+https://github.com/rust-lang/crates.io-index" 233 | checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" 234 | 235 | [[package]] 236 | name = "lambda_runtime" 237 | version = "0.6.0" 238 | source = "registry+https://github.com/rust-lang/crates.io-index" 239 | checksum = "76cf2e2a435d327806e7c8d46d341d624a6a2e3b35b253eee44d1c89980451be" 240 | dependencies = [ 241 | "async-stream", 242 | "bytes", 243 | "http", 244 | "hyper", 245 | "lambda_runtime_api_client", 246 | "serde", 247 | "serde_json", 248 | "tokio", 249 | "tokio-stream", 250 | "tower", 251 | "tracing", 252 | ] 253 | 254 | [[package]] 255 | name = "lambda_runtime_api_client" 256 | version = "0.6.0" 257 | source = "registry+https://github.com/rust-lang/crates.io-index" 258 | checksum = "b54698c666ffe503cb51fa66e4567e53e806128a10359de7095999d925a771ed" 259 | dependencies = [ 260 | "http", 261 | "hyper", 262 | "tokio", 263 | "tower-service", 264 | ] 265 | 266 | [[package]] 267 | name = "lazy_static" 268 | version = "1.4.0" 269 | source = "registry+https://github.com/rust-lang/crates.io-index" 270 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 271 | 272 | [[package]] 273 | name = "libc" 274 | version = "0.2.126" 275 | source = "registry+https://github.com/rust-lang/crates.io-index" 276 | checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" 277 | 278 | [[package]] 279 | name = "lock_api" 280 | version = "0.4.7" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" 283 | dependencies = [ 284 | "autocfg", 285 | "scopeguard", 286 | ] 287 | 288 | [[package]] 289 | name = "log" 290 | version = "0.4.17" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 293 | dependencies = [ 294 | "cfg-if", 295 | ] 296 | 297 | [[package]] 298 | name = "memchr" 299 | version = "2.5.0" 300 | source = "registry+https://github.com/rust-lang/crates.io-index" 301 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 302 | 303 | [[package]] 304 | name = "mio" 305 | version = "0.8.4" 306 | source = "registry+https://github.com/rust-lang/crates.io-index" 307 | checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" 308 | dependencies = [ 309 | "libc", 310 | "log", 311 | "wasi 0.11.0+wasi-snapshot-preview1", 312 | "windows-sys", 313 | ] 314 | 315 | [[package]] 316 | name = "num-integer" 317 | version = "0.1.45" 318 | source = "registry+https://github.com/rust-lang/crates.io-index" 319 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" 320 | dependencies = [ 321 | "autocfg", 322 | "num-traits", 323 | ] 324 | 325 | [[package]] 326 | name = "num-traits" 327 | version = "0.2.15" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" 330 | dependencies = [ 331 | "autocfg", 332 | ] 333 | 334 | [[package]] 335 | name = "num_cpus" 336 | version = "1.13.1" 337 | source = "registry+https://github.com/rust-lang/crates.io-index" 338 | checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" 339 | dependencies = [ 340 | "hermit-abi", 341 | "libc", 342 | ] 343 | 344 | [[package]] 345 | name = "once_cell" 346 | version = "1.13.0" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" 349 | 350 | [[package]] 351 | name = "parking_lot" 352 | version = "0.12.1" 353 | source = "registry+https://github.com/rust-lang/crates.io-index" 354 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 355 | dependencies = [ 356 | "lock_api", 357 | "parking_lot_core", 358 | ] 359 | 360 | [[package]] 361 | name = "parking_lot_core" 362 | version = "0.9.3" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" 365 | dependencies = [ 366 | "cfg-if", 367 | "libc", 368 | "redox_syscall", 369 | "smallvec", 370 | "windows-sys", 371 | ] 372 | 373 | [[package]] 374 | name = "pin-project" 375 | version = "1.0.11" 376 | source = "registry+https://github.com/rust-lang/crates.io-index" 377 | checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" 378 | dependencies = [ 379 | "pin-project-internal", 380 | ] 381 | 382 | [[package]] 383 | name = "pin-project-internal" 384 | version = "1.0.11" 385 | source = "registry+https://github.com/rust-lang/crates.io-index" 386 | checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" 387 | dependencies = [ 388 | "proc-macro2", 389 | "quote", 390 | "syn", 391 | ] 392 | 393 | [[package]] 394 | name = "pin-project-lite" 395 | version = "0.2.9" 396 | source = "registry+https://github.com/rust-lang/crates.io-index" 397 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 398 | 399 | [[package]] 400 | name = "pin-utils" 401 | version = "0.1.0" 402 | source = "registry+https://github.com/rust-lang/crates.io-index" 403 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 404 | 405 | [[package]] 406 | name = "proc-macro2" 407 | version = "1.0.42" 408 | source = "registry+https://github.com/rust-lang/crates.io-index" 409 | checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b" 410 | dependencies = [ 411 | "unicode-ident", 412 | ] 413 | 414 | [[package]] 415 | name = "query_map" 416 | version = "0.5.0" 417 | source = "registry+https://github.com/rust-lang/crates.io-index" 418 | checksum = "fe3212d819cbdcce67f786cdaf3fe0c2e9d09a6dcd9c9367a1bd344135b8c809" 419 | dependencies = [ 420 | "serde", 421 | "serde_derive", 422 | ] 423 | 424 | [[package]] 425 | name = "quote" 426 | version = "1.0.20" 427 | source = "registry+https://github.com/rust-lang/crates.io-index" 428 | checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" 429 | dependencies = [ 430 | "proc-macro2", 431 | ] 432 | 433 | [[package]] 434 | name = "redox_syscall" 435 | version = "0.2.16" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 438 | dependencies = [ 439 | "bitflags", 440 | ] 441 | 442 | [[package]] 443 | name = "ryu" 444 | version = "1.0.10" 445 | source = "registry+https://github.com/rust-lang/crates.io-index" 446 | checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" 447 | 448 | [[package]] 449 | name = "scopeguard" 450 | version = "1.1.0" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 453 | 454 | [[package]] 455 | name = "serde" 456 | version = "1.0.140" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03" 459 | dependencies = [ 460 | "serde_derive", 461 | ] 462 | 463 | [[package]] 464 | name = "serde_derive" 465 | version = "1.0.140" 466 | source = "registry+https://github.com/rust-lang/crates.io-index" 467 | checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da" 468 | dependencies = [ 469 | "proc-macro2", 470 | "quote", 471 | "syn", 472 | ] 473 | 474 | [[package]] 475 | name = "serde_json" 476 | version = "1.0.82" 477 | source = "registry+https://github.com/rust-lang/crates.io-index" 478 | checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" 479 | dependencies = [ 480 | "itoa", 481 | "ryu", 482 | "serde", 483 | ] 484 | 485 | [[package]] 486 | name = "sharded-slab" 487 | version = "0.1.4" 488 | source = "registry+https://github.com/rust-lang/crates.io-index" 489 | checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" 490 | dependencies = [ 491 | "lazy_static", 492 | ] 493 | 494 | [[package]] 495 | name = "signal-hook-registry" 496 | version = "1.4.0" 497 | source = "registry+https://github.com/rust-lang/crates.io-index" 498 | checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" 499 | dependencies = [ 500 | "libc", 501 | ] 502 | 503 | [[package]] 504 | name = "smallvec" 505 | version = "1.9.0" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" 508 | 509 | [[package]] 510 | name = "socket2" 511 | version = "0.4.4" 512 | source = "registry+https://github.com/rust-lang/crates.io-index" 513 | checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" 514 | dependencies = [ 515 | "libc", 516 | "winapi", 517 | ] 518 | 519 | [[package]] 520 | name = "syn" 521 | version = "1.0.98" 522 | source = "registry+https://github.com/rust-lang/crates.io-index" 523 | checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" 524 | dependencies = [ 525 | "proc-macro2", 526 | "quote", 527 | "unicode-ident", 528 | ] 529 | 530 | [[package]] 531 | name = "thread_local" 532 | version = "1.1.4" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" 535 | dependencies = [ 536 | "once_cell", 537 | ] 538 | 539 | [[package]] 540 | name = "time" 541 | version = "0.1.44" 542 | source = "registry+https://github.com/rust-lang/crates.io-index" 543 | checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" 544 | dependencies = [ 545 | "libc", 546 | "wasi 0.10.0+wasi-snapshot-preview1", 547 | "winapi", 548 | ] 549 | 550 | [[package]] 551 | name = "tokio" 552 | version = "1.20.1" 553 | source = "registry+https://github.com/rust-lang/crates.io-index" 554 | checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" 555 | dependencies = [ 556 | "autocfg", 557 | "bytes", 558 | "libc", 559 | "memchr", 560 | "mio", 561 | "num_cpus", 562 | "once_cell", 563 | "parking_lot", 564 | "pin-project-lite", 565 | "signal-hook-registry", 566 | "socket2", 567 | "tokio-macros", 568 | "winapi", 569 | ] 570 | 571 | [[package]] 572 | name = "tokio-macros" 573 | version = "1.8.0" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" 576 | dependencies = [ 577 | "proc-macro2", 578 | "quote", 579 | "syn", 580 | ] 581 | 582 | [[package]] 583 | name = "tokio-stream" 584 | version = "0.1.9" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" 587 | dependencies = [ 588 | "futures-core", 589 | "pin-project-lite", 590 | "tokio", 591 | ] 592 | 593 | [[package]] 594 | name = "tower" 595 | version = "0.4.13" 596 | source = "registry+https://github.com/rust-lang/crates.io-index" 597 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 598 | dependencies = [ 599 | "futures-core", 600 | "futures-util", 601 | "pin-project", 602 | "pin-project-lite", 603 | "tower-layer", 604 | "tower-service", 605 | "tracing", 606 | ] 607 | 608 | [[package]] 609 | name = "tower-layer" 610 | version = "0.3.1" 611 | source = "registry+https://github.com/rust-lang/crates.io-index" 612 | checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" 613 | 614 | [[package]] 615 | name = "tower-service" 616 | version = "0.3.2" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 619 | 620 | [[package]] 621 | name = "tracing" 622 | version = "0.1.36" 623 | source = "registry+https://github.com/rust-lang/crates.io-index" 624 | checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" 625 | dependencies = [ 626 | "cfg-if", 627 | "log", 628 | "pin-project-lite", 629 | "tracing-attributes", 630 | "tracing-core", 631 | ] 632 | 633 | [[package]] 634 | name = "tracing-attributes" 635 | version = "0.1.22" 636 | source = "registry+https://github.com/rust-lang/crates.io-index" 637 | checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" 638 | dependencies = [ 639 | "proc-macro2", 640 | "quote", 641 | "syn", 642 | ] 643 | 644 | [[package]] 645 | name = "tracing-core" 646 | version = "0.1.29" 647 | source = "registry+https://github.com/rust-lang/crates.io-index" 648 | checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" 649 | dependencies = [ 650 | "once_cell", 651 | "valuable", 652 | ] 653 | 654 | [[package]] 655 | name = "tracing-log" 656 | version = "0.1.3" 657 | source = "registry+https://github.com/rust-lang/crates.io-index" 658 | checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" 659 | dependencies = [ 660 | "lazy_static", 661 | "log", 662 | "tracing-core", 663 | ] 664 | 665 | [[package]] 666 | name = "tracing-subscriber" 667 | version = "0.3.15" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" 670 | dependencies = [ 671 | "ansi_term", 672 | "sharded-slab", 673 | "smallvec", 674 | "thread_local", 675 | "tracing-core", 676 | "tracing-log", 677 | ] 678 | 679 | [[package]] 680 | name = "try-lock" 681 | version = "0.2.3" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" 684 | 685 | [[package]] 686 | name = "unicode-ident" 687 | version = "1.0.2" 688 | source = "registry+https://github.com/rust-lang/crates.io-index" 689 | checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" 690 | 691 | [[package]] 692 | name = "valuable" 693 | version = "0.1.0" 694 | source = "registry+https://github.com/rust-lang/crates.io-index" 695 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 696 | 697 | [[package]] 698 | name = "want" 699 | version = "0.3.0" 700 | source = "registry+https://github.com/rust-lang/crates.io-index" 701 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 702 | dependencies = [ 703 | "log", 704 | "try-lock", 705 | ] 706 | 707 | [[package]] 708 | name = "wasi" 709 | version = "0.10.0+wasi-snapshot-preview1" 710 | source = "registry+https://github.com/rust-lang/crates.io-index" 711 | checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" 712 | 713 | [[package]] 714 | name = "wasi" 715 | version = "0.11.0+wasi-snapshot-preview1" 716 | source = "registry+https://github.com/rust-lang/crates.io-index" 717 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 718 | 719 | [[package]] 720 | name = "winapi" 721 | version = "0.3.9" 722 | source = "registry+https://github.com/rust-lang/crates.io-index" 723 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 724 | dependencies = [ 725 | "winapi-i686-pc-windows-gnu", 726 | "winapi-x86_64-pc-windows-gnu", 727 | ] 728 | 729 | [[package]] 730 | name = "winapi-i686-pc-windows-gnu" 731 | version = "0.4.0" 732 | source = "registry+https://github.com/rust-lang/crates.io-index" 733 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 734 | 735 | [[package]] 736 | name = "winapi-x86_64-pc-windows-gnu" 737 | version = "0.4.0" 738 | source = "registry+https://github.com/rust-lang/crates.io-index" 739 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 740 | 741 | [[package]] 742 | name = "windows-sys" 743 | version = "0.36.1" 744 | source = "registry+https://github.com/rust-lang/crates.io-index" 745 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 746 | dependencies = [ 747 | "windows_aarch64_msvc", 748 | "windows_i686_gnu", 749 | "windows_i686_msvc", 750 | "windows_x86_64_gnu", 751 | "windows_x86_64_msvc", 752 | ] 753 | 754 | [[package]] 755 | name = "windows_aarch64_msvc" 756 | version = "0.36.1" 757 | source = "registry+https://github.com/rust-lang/crates.io-index" 758 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 759 | 760 | [[package]] 761 | name = "windows_i686_gnu" 762 | version = "0.36.1" 763 | source = "registry+https://github.com/rust-lang/crates.io-index" 764 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 765 | 766 | [[package]] 767 | name = "windows_i686_msvc" 768 | version = "0.36.1" 769 | source = "registry+https://github.com/rust-lang/crates.io-index" 770 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 771 | 772 | [[package]] 773 | name = "windows_x86_64_gnu" 774 | version = "0.36.1" 775 | source = "registry+https://github.com/rust-lang/crates.io-index" 776 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 777 | 778 | [[package]] 779 | name = "windows_x86_64_msvc" 780 | version = "0.36.1" 781 | source = "registry+https://github.com/rust-lang/crates.io-index" 782 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 783 | -------------------------------------------------------------------------------- /rust-api-gateway-v1-2/functions/api/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "ansi_term" 7 | version = "0.12.1" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 10 | dependencies = [ 11 | "winapi", 12 | ] 13 | 14 | [[package]] 15 | name = "api" 16 | version = "0.1.0" 17 | dependencies = [ 18 | "lambda_http", 19 | "serde", 20 | "serde_json", 21 | "tokio", 22 | "tracing", 23 | "tracing-subscriber", 24 | ] 25 | 26 | [[package]] 27 | name = "async-stream" 28 | version = "0.3.3" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" 31 | dependencies = [ 32 | "async-stream-impl", 33 | "futures-core", 34 | ] 35 | 36 | [[package]] 37 | name = "async-stream-impl" 38 | version = "0.3.3" 39 | source = "registry+https://github.com/rust-lang/crates.io-index" 40 | checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" 41 | dependencies = [ 42 | "proc-macro2", 43 | "quote", 44 | "syn", 45 | ] 46 | 47 | [[package]] 48 | name = "autocfg" 49 | version = "1.1.0" 50 | source = "registry+https://github.com/rust-lang/crates.io-index" 51 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 52 | 53 | [[package]] 54 | name = "aws_lambda_events" 55 | version = "0.6.3" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "55d7e5deac5e49330042b4e174dafe84ebf71685bfcd94f285bac7aa31e0aeb1" 58 | dependencies = [ 59 | "base64", 60 | "bytes", 61 | "chrono", 62 | "http", 63 | "http-body", 64 | "http-serde", 65 | "query_map", 66 | "serde", 67 | "serde_derive", 68 | "serde_json", 69 | ] 70 | 71 | [[package]] 72 | name = "base64" 73 | version = "0.13.0" 74 | source = "registry+https://github.com/rust-lang/crates.io-index" 75 | checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" 76 | 77 | [[package]] 78 | name = "bitflags" 79 | version = "1.3.2" 80 | source = "registry+https://github.com/rust-lang/crates.io-index" 81 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 82 | 83 | [[package]] 84 | name = "bytes" 85 | version = "1.2.1" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" 88 | dependencies = [ 89 | "serde", 90 | ] 91 | 92 | [[package]] 93 | name = "cfg-if" 94 | version = "1.0.0" 95 | source = "registry+https://github.com/rust-lang/crates.io-index" 96 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 97 | 98 | [[package]] 99 | name = "chrono" 100 | version = "0.4.19" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" 103 | dependencies = [ 104 | "libc", 105 | "num-integer", 106 | "num-traits", 107 | "serde", 108 | "time", 109 | "winapi", 110 | ] 111 | 112 | [[package]] 113 | name = "encoding_rs" 114 | version = "0.8.31" 115 | source = "registry+https://github.com/rust-lang/crates.io-index" 116 | checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" 117 | dependencies = [ 118 | "cfg-if", 119 | ] 120 | 121 | [[package]] 122 | name = "fnv" 123 | version = "1.0.7" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 126 | 127 | [[package]] 128 | name = "form_urlencoded" 129 | version = "1.0.1" 130 | source = "registry+https://github.com/rust-lang/crates.io-index" 131 | checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" 132 | dependencies = [ 133 | "matches", 134 | "percent-encoding", 135 | ] 136 | 137 | [[package]] 138 | name = "futures-channel" 139 | version = "0.3.21" 140 | source = "registry+https://github.com/rust-lang/crates.io-index" 141 | checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" 142 | dependencies = [ 143 | "futures-core", 144 | ] 145 | 146 | [[package]] 147 | name = "futures-core" 148 | version = "0.3.21" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" 151 | 152 | [[package]] 153 | name = "futures-task" 154 | version = "0.3.21" 155 | source = "registry+https://github.com/rust-lang/crates.io-index" 156 | checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" 157 | 158 | [[package]] 159 | name = "futures-util" 160 | version = "0.3.21" 161 | source = "registry+https://github.com/rust-lang/crates.io-index" 162 | checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" 163 | dependencies = [ 164 | "futures-core", 165 | "futures-task", 166 | "pin-project-lite", 167 | "pin-utils", 168 | ] 169 | 170 | [[package]] 171 | name = "hermit-abi" 172 | version = "0.1.19" 173 | source = "registry+https://github.com/rust-lang/crates.io-index" 174 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 175 | dependencies = [ 176 | "libc", 177 | ] 178 | 179 | [[package]] 180 | name = "http" 181 | version = "0.2.8" 182 | source = "registry+https://github.com/rust-lang/crates.io-index" 183 | checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" 184 | dependencies = [ 185 | "bytes", 186 | "fnv", 187 | "itoa", 188 | ] 189 | 190 | [[package]] 191 | name = "http-body" 192 | version = "0.4.5" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 195 | dependencies = [ 196 | "bytes", 197 | "http", 198 | "pin-project-lite", 199 | ] 200 | 201 | [[package]] 202 | name = "http-serde" 203 | version = "1.1.0" 204 | source = "registry+https://github.com/rust-lang/crates.io-index" 205 | checksum = "6d98b3d9662de70952b14c4840ee0f37e23973542a363e2275f4b9d024ff6cca" 206 | dependencies = [ 207 | "http", 208 | "serde", 209 | ] 210 | 211 | [[package]] 212 | name = "httparse" 213 | version = "1.7.1" 214 | source = "registry+https://github.com/rust-lang/crates.io-index" 215 | checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" 216 | 217 | [[package]] 218 | name = "httpdate" 219 | version = "1.0.2" 220 | source = "registry+https://github.com/rust-lang/crates.io-index" 221 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 222 | 223 | [[package]] 224 | name = "hyper" 225 | version = "0.14.20" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" 228 | dependencies = [ 229 | "bytes", 230 | "futures-channel", 231 | "futures-core", 232 | "futures-util", 233 | "http", 234 | "http-body", 235 | "httparse", 236 | "httpdate", 237 | "itoa", 238 | "pin-project-lite", 239 | "socket2", 240 | "tokio", 241 | "tower-service", 242 | "tracing", 243 | "want", 244 | ] 245 | 246 | [[package]] 247 | name = "itoa" 248 | version = "1.0.2" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" 251 | 252 | [[package]] 253 | name = "lambda_http" 254 | version = "0.6.0" 255 | source = "registry+https://github.com/rust-lang/crates.io-index" 256 | checksum = "a540048486ccfaa407ef7d2b50b7ff7b8c18abfbf351731a4ff7ccd165fc43fa" 257 | dependencies = [ 258 | "aws_lambda_events", 259 | "base64", 260 | "bytes", 261 | "encoding_rs", 262 | "http", 263 | "http-body", 264 | "hyper", 265 | "lambda_runtime", 266 | "mime", 267 | "query_map", 268 | "serde", 269 | "serde_json", 270 | "serde_urlencoded", 271 | ] 272 | 273 | [[package]] 274 | name = "lambda_runtime" 275 | version = "0.6.0" 276 | source = "registry+https://github.com/rust-lang/crates.io-index" 277 | checksum = "76cf2e2a435d327806e7c8d46d341d624a6a2e3b35b253eee44d1c89980451be" 278 | dependencies = [ 279 | "async-stream", 280 | "bytes", 281 | "http", 282 | "hyper", 283 | "lambda_runtime_api_client", 284 | "serde", 285 | "serde_json", 286 | "tokio", 287 | "tokio-stream", 288 | "tower", 289 | "tracing", 290 | ] 291 | 292 | [[package]] 293 | name = "lambda_runtime_api_client" 294 | version = "0.6.0" 295 | source = "registry+https://github.com/rust-lang/crates.io-index" 296 | checksum = "b54698c666ffe503cb51fa66e4567e53e806128a10359de7095999d925a771ed" 297 | dependencies = [ 298 | "http", 299 | "hyper", 300 | "tokio", 301 | "tower-service", 302 | ] 303 | 304 | [[package]] 305 | name = "lazy_static" 306 | version = "1.4.0" 307 | source = "registry+https://github.com/rust-lang/crates.io-index" 308 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 309 | 310 | [[package]] 311 | name = "libc" 312 | version = "0.2.126" 313 | source = "registry+https://github.com/rust-lang/crates.io-index" 314 | checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" 315 | 316 | [[package]] 317 | name = "lock_api" 318 | version = "0.4.7" 319 | source = "registry+https://github.com/rust-lang/crates.io-index" 320 | checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" 321 | dependencies = [ 322 | "autocfg", 323 | "scopeguard", 324 | ] 325 | 326 | [[package]] 327 | name = "log" 328 | version = "0.4.17" 329 | source = "registry+https://github.com/rust-lang/crates.io-index" 330 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 331 | dependencies = [ 332 | "cfg-if", 333 | ] 334 | 335 | [[package]] 336 | name = "matches" 337 | version = "0.1.9" 338 | source = "registry+https://github.com/rust-lang/crates.io-index" 339 | checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" 340 | 341 | [[package]] 342 | name = "memchr" 343 | version = "2.5.0" 344 | source = "registry+https://github.com/rust-lang/crates.io-index" 345 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 346 | 347 | [[package]] 348 | name = "mime" 349 | version = "0.3.16" 350 | source = "registry+https://github.com/rust-lang/crates.io-index" 351 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" 352 | 353 | [[package]] 354 | name = "mio" 355 | version = "0.8.4" 356 | source = "registry+https://github.com/rust-lang/crates.io-index" 357 | checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" 358 | dependencies = [ 359 | "libc", 360 | "log", 361 | "wasi 0.11.0+wasi-snapshot-preview1", 362 | "windows-sys", 363 | ] 364 | 365 | [[package]] 366 | name = "num-integer" 367 | version = "0.1.45" 368 | source = "registry+https://github.com/rust-lang/crates.io-index" 369 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" 370 | dependencies = [ 371 | "autocfg", 372 | "num-traits", 373 | ] 374 | 375 | [[package]] 376 | name = "num-traits" 377 | version = "0.2.15" 378 | source = "registry+https://github.com/rust-lang/crates.io-index" 379 | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" 380 | dependencies = [ 381 | "autocfg", 382 | ] 383 | 384 | [[package]] 385 | name = "num_cpus" 386 | version = "1.13.1" 387 | source = "registry+https://github.com/rust-lang/crates.io-index" 388 | checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" 389 | dependencies = [ 390 | "hermit-abi", 391 | "libc", 392 | ] 393 | 394 | [[package]] 395 | name = "once_cell" 396 | version = "1.13.0" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" 399 | 400 | [[package]] 401 | name = "parking_lot" 402 | version = "0.12.1" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 405 | dependencies = [ 406 | "lock_api", 407 | "parking_lot_core", 408 | ] 409 | 410 | [[package]] 411 | name = "parking_lot_core" 412 | version = "0.9.3" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" 415 | dependencies = [ 416 | "cfg-if", 417 | "libc", 418 | "redox_syscall", 419 | "smallvec", 420 | "windows-sys", 421 | ] 422 | 423 | [[package]] 424 | name = "percent-encoding" 425 | version = "2.1.0" 426 | source = "registry+https://github.com/rust-lang/crates.io-index" 427 | checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" 428 | 429 | [[package]] 430 | name = "pin-project" 431 | version = "1.0.11" 432 | source = "registry+https://github.com/rust-lang/crates.io-index" 433 | checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" 434 | dependencies = [ 435 | "pin-project-internal", 436 | ] 437 | 438 | [[package]] 439 | name = "pin-project-internal" 440 | version = "1.0.11" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" 443 | dependencies = [ 444 | "proc-macro2", 445 | "quote", 446 | "syn", 447 | ] 448 | 449 | [[package]] 450 | name = "pin-project-lite" 451 | version = "0.2.9" 452 | source = "registry+https://github.com/rust-lang/crates.io-index" 453 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 454 | 455 | [[package]] 456 | name = "pin-utils" 457 | version = "0.1.0" 458 | source = "registry+https://github.com/rust-lang/crates.io-index" 459 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 460 | 461 | [[package]] 462 | name = "proc-macro2" 463 | version = "1.0.42" 464 | source = "registry+https://github.com/rust-lang/crates.io-index" 465 | checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b" 466 | dependencies = [ 467 | "unicode-ident", 468 | ] 469 | 470 | [[package]] 471 | name = "query_map" 472 | version = "0.5.0" 473 | source = "registry+https://github.com/rust-lang/crates.io-index" 474 | checksum = "fe3212d819cbdcce67f786cdaf3fe0c2e9d09a6dcd9c9367a1bd344135b8c809" 475 | dependencies = [ 476 | "form_urlencoded", 477 | "serde", 478 | "serde_derive", 479 | ] 480 | 481 | [[package]] 482 | name = "quote" 483 | version = "1.0.20" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" 486 | dependencies = [ 487 | "proc-macro2", 488 | ] 489 | 490 | [[package]] 491 | name = "redox_syscall" 492 | version = "0.2.16" 493 | source = "registry+https://github.com/rust-lang/crates.io-index" 494 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 495 | dependencies = [ 496 | "bitflags", 497 | ] 498 | 499 | [[package]] 500 | name = "ryu" 501 | version = "1.0.10" 502 | source = "registry+https://github.com/rust-lang/crates.io-index" 503 | checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" 504 | 505 | [[package]] 506 | name = "scopeguard" 507 | version = "1.1.0" 508 | source = "registry+https://github.com/rust-lang/crates.io-index" 509 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 510 | 511 | [[package]] 512 | name = "serde" 513 | version = "1.0.140" 514 | source = "registry+https://github.com/rust-lang/crates.io-index" 515 | checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03" 516 | dependencies = [ 517 | "serde_derive", 518 | ] 519 | 520 | [[package]] 521 | name = "serde_derive" 522 | version = "1.0.140" 523 | source = "registry+https://github.com/rust-lang/crates.io-index" 524 | checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da" 525 | dependencies = [ 526 | "proc-macro2", 527 | "quote", 528 | "syn", 529 | ] 530 | 531 | [[package]] 532 | name = "serde_json" 533 | version = "1.0.82" 534 | source = "registry+https://github.com/rust-lang/crates.io-index" 535 | checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" 536 | dependencies = [ 537 | "itoa", 538 | "ryu", 539 | "serde", 540 | ] 541 | 542 | [[package]] 543 | name = "serde_urlencoded" 544 | version = "0.7.1" 545 | source = "registry+https://github.com/rust-lang/crates.io-index" 546 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 547 | dependencies = [ 548 | "form_urlencoded", 549 | "itoa", 550 | "ryu", 551 | "serde", 552 | ] 553 | 554 | [[package]] 555 | name = "sharded-slab" 556 | version = "0.1.4" 557 | source = "registry+https://github.com/rust-lang/crates.io-index" 558 | checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" 559 | dependencies = [ 560 | "lazy_static", 561 | ] 562 | 563 | [[package]] 564 | name = "signal-hook-registry" 565 | version = "1.4.0" 566 | source = "registry+https://github.com/rust-lang/crates.io-index" 567 | checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" 568 | dependencies = [ 569 | "libc", 570 | ] 571 | 572 | [[package]] 573 | name = "smallvec" 574 | version = "1.9.0" 575 | source = "registry+https://github.com/rust-lang/crates.io-index" 576 | checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" 577 | 578 | [[package]] 579 | name = "socket2" 580 | version = "0.4.4" 581 | source = "registry+https://github.com/rust-lang/crates.io-index" 582 | checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" 583 | dependencies = [ 584 | "libc", 585 | "winapi", 586 | ] 587 | 588 | [[package]] 589 | name = "syn" 590 | version = "1.0.98" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" 593 | dependencies = [ 594 | "proc-macro2", 595 | "quote", 596 | "unicode-ident", 597 | ] 598 | 599 | [[package]] 600 | name = "thread_local" 601 | version = "1.1.4" 602 | source = "registry+https://github.com/rust-lang/crates.io-index" 603 | checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" 604 | dependencies = [ 605 | "once_cell", 606 | ] 607 | 608 | [[package]] 609 | name = "time" 610 | version = "0.1.44" 611 | source = "registry+https://github.com/rust-lang/crates.io-index" 612 | checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" 613 | dependencies = [ 614 | "libc", 615 | "wasi 0.10.0+wasi-snapshot-preview1", 616 | "winapi", 617 | ] 618 | 619 | [[package]] 620 | name = "tokio" 621 | version = "1.20.1" 622 | source = "registry+https://github.com/rust-lang/crates.io-index" 623 | checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" 624 | dependencies = [ 625 | "autocfg", 626 | "bytes", 627 | "libc", 628 | "memchr", 629 | "mio", 630 | "num_cpus", 631 | "once_cell", 632 | "parking_lot", 633 | "pin-project-lite", 634 | "signal-hook-registry", 635 | "socket2", 636 | "tokio-macros", 637 | "winapi", 638 | ] 639 | 640 | [[package]] 641 | name = "tokio-macros" 642 | version = "1.8.0" 643 | source = "registry+https://github.com/rust-lang/crates.io-index" 644 | checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" 645 | dependencies = [ 646 | "proc-macro2", 647 | "quote", 648 | "syn", 649 | ] 650 | 651 | [[package]] 652 | name = "tokio-stream" 653 | version = "0.1.9" 654 | source = "registry+https://github.com/rust-lang/crates.io-index" 655 | checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" 656 | dependencies = [ 657 | "futures-core", 658 | "pin-project-lite", 659 | "tokio", 660 | ] 661 | 662 | [[package]] 663 | name = "tower" 664 | version = "0.4.13" 665 | source = "registry+https://github.com/rust-lang/crates.io-index" 666 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 667 | dependencies = [ 668 | "futures-core", 669 | "futures-util", 670 | "pin-project", 671 | "pin-project-lite", 672 | "tower-layer", 673 | "tower-service", 674 | "tracing", 675 | ] 676 | 677 | [[package]] 678 | name = "tower-layer" 679 | version = "0.3.1" 680 | source = "registry+https://github.com/rust-lang/crates.io-index" 681 | checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" 682 | 683 | [[package]] 684 | name = "tower-service" 685 | version = "0.3.2" 686 | source = "registry+https://github.com/rust-lang/crates.io-index" 687 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 688 | 689 | [[package]] 690 | name = "tracing" 691 | version = "0.1.36" 692 | source = "registry+https://github.com/rust-lang/crates.io-index" 693 | checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" 694 | dependencies = [ 695 | "cfg-if", 696 | "log", 697 | "pin-project-lite", 698 | "tracing-attributes", 699 | "tracing-core", 700 | ] 701 | 702 | [[package]] 703 | name = "tracing-attributes" 704 | version = "0.1.22" 705 | source = "registry+https://github.com/rust-lang/crates.io-index" 706 | checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" 707 | dependencies = [ 708 | "proc-macro2", 709 | "quote", 710 | "syn", 711 | ] 712 | 713 | [[package]] 714 | name = "tracing-core" 715 | version = "0.1.29" 716 | source = "registry+https://github.com/rust-lang/crates.io-index" 717 | checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" 718 | dependencies = [ 719 | "once_cell", 720 | "valuable", 721 | ] 722 | 723 | [[package]] 724 | name = "tracing-log" 725 | version = "0.1.3" 726 | source = "registry+https://github.com/rust-lang/crates.io-index" 727 | checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" 728 | dependencies = [ 729 | "lazy_static", 730 | "log", 731 | "tracing-core", 732 | ] 733 | 734 | [[package]] 735 | name = "tracing-subscriber" 736 | version = "0.3.15" 737 | source = "registry+https://github.com/rust-lang/crates.io-index" 738 | checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" 739 | dependencies = [ 740 | "ansi_term", 741 | "sharded-slab", 742 | "smallvec", 743 | "thread_local", 744 | "tracing-core", 745 | "tracing-log", 746 | ] 747 | 748 | [[package]] 749 | name = "try-lock" 750 | version = "0.2.3" 751 | source = "registry+https://github.com/rust-lang/crates.io-index" 752 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" 753 | 754 | [[package]] 755 | name = "unicode-ident" 756 | version = "1.0.2" 757 | source = "registry+https://github.com/rust-lang/crates.io-index" 758 | checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" 759 | 760 | [[package]] 761 | name = "valuable" 762 | version = "0.1.0" 763 | source = "registry+https://github.com/rust-lang/crates.io-index" 764 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 765 | 766 | [[package]] 767 | name = "want" 768 | version = "0.3.0" 769 | source = "registry+https://github.com/rust-lang/crates.io-index" 770 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 771 | dependencies = [ 772 | "log", 773 | "try-lock", 774 | ] 775 | 776 | [[package]] 777 | name = "wasi" 778 | version = "0.10.0+wasi-snapshot-preview1" 779 | source = "registry+https://github.com/rust-lang/crates.io-index" 780 | checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" 781 | 782 | [[package]] 783 | name = "wasi" 784 | version = "0.11.0+wasi-snapshot-preview1" 785 | source = "registry+https://github.com/rust-lang/crates.io-index" 786 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 787 | 788 | [[package]] 789 | name = "winapi" 790 | version = "0.3.9" 791 | source = "registry+https://github.com/rust-lang/crates.io-index" 792 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 793 | dependencies = [ 794 | "winapi-i686-pc-windows-gnu", 795 | "winapi-x86_64-pc-windows-gnu", 796 | ] 797 | 798 | [[package]] 799 | name = "winapi-i686-pc-windows-gnu" 800 | version = "0.4.0" 801 | source = "registry+https://github.com/rust-lang/crates.io-index" 802 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 803 | 804 | [[package]] 805 | name = "winapi-x86_64-pc-windows-gnu" 806 | version = "0.4.0" 807 | source = "registry+https://github.com/rust-lang/crates.io-index" 808 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 809 | 810 | [[package]] 811 | name = "windows-sys" 812 | version = "0.36.1" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 815 | dependencies = [ 816 | "windows_aarch64_msvc", 817 | "windows_i686_gnu", 818 | "windows_i686_msvc", 819 | "windows_x86_64_gnu", 820 | "windows_x86_64_msvc", 821 | ] 822 | 823 | [[package]] 824 | name = "windows_aarch64_msvc" 825 | version = "0.36.1" 826 | source = "registry+https://github.com/rust-lang/crates.io-index" 827 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 828 | 829 | [[package]] 830 | name = "windows_i686_gnu" 831 | version = "0.36.1" 832 | source = "registry+https://github.com/rust-lang/crates.io-index" 833 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 834 | 835 | [[package]] 836 | name = "windows_i686_msvc" 837 | version = "0.36.1" 838 | source = "registry+https://github.com/rust-lang/crates.io-index" 839 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 840 | 841 | [[package]] 842 | name = "windows_x86_64_gnu" 843 | version = "0.36.1" 844 | source = "registry+https://github.com/rust-lang/crates.io-index" 845 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 846 | 847 | [[package]] 848 | name = "windows_x86_64_msvc" 849 | version = "0.36.1" 850 | source = "registry+https://github.com/rust-lang/crates.io-index" 851 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 852 | --------------------------------------------------------------------------------