[package] name = "regex-automata" version = "0.4.3" #:version authors = ["The Rust Project Developers", "Andrew Gallant "] 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 rust-version = "1.65" [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.8.2", 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"