[package]
name = "unparser-shared"
version = "0.12.0"
edition = "2021"
authors = ["iyulab"]
license = "MIT"
description = "Shared plumbing for the un* document extraction family — C-ABI conventions today; markdown refine and VLM/AI capabilities land as opt-in features"
repository = "https://github.com/iyulab/unparser-shared"
homepage = "https://github.com/iyulab/unparser-shared"
documentation = "https://docs.rs/unparser-shared"
readme = "README.md"
keywords = ["ffi", "c-abi", "error-handling", "document", "extraction"]
categories = ["development-tools::ffi", "api-bindings"]
rust-version = "1.88"
[package.metadata.docs.rs]
all-features = true
[features]
default = []
refine = ["dep:pulldown-cmark", "dep:pulldown-cmark-to-cmark"]
ai = ["dep:ureq", "dep:serde", "dep:serde_json", "dep:base64", "dep:thiserror"]
cli-update = ["dep:self_update", "dep:self-replace", "dep:tempfile", "dep:semver", "dep:colored"]
[dependencies]
pulldown-cmark = { version = "0.13", default-features = false, optional = true }
pulldown-cmark-to-cmark = { version = "22", optional = true }
ureq = { version = "3.4", default-features = false, features = ["rustls", "json"], optional = true }
serde = { version = "1", features = ["derive"], optional = true }
serde_json = { version = "1", optional = true }
base64 = { version = "0.23", optional = true }
thiserror = { version = "2.0", optional = true }
self_update = { version = "1.3", default-features = false, features = ["ureq", "rustls", "github", "progress-bar", "archive-zip", "archive-tar", "compression-tar-gz", "compression-zip-deflate"], optional = true }
self-replace = { version = "1.5", optional = true }
tempfile = { version = "3", optional = true }
semver = { version = "1.0", optional = true }
colored = { version = "3.1", optional = true }
[dev-dependencies]
proptest = "1"
pulldown-cmark = { version = "0.13", default-features = false }
tiny_http = "0.12"
[[test]]
name = "refine_golden"
path = "tests/refine_golden.rs"
required-features = ["refine"]
[[test]]
name = "refine_roundtrip_properties"
path = "tests/refine_roundtrip_properties.rs"
required-features = ["refine"]
[[test]]
name = "ai_image_understanding"
path = "tests/ai_image_understanding.rs"
required-features = ["ai"]
[[test]]
name = "ai_refine"
path = "tests/ai_refine.rs"
required-features = ["ai"]
[lints.rust]
missing_docs = "deny"
unsafe_op_in_unsafe_fn = "deny"