[package]
edition = "2024"
rust-version = "1.95"
name = "llmtask"
version = "0.1.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Engine-agnostic Task abstraction for LLM structured-output: Task trait + Grammar (JSON Schema, Lark, Regex) + ImageAnalysis"
homepage = "https://github.com/findit-ai/llmtask"
documentation = "https://docs.rs/llmtask"
readme = "README.md"
keywords = [
"llm",
"vlm",
"structured-output",
"json-schema",
"constrained-decoding",
]
categories = [
"api-bindings",
"text-processing",
"data-structures",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/findit-ai/llmtask"
[features]
alloc = ["dep:smol_str"]
default = [
"std",
"json",
]
json = [
"dep:serde_json",
"alloc",
]
regex = [
"dep:regex",
"dep:regex-syntax",
"alloc",
]
serde = [
"dep:serde",
"serde/alloc",
"alloc",
"smol_str?/serde",
]
std = [
"alloc",
"thiserror/default",
"regex?/default",
"regex-syntax?/default",
"smol_str/default",
"serde?/std",
"serde_json?/std",
]
[lib]
name = "llmtask"
path = "src/lib.rs"
[dependencies.regex]
version = "1"
optional = true
default-features = false
[dependencies.regex-syntax]
version = "0.8"
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
default-features = false
[dependencies.serde_json]
version = "1"
features = ["alloc"]
optional = true
default-features = false
[dependencies.smol_str]
version = "0.3"
optional = true
default-features = false
[dependencies.thiserror]
version = "2"
default-features = false
[lints.rust]
rust_2018_idioms = "warn"
single_use_lifetimes = "warn"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(docsrs)",
"cfg(tarpaulin)",
]