[package]
name = "sakurs-core"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
rust-version.workspace = true
description = "High-performance sentence boundary detection using Delta-Stack Monoid algorithm"
keywords = ["sentence-boundary", "nlp", "text-processing", "monoid", "parallel"]
categories = ["text-processing", "algorithms", "parser-implementations"]
documentation = "https://docs.rs/sakurs-core"
readme = "README.md"
exclude = [
    ".*",
    "benches/*",
    "examples/*",
    "tests/*",
    "target/*",
    "Cargo.lock",
    "configs/test/*"
]

[dependencies]
thiserror.workspace = true
serde.workspace = true
# Memory optimization
smallvec = { version = "1.13", features = ["union", "serde"] }
# Parallel processing support
rayon = { version = "1.11", optional = true }
num_cpus = { version = "1.16", optional = true }
# Configuration support
toml = "0.9"
regex = "1.11"

[dev-dependencies]
criterion = { version = "0.8", features = ["html_reports"] }
proptest = "1.0"
tempfile = "3.24"

[[bench]]
name = "sentence_processor_benchmarks"
harness = false

[[bench]]
name = "adaptive_profiling"
harness = false

[[bench]]
name = "streaming_benchmark"
harness = false

[[bench]]
name = "throughput_baseline"
harness = false

[[example]]
name = "unified_api"

[features]
default = ["std", "parallel"]
std = []
parallel = ["rayon", "num_cpus"]
# no_std support preparation
no_std = []
# WASM support
wasm = []