[package]
edition = "2024"
name = "this-rs"
version = "0.0.7"
authors = ["Riviere Théotime <t@ffs.holdings>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Framework for building complex multi-entity REST and GraphQL APIs with many relationships"
readme = "README.md"
keywords = [
"entity",
"relationship",
"rest",
"graphql",
"api",
]
categories = [
"web-programming",
"web-programming::http-server",
"database",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/this-rs/this"
resolver = "2"
[features]
all = [
"in-memory",
"dynamodb",
"graphql",
"grpc",
"websocket",
]
default = ["in-memory"]
dynamodb = [
"aws-sdk-dynamodb",
"serde_dynamo",
]
graphql = [
"async-graphql",
"async-graphql-axum",
"graphql-parser",
]
grpc = [
"tonic",
"tonic-prost",
"prost",
"prost-types",
]
in-memory = []
websocket = []
[lib]
name = "this"
path = "src/lib.rs"
[[example]]
name = "full_api"
path = "examples/full_api/main.rs"
[[example]]
name = "microservice"
path = "examples/microservice/main.rs"
[[example]]
name = "microservice_graphql"
path = "examples/microservice/main_graphql.rs"
required-features = ["graphql"]
[[example]]
name = "simple_api"
path = "examples/simple_api/main.rs"
[[test]]
name = "config_merging_tests"
path = "tests/config_merging_tests.rs"
[[test]]
name = "grpc_integration"
path = "tests/grpc_integration.rs"
[[test]]
name = "websocket_integration"
path = "tests/websocket_integration.rs"
[dependencies.anyhow]
version = "1.0"
[dependencies.async-graphql]
version = "7"
optional = true
[dependencies.async-graphql-axum]
version = "7"
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.aws-sdk-dynamodb]
version = "1.93"
optional = true
[dependencies.axum]
version = "0.8"
features = [
"macros",
"ws",
]
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.futures]
version = "0.3"
[dependencies.graphql-parser]
version = "0.4"
optional = true
[dependencies.prost]
version = "0.14"
optional = true
[dependencies.prost-types]
version = "0.14"
optional = true
[dependencies.regex]
version = "1.10"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_dynamo]
version = "4.0"
optional = true
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_yaml]
version = "0.9"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.40"
features = ["full"]
[dependencies.tonic]
version = "0.14"
optional = true
[dependencies.tonic-prost]
version = "0.14"
optional = true
[dependencies.tower]
version = "0.5"
[dependencies.tower-http]
version = "0.6"
features = [
"trace",
"cors",
]
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dependencies.uuid]
version = "1.10"
features = [
"v4",
"serde",
]
[dependencies.validator]
version = "0.20"
features = ["derive"]
[dev-dependencies.axum-test]
version = "18.1"
[dev-dependencies.futures-util]
version = "0.3"
[dev-dependencies.tokio-test]
version = "0.4"
[dev-dependencies.tokio-tungstenite]
version = "0.28"
[build-dependencies.tonic-prost-build]
version = "0.14"