sceptre 0.3.0

Rust reimplementation of EasyOCR (CRAFT detection + gen2 CRNN recognition) over ONNX.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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"