[package]
edition = "2024"
rust-version = "1.85"
name = "sceptre"
version = "0.3.0"
authors = ["Na'aman Hirschfeld <nhirschfeld@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Rust reimplementation of EasyOCR (CRAFT detection + gen2 CRNN recognition) over ONNX."
homepage = "https://github.com/Goldziher/sceptre"
documentation = "https://docs.rs/sceptre"
readme = "README.md"
keywords = [
"ocr",
"text-recognition",
"easyocr",
"craft",
"onnx",
]
categories = [
"computer-vision",
"text-processing",
]
license = "MIT"
repository = "https://github.com/Goldziher/sceptre"
resolver = "2"
[features]
bench = []
candle = []
default = []
download = ["dep:hf-hub"]
mcp = [
"dep:rmcp",
"dep:schemars",
"dep:tokio",
]
ort = ["dep:ort"]
ort-bundled = [
"ort",
"ort?/download-binaries",
"ort?/tls-rustls",
]
ort-dynamic = [
"ort",
"ort?/load-dynamic",
]
tract = ["dep:tract-onnx"]
[lib]
name = "sceptre"
path = "src/lib.rs"
[[test]]
name = "backend_agreement"
path = "tests/backend_agreement.rs"
[[test]]
name = "max_lines"
path = "tests/max_lines.rs"
[[test]]
name = "mcp_smoke"
path = "tests/mcp_smoke.rs"
[[test]]
name = "model_bytes"
path = "tests/model_bytes.rs"
[[test]]
name = "tier1_engine"
path = "tests/tier1_engine.rs"
[[test]]
name = "tier1_image"
path = "tests/tier1_image.rs"
[[test]]
name = "tier2_golden"
path = "tests/tier2_golden.rs"
[[bench]]
name = "detect"
path = "benches/detect.rs"
harness = false
required-features = ["bench"]
[[bench]]
name = "recognize"
path = "benches/recognize.rs"
harness = false
required-features = ["bench"]
[dependencies.hf-hub]
version = "1.0"
features = [
"blocking",
"rustls-tls",
]
optional = true
default-features = false
[dependencies.image]
version = "0.25"
features = [
"png",
"jpeg",
"bmp",
"gif",
"tiff",
"webp",
"pnm",
]
default-features = false
[dependencies.imageproc]
version = "0.27"
default-features = false
[dependencies.ndarray]
version = "0.17"
[dependencies.once_cell]
version = "1.21"
[dependencies.ort]
version = "2.0.0-rc.13"
features = [
"std",
"ndarray",
"api-18",
]
optional = true
default-features = false
[dependencies.rmcp]
version = "3.1"
features = [
"server",
"macros",
"transport-io",
]
optional = true
[dependencies.schemars]
version = "1.2"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.sha2]
version = "0.11"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.53"
features = [
"rt-multi-thread",
"macros",
"io-std",
"sync",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tract-onnx]
version = "0.23.4"
optional = true
default-features = false
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.serde_json]
version = "1.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.num_cpus]
version = "1.17"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rayon]
version = "1.12"
[lints.clippy]
dbg_macro = "deny"
print_stderr = "deny"
print_stdout = "deny"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "deny"