[package]
name = "Rust_Grammar"
version = "2.1.1"
edition = "2021"
authors = ["Eeman Majumder <eeman.majumder@gmail.com>"]
description = "A comprehensive, production-ready text analysis tool and API server"
license = "MIT"
repository = "https://github.com/Eeman1113/rust_grammar"
readme = "README.md"
keywords = ["text-processing", "nlp", "grammar", "analysis", "api"]
categories = ["command-line-utilities", "text-processing", "web-programming"]
exclude = ["/tests/data/*", ".github/*"]
[[bin]]
name = "api-server"
path = "src/bin/api-server.rs"
required-features = ["server"]
[[bin]]
name = "api-server-enhanced"
path = "src/bin/api-server-enhanced.rs"
required-features = ["server"]
[dependencies]
clap = { version = "4.5", features = ["derive", "cargo", "env", "unicode", "wrap_help"], optional = true }
config = { version = "0.14", features = ["yaml", "toml"] }
dirs = "5.0"
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
serde_yaml = "0.9"
toml = "0.8"
axum = { version = "0.7", features = ["http1", "http2", "json", "multipart", "ws", "macros"], optional = true }
tokio = { version = "1.36", features = ["full"], optional = true }
tower = { version = "0.4", features = ["util", "timeout", "limit", "load-shed", "steer", "filter"], optional = true }
tower-http = { version = "0.5", features = ["cors", "trace", "fs", "compression-full", "limit", "set-header", "request-id", "util"], optional = true }
uuid = { version = "1.7", features = ["v4", "fast-rng", "serde"] }
thiserror = "1.0"
anyhow = "1.0"
regex = { version = "1.10", features = ["unicode", "perf", "std"] }
lazy_static = "1.4"
unicode-segmentation = "1.11"
unicode-normalization = "0.1"
strum = { version = "0.26", features = ["derive"] }
strum_macros = "0.26"
textwrap = { version = "0.16", features = ["terminal_size"], optional = true }
phf = { version = "0.11", features = ["macros"] }
itertools = "0.12"
rayon = { version = "1.9", optional = true }
dashmap = "5.5"
smallvec = { version = "1.13", features = ["serde", "write"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt", "ansi", "json", "time", "local-time"] }
tracing-appender = "0.2"
chrono = { version = "0.4", features = ["serde"] }
pulldown-cmark = { version = "0.10", optional = true }
scraper = { version = "0.18", optional = true }
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports", "async_tokio"] }
proptest = "1.4"
test-case = "3.3"
pretty_assertions = "1.4"
tempfile = "3.10"
tokio-test = "0.4"
reqwest = { version = "0.11", features = ["json", "blocking"] }
mockall = "0.12"
[[bench]]
name = "performance"
harness = false
[features]
default = ["cli", "parallel", "markdown", "html"]
cli = ["dep:clap", "dep:textwrap"]
server = ["dep:axum", "dep:tokio", "dep:tower", "dep:tower-http"]
parallel = ["dep:rayon"]
markdown = ["dep:pulldown-cmark"]
html = ["dep:scraper"]
full = ["cli", "server", "parallel", "markdown", "html"]
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "abort"
strip = true
[profile.dev]
opt-level = 0
debug = true
split-debuginfo = "unpacked"
[profile.bench]
inherits = "release"
debug = true