[package]
edition = "2024"
name = "microkit"
version = "0.27.0"
authors = ["Matthew Wilding <mbwilding@gmail.com>"]
build = false
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "MicroKit library for creating a service"
readme = "README.md"
keywords = ["microservice"]
license-file = "LICENSE"
repository = "https://github.com/mbwilding/microkit"
[features]
auth = [
"dep:async-trait",
"dep:axum-extra",
"dep:jsonwebtoken",
"dep:reqwest",
]
dapr = [
"dep:dapr",
"dep:tonic",
]
database = [
"dep:sea-orm",
"dep:sea-orm-migration",
]
default = [
"tracing",
"database",
"health-checks",
"swagger",
"otel",
"dapr",
"auth",
]
health-checks = []
otel = [
"dep:tracing",
"dep:tower-http",
"dep:axum-otel",
"dep:axum-otel-metrics",
"dep:axum-tracing-opentelemetry",
"dep:opentelemetry",
"dep:opentelemetry-appender-log",
"dep:opentelemetry-http",
"dep:opentelemetry-otlp",
"dep:opentelemetry-semantic-conventions",
"dep:opentelemetry_sdk",
"dep:tracing-opentelemetry",
]
rapidoc = [
"dep:utoipa",
"dep:utoipa-axum",
"dep:utoipa-rapidoc",
]
redoc = [
"dep:utoipa",
"dep:utoipa-axum",
"dep:utoipa-redoc",
]
scalar = [
"dep:utoipa",
"dep:utoipa-axum",
"dep:utoipa-scalar",
]
swagger = [
"dep:utoipa",
"dep:utoipa-axum",
"dep:utoipa-swagger-ui",
]
tracing = [
"dep:tracing",
"dep:tracing-subscriber",
]
[lib]
name = "microkit"
path = "src/lib.rs"
[dependencies.anyhow]
version = "1.0"
[dependencies.async-trait]
version = "0.1"
optional = true
[dependencies.axum]
version = "0.8"
features = ["macros"]
[dependencies.axum-extra]
version = "0.12"
features = ["typed-header"]
optional = true
[dependencies.axum-otel]
version = "0.31"
optional = true
[dependencies.axum-otel-metrics]
version = "0.12"
optional = true
[dependencies.axum-tracing-opentelemetry]
version = "0.33"
optional = true
[dependencies.dapr]
version = "0.17.0"
optional = true
[dependencies.jsonwebtoken]
version = "10.3"
features = ["aws_lc_rs"]
optional = true
[dependencies.log]
version = "0.4"
features = ["std"]
[dependencies.opentelemetry]
version = "0.31"
features = [
"trace",
"metrics",
]
optional = true
[dependencies.opentelemetry-appender-log]
version = "0.31"
optional = true
[dependencies.opentelemetry-http]
version = "0.31"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.31"
features = [
"http-proto",
"http-json",
"logs",
"reqwest-blocking-client",
"reqwest-rustls",
]
optional = true
[dependencies.opentelemetry-semantic-conventions]
version = "0.31"
optional = true
[dependencies.opentelemetry_sdk]
version = "0.31"
features = [
"rt-tokio",
"metrics",
"logs",
"spec_unstable_metrics_views",
]
optional = true
[dependencies.reqwest]
version = "0.13"
features = ["json"]
optional = true
[dependencies.sea-orm]
version = "2.0.0-rc.31"
features = [
"debug-print",
"runtime-tokio-native-tls",
"sqlx-postgres",
]
optional = true
[dependencies.sea-orm-migration]
version = "2.0.0-rc.31"
features = [
"runtime-tokio-native-tls",
"sqlx-postgres",
]
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_yaml_ng]
version = "0.10"
[dependencies.tokio]
version = "1.45"
features = ["full"]
[dependencies.tonic]
version = "0.12.3"
optional = true
[dependencies.tower-http]
version = "0.6"
features = [
"trace",
"cors",
]
optional = true
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-opentelemetry]
version = "0.32"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true
[dependencies.utoipa]
version = "5.4"
features = ["axum_extras"]
optional = true
[dependencies.utoipa-axum]
version = "0.2"
optional = true
[dependencies.utoipa-rapidoc]
version = "6.0"
features = ["axum"]
optional = true
[dependencies.utoipa-redoc]
version = "6.0"
features = ["axum"]
optional = true
[dependencies.utoipa-scalar]
version = "0.3"
features = ["axum"]
optional = true
[dependencies.utoipa-swagger-ui]
version = "9.0"
features = ["axum"]
optional = true