regex-automata 0.3.9

Automata construction and matching using regular expressions.
Documentation
[package]
name = "regex-automata"
version = "0.3.9"  #:version
authors = ["The Rust Project Developers", "Andrew Gallant <jamslam@gmail.com>"]
description = "Automata construction and matching using regular expressions."
documentation = "https://docs.rs/regex-automata"
repository = "https://github.com/rust-lang/regex/tree/master/regex-automata"
readme = "README.md"
keywords = ["regex", "dfa", "automata", "automaton", "nfa"]
license = "MIT OR Apache-2.0"
categories = ["text-processing"]
edition = "2021"
autoexamples = false

[lib]
bench = false

# This crate has many many many features. See the crate docs for a description
# of each and when you might want to use them.
[features]
default = ["std", "syntax", "perf", "unicode", "meta", "nfa", "dfa", "hybrid"]
std = ["regex-syntax?/std", "memchr?/std", "aho-corasick?/std", "alloc"]
alloc = []
logging = ["dep:log", "aho-corasick?/logging", "memchr?/logging"]

syntax = ["dep:regex-syntax", "alloc"]

meta = ["syntax", "nfa-pikevm"]

nfa = ["nfa-thompson", "nfa-pikevm", "nfa-backtrack"]
nfa-thompson = ["alloc"]
nfa-pikevm = ["nfa-thompson"]
nfa-backtrack = ["nfa-thompson"]

dfa = ["dfa-build", "dfa-search", "dfa-onepass"]
dfa-build = ["nfa-thompson", "dfa-search"]
dfa-search = []
dfa-onepass = ["nfa-thompson"]

hybrid = ["alloc", "nfa-thompson"]

perf = ["perf-inline", "perf-literal"]
perf-inline = []
perf-literal = ["perf-literal-substring", "perf-literal-multisubstring"]
perf-literal-substring = ["aho-corasick?/perf-literal", "dep:memchr"]
perf-literal-multisubstring = ["std", "dep:aho-corasick"]

# Enables all Unicode features. This expands if new Unicode features are added.
unicode = [
  "unicode-age",
  "unicode-bool",
  "unicode-case",
  "unicode-gencat",
  "unicode-perl",
  "unicode-script",
  "unicode-segment",
  "unicode-word-boundary",
  "regex-syntax?/unicode",
]
# Enables use of the `Age` property, e.g., `\p{Age:3.0}`.
unicode-age = ["regex-syntax?/unicode-age"]
# Enables use of a smattering of boolean properties, e.g., `\p{Emoji}`.
unicode-bool = ["regex-syntax?/unicode-bool"]
# Enables Unicode-aware case insensitive matching, e.g., `(?i)β`.
unicode-case = ["regex-syntax?/unicode-case"]
# Enables Unicode general categories, e.g., `\p{Letter}` or `\pL`.
unicode-gencat = ["regex-syntax?/unicode-gencat"]
# Enables Unicode-aware Perl classes corresponding to `\w`, `\s` and `\d`.
unicode-perl = ["regex-syntax?/unicode-perl"]
# Enables Unicode scripts and script extensions, e.g., `\p{Greek}`.
unicode-script = ["regex-syntax?/unicode-script"]
# Enables Unicode segmentation properties, e.g., `\p{gcb=Extend}`.
unicode-segment = ["regex-syntax?/unicode-segment"]
# Enables Unicode word boundary support. If this is enabled with unicode-perl,
# then data tables from regex-syntax are used. Otherwise, a new data table
# inside regex-automata will be included.
unicode-word-boundary = []

# These are strictly internal features that may be removed or changed in
# non-compatible ways.
internal-instrument = ["internal-instrument-pikevm"]
internal-instrument-pikevm = ["logging", "std"]

[dependencies]
aho-corasick = { version = "1.0.0", optional = true, default-features = false }
log = { version = "0.4.14", optional = true }
memchr = { version = "2.6.0", optional = true, default-features = false }
regex-syntax = { path = "../regex-syntax", version = "0.7.4", optional = true, default-features = false }

[dev-dependencies]
anyhow = "1.0.69"
bstr = { version = "1.3.0", default-features = false, features = ["std"] }
doc-comment = "0.3.3"
quickcheck = { version = "1.0.3", default-features = false }
regex-test = { path = "../regex-test", version = "0.1.0" }

[dev-dependencies.env_logger]
version = "0.9.3"
default-features = false
features = ["atty", "humantime", "termcolor"]

# We put these tests here because they are written primarily against the
# regex-automata API, and in particular use regex-automata features for
# conditional compilation. If we moved these up as tests on 'regex' proper,
# then we'd need to duplicate regex-automata's complex features on 'regex' too,
# which I really do not want to do.
[[test]]
path = "tests/lib.rs"
name = "integration"