synd-api 0.2.6

syndicationd backend api
[package]
authors.workspace    = true
categories.workspace = true
edition.workspace    = true
homepage.workspace   = true
keywords.workspace   = true
license.workspace    = true
repository.workspace = true

description = "syndicationd backend api"
name        = "synd-api"
readme      = "README.md"
version     = "0.2.6"

[[bin]]
name = "synd-api"
path = "src/main.rs"

[dependencies]
synd-auth = { path = "../synd_auth", version = "0.2.5" }
synd-feed = { path = "../synd_feed", version = "0.3.5", features = ["graphql"] }
synd-o11y = { path = "../synd_o11y", version = "0.1.9" }
synd-stdx = { path = "../synd_stdx", version = "0.1.1", features = ["color", "humantime"] }

anyhow             = { workspace = true }
async-graphql      = { workspace = true, features = ["tracing"] }
async-graphql-axum = { version = "7.0" }
async-trait        = { workspace = true }
axum               = { workspace = true }
axum-server        = { workspace = true }
chrono             = { workspace = true }
clap               = { workspace = true, features = ["derive", "env"] }
fdlimit            = { workspace = true }
feed-rs            = { workspace = true }
futures-util       = { workspace = true }
graphql_client     = { workspace = true }
kvsd               = { workspace = true }
moka               = { workspace = true, features = ["future"] }
pin-project        = "1.1.8"
reqwest            = { workspace = true }
serde              = { workspace = true }
serde_json         = "1.0.136"
thiserror          = { workspace = true }
tokio              = { workspace = true, features = ["macros", "rt-multi-thread", "sync"] }
tokio-metrics      = { version = "0.4.0", default-features = false, features = ["rt"] }
tokio-util         = { workspace = true }
tower              = { version = "0.5.2", default-features = false, features = ["limit", "timeout"] }
tower-http         = { version = "0.6.2", default-features = false, features = ["trace", "sensitive-headers", "cors", "limit"] }
tracing            = { workspace = true }

[features]
# Integration test
integration = []
# Enable graphql introspection
introspection        = []
opentelemetry-stdout = ["synd-o11y/opentelemetry-stdout"]

[dev-dependencies]
synd-test = { path = "../synd_test" }

assert_cmd         = { workspace = true }
insta              = { workspace = true, features = ["yaml"] }
tracing-subscriber = { workspace = true }

[lints]
workspace = true

[package.metadata.release]
pre-release-hook = ["just", "changelog", "{{version}}"]
pre-release-replacements = [
  { file = "CHANGELOG.md", search = "unreleased", replace = "v{{version}}", min = 0 },
  { file = "CHANGELOG.md", search = "__release_date__", replace = "{{date}}", min = 0 },
  { file = "README.md", search = "/synd-api-v.*/", replace = "/{{crate_name}}-v{{version}}/", min = 0 },
]
tag-message = "chore: release {{crate_name}} version {{version}}"

[package.metadata.dist]
# Currently, cargo-dist does not respect .cargo/config.toml at workspace toplevel
# this cause compile error dut to tokio-metrics which expect tokio-unstable is enabled
# https://github.com/axodotdev/cargo-dist/issues/513
dist = false