[package]
edition = "2024"
name = "unistructgen"
version = "0.2.2"
authors = ["Maxim Bogovic (https://bogovick.com)"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A powerful Rust code generator"
readme = "README.md"
keywords = [
"codegen",
"json",
"struct",
"macro",
"api",
]
categories = ["development-tools"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/maxBogovick/unistructgen"
[features]
agent = [
"llm",
"dep:tracing",
"dep:uuid",
"dep:regex",
"dep:tokio",
]
default = ["json"]
env = []
full = [
"json",
"markdown",
"openapi",
"sql",
"graphql",
"env",
"llm",
"agent",
"mcp",
]
graphql = ["dep:graphql-parser"]
json = ["dep:serde_json"]
llm = [
"dep:reqwest",
"dep:dotenv",
"dep:tokio",
]
markdown = ["dep:pulldown-cmark"]
mcp = [
"dep:tracing",
"dep:axum",
"dep:tower-http",
"dep:dashmap",
"dep:tokio-stream",
"dep:uuid",
"dep:tokio",
]
openapi = [
"dep:openapiv3",
"dep:serde_yaml",
"dep:indexmap",
"dep:ureq",
"dep:regex",
]
sql = ["dep:sqlparser"]
[lib]
name = "unistructgen"
path = "src/lib.rs"
[dependencies.anyhow]
version = "1.0"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.7"
optional = true
[dependencies.dashmap]
version = "5.5"
optional = true
[dependencies.dotenv]
version = "0.15"
optional = true
[dependencies.futures-util]
version = "0.3"
[dependencies.graphql-parser]
version = "0.4"
optional = true
[dependencies.indexmap]
version = "2.0"
optional = true
[dependencies.openapiv3]
version = "2.0"
features = ["skip_serializing_defaults"]
optional = true
[dependencies.pulldown-cmark]
version = "0.9"
optional = true
[dependencies.regex]
version = "1.10"
optional = true
[dependencies.reqwest]
version = "0.11"
features = [
"json",
"stream",
]
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.serde_yaml]
version = "0.9"
optional = true
[dependencies.sqlparser]
version = "0.43"
optional = true
[dependencies.thiserror]
version = "1.0"
[dependencies.tokio]
version = "1.0"
features = ["full"]
optional = true
[dependencies.tokio-stream]
version = "0.1.18"
optional = true
[dependencies.tower-http]
version = "0.5"
features = ["cors"]
optional = true
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.ureq]
version = "2.9"
features = ["json"]
optional = true
[dependencies.uuid]
version = "1.0"
features = ["v4"]
optional = true
[dev-dependencies.assert_cmd]
version = "2.0"
[dev-dependencies.chrono]
version = "0.4"
features = ["serde"]
[dev-dependencies.predicates]
version = "3.1"
[dev-dependencies.pretty_assertions]
version = "1.4"
[dev-dependencies.tempfile]
version = "3.10"
[dev-dependencies.tokio]
version = "1.0"
features = [
"macros",
"rt",
]
[dev-dependencies.validator]
version = "0.18"
features = ["derive"]