[package] name = "regex" version = "1.7.1" #:version authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" repository = "https://github.com/rust-lang/regex" documentation = "https://docs.rs/regex" homepage = "https://github.com/rust-lang/regex" description = """ An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs. """ categories = ["text-processing"] autotests = false exclude = ["/scripts/*", "/.github/*"] edition = "2018" [workspace] members = [ "bench", "regex-capi", "regex-debug", "regex-syntax", ] [lib] # There are no benchmarks in the library code itself bench = false # Doc tests fail when some features aren't present. The easiest way to work # around this is to disable automatic doc testing, but explicitly test them # with `cargo test --doc`. doctest = false # Features are documented in the "Crate features" section of the crate docs: # https://docs.rs/regex/*/#crate-features [features] default = ["std", "perf", "unicode", "regex-syntax/default"] # ECOSYSTEM FEATURES # The 'std' feature permits the regex crate to use the standard library. This # is intended to support future use cases where the regex crate may be able # to compile without std, and instead just rely on 'core' and 'alloc' (for # example). Currently, this isn't supported, and removing the 'std' feature # will prevent regex from compiling. std = [] # The 'use_std' feature is DEPRECATED. It will be removed in regex 2. Until # then, it is an alias for the 'std' feature. use_std = ["std"] # PERFORMANCE FEATURES # Enables all performance features. perf = ["perf-cache", "perf-dfa", "perf-inline", "perf-literal"] # Enables fast caching. (If disabled, caching is still used, but is slower.) # Currently, this feature has no effect. It used to remove the thread_local # dependency and use a slower internal cache, but now the default cache has # been improved and thread_local is no longer a dependency at all. perf-cache = [] # Enables use of a lazy DFA when possible. perf-dfa = [] # Enables aggressive use of inlining. perf-inline = [] # Enables literal optimizations. perf-literal = ["aho-corasick", "memchr"] # UNICODE DATA FEATURES # 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", "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"] # UNSTABLE FEATURES (requires Rust nightly) # A blanket feature that governs whether unstable features are enabled or not. # Unstable features are disabled by default, and typically rely on unstable # features in rustc itself. unstable = ["pattern"] # Enable to use the unstable pattern traits defined in std. This is enabled # by default if the unstable feature is enabled. pattern = [] # For very fast prefix literal matching. [dependencies.aho-corasick] version = "0.7.18" optional = true # For skipping along search text quickly when a leading byte is known. [dependencies.memchr] version = "2.4.0" optional = true # For parsing regular expressions. [dependencies.regex-syntax] path = "regex-syntax" version = "0.6.27" default-features = false [dev-dependencies] # For examples. lazy_static = "1" # For property based tests. quickcheck = { version = "1.0.3", default-features = false } # For generating random test data. rand = { version = "0.8.3", default-features = false, features = ["getrandom", "small_rng"] } # To check README's example # TODO: Re-enable this once the MSRV is 1.43 or greater. # See: https://github.com/rust-lang/regex/issues/684 # See: https://github.com/rust-lang/regex/issues/685 # doc-comment = "0.3" # Run the test suite on the default behavior of Regex::new. # This includes a mish mash of NFAs and DFAs, which are chosen automatically # based on the regex. We test both of the NFA implementations by forcing their # usage with the test definitions below. (We can't test the DFA implementations # in the same way since they can't be used for every regex tested.) [[test]] path = "tests/test_default.rs" name = "default" # The same as the default tests, but run on bytes::Regex. [[test]] path = "tests/test_default_bytes.rs" name = "default-bytes" # Run the test suite on the NFA algorithm over Unicode codepoints. [[test]] path = "tests/test_nfa.rs" name = "nfa" # Run the test suite on the NFA algorithm over bytes that match UTF-8 only. [[test]] path = "tests/test_nfa_utf8bytes.rs" name = "nfa-utf8bytes" # Run the test suite on the NFA algorithm over arbitrary bytes. [[test]] path = "tests/test_nfa_bytes.rs" name = "nfa-bytes" # Run the test suite on the backtracking engine over Unicode codepoints. [[test]] path = "tests/test_backtrack.rs" name = "backtrack" # Run the test suite on the backtracking engine over bytes that match UTF-8 # only. [[test]] path = "tests/test_backtrack_utf8bytes.rs" name = "backtrack-utf8bytes" # Run the test suite on the backtracking engine over arbitrary bytes. [[test]] path = "tests/test_backtrack_bytes.rs" name = "backtrack-bytes" # Run all backends against each regex found on crates.io and make sure # that they all do the same thing. [[test]] path = "tests/test_crates_regex.rs" name = "crates-regex" [profile.release] debug = true [profile.bench] debug = true [profile.test] debug = true