nlprule 0.6.4

A fast, low-resource Natural Language Processing and Error Correction library.
Documentation
[package]
name = "nlprule" # BUILD_BINDINGS_COMMENT
# name = "nlprule-core" # BUILD_BINDINGS_UNCOMMENT
version = "0.6.4"
authors = ["Benjamin Minixhofer <bminixhofer@gmail.com>"]
edition = "2018"
license = "MIT OR Apache-2.0"
description = "A fast, low-resource Natural Language Processing and Error Correction library."
repository = "https://github.com/bminixhofer/nlprule"
keywords = ["text", "spelling", "language-processing", "nlp", "grammar"]
categories = ["science", "text-processing"]

[dependencies]
serde = { version = "1.0", features = ["derive", "rc"] }
bincode = "1.3"
bimap = { version = "0.6", features = ["serde"] }
log = "0.4"
lazy_static = "1.4"
thiserror = "1"
either = { version = "1.6", features = ["serde"] }
itertools = "0.10"
enum_dispatch = "0.3"
unicase = "2.6"
derivative = "2.2"
fst = "0.4"
fs-err = "2.5"
aho-corasick = "0.7"
half = { version = "1.7", features = ["serde"] }
srx = { version = "^0.1.3", features = ["serde"] }
once_cell = "1"
cfg-if = "1"

rayon-cond = "0.1"
rayon = "1.5"

# regex backends
onig = { version = "6.1", default_features = false, optional = true }
fancy-regex = { version = "0.5", optional = true }

# needed for the bin targets
clap = { version = "3.0.0-beta.1", optional = true }
env_logger = { version = "0.8", optional = true }

# needed for compilation
regex-syntax = { version = "0.6", optional = true }
serde-xml-rs = { version = "0.4", optional = true }
xml-rs = { version = "0.8", optional = true }
roxmltree = { version = "0.14.0", optional = true }
serde_json = { version = "1", optional = true }

[dev-dependencies]
quickcheck = "1.0"
quickcheck_macros = "1.0"
criterion = "0.3"

[build-dependencies]
serde_json = "1"
fs-err = "2.5"

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

[features]
default = ["regex-onig"]

regex-onig = ["onig"]
# to switch to the fancy-regex engine, disable default features and add this feature
regex-fancy = ["fancy-regex"]

# this enables both regex backends at the same time and makes sure they are equivalent
# used only for compilation and tests
regex-all-test = ["regex-onig", "regex-fancy"]

# needed for the bin test targets and to compile nlprule binaries, you'll usually not need these
bin = ["clap", "env_logger"]
compile = [
    "regex-syntax",
    "serde-xml-rs",
    "xml-rs",
    "roxmltree",
    "serde_json",
    "srx/from_xml",
    "regex-all-test",
]

[[bin]]
name = "compile"
required-features = ["compile", "bin"]

[[bin]]
name = "test"
required-features = ["bin"]

[[bin]]
name = "run"
required-features = ["bin"]

[[bin]]
name = "test_disambiguation"
required-features = ["bin"]