[package]
edition = "2024"
rust-version = "1.94"
name = "ferroni"
version = "2.2.2"
authors = ["Sebastian Software GmbH"]
build = "build.rs"
exclude = [
".cache/",
".cargo/",
"benches/",
"docs/",
"fuzz/",
"scripts/",
"examples/backtrack_rewrite_census.rs",
"examples/prefilter_census.rs",
"examples/profile_cpp_scanner.rs",
"examples/profile_scanner_patterns.rs",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Oniguruma's regex engine in pure Rust: full Oniguruma syntax, a vscode-oniguruma-compatible TextMate scanner, no C toolchain"
homepage = "https://ferroni.dev/"
documentation = "https://docs.rs/ferroni"
readme = "README.md"
keywords = [
"regex",
"oniguruma",
"textmate",
"syntax-highlighting",
"ferramenta",
]
categories = [
"text-processing",
"parsing",
"text-editors",
]
license = "BSD-2-Clause"
repository = "https://github.com/sebastian-software/ferroni"
[package.metadata.docs.rs]
all-features = false
features = []
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = ["dfa-prefilter"]
dfa-prefilter = [
"dep:regex-automata",
"dep:regex-syntax",
]
ffi = ["cc"]
onigmo = ["ffi"]
prefilter-self-check = ["dfa-prefilter"]
[lib]
name = "ferroni"
path = "src/lib.rs"
[[example]]
name = "basic_match"
path = "examples/basic_match.rs"
[[example]]
name = "scanner_tokenize"
path = "examples/scanner_tokenize.rs"
[[example]]
name = "shared_regex"
path = "examples/shared_regex.rs"
[[example]]
name = "syntax_modes"
path = "examples/syntax_modes.rs"
[[example]]
name = "website_sample"
path = "examples/website_sample.rs"
[[example]]
name = "website_walkthrough"
path = "examples/website_walkthrough.rs"
[[test]]
name = "api_test"
path = "tests/api_test.rs"
[[test]]
name = "backtrack_lint"
path = "tests/backtrack_lint.rs"
[[test]]
name = "backtrack_rewrite"
path = "tests/backtrack_rewrite.rs"
[[test]]
name = "compat_back"
path = "tests/compat_back.rs"
[[test]]
name = "compat_options"
path = "tests/compat_options.rs"
[[test]]
name = "compat_prefilter_differential"
path = "tests/compat_prefilter_differential.rs"
[[test]]
name = "compat_regset"
path = "tests/compat_regset.rs"
[[test]]
name = "compat_syntax"
path = "tests/compat_syntax.rs"
[[test]]
name = "compat_utf8"
path = "tests/compat_utf8.rs"
[[test]]
name = "default_case_fold_flag"
path = "tests/default_case_fold_flag.rs"
[[test]]
name = "ferriki_corpus_differential"
path = "tests/ferriki_corpus_differential.rs"
[[test]]
name = "global_callouts"
path = "tests/global_callouts.rs"
[[test]]
name = "grapheme_cluster"
path = "tests/grapheme_cluster.rs"
[[test]]
name = "iteration_empty_matches"
path = "tests/iteration_empty_matches.rs"
[[test]]
name = "lazy_literal_seek"
path = "tests/lazy_literal_seek.rs"
[[test]]
name = "malformed_utf8_c_parity"
path = "tests/malformed_utf8_c_parity.rs"
[[test]]
name = "parse_limits"
path = "tests/parse_limits.rs"
[[test]]
name = "regex_feature_matrix"
path = "tests/regex_feature_matrix.rs"
[[test]]
name = "scanner_prefilter_regressions"
path = "tests/scanner_prefilter_regressions.rs"
[[test]]
name = "single_regex_reject"
path = "tests/single_regex_reject.rs"
[[test]]
name = "stack_cap"
path = "tests/stack_cap.rs"
[[test]]
name = "stack_limit_floor"
path = "tests/stack_limit_floor.rs"
[[test]]
name = "stack_limit_parity"
path = "tests/stack_limit_parity.rs"
[[test]]
name = "subexp_call_limits"
path = "tests/subexp_call_limits.rs"
[dependencies.aho-corasick]
version = "1"
[dependencies.bitflags]
version = "2"
[dependencies.memchr]
version = "2"
[dependencies.regex-automata]
version = "0.4"
features = [
"std",
"syntax",
"meta",
"nfa-thompson",
"hybrid",
"perf-literal",
"perf-inline",
]
optional = true
default-features = false
[dependencies.regex-syntax]
version = "0.8"
features = ["std"]
optional = true
default-features = false
[dependencies.smallvec]
version = "1"
[dev-dependencies.fancy-regex]
version = "0.19"
[dev-dependencies.libc]
version = "0.2"
[dev-dependencies.regex]
version = "1"
[dev-dependencies.serde_json]
version = "1"
[build-dependencies.cc]
version = "1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.pcre2-sys]
version = "0.2"
[lints.clippy]
collapsible_if = "allow"
collapsible_match = "allow"
undocumented_unsafe_blocks = "warn"
[lints.rust]
dead_code = "allow"
missing_debug_implementations = "warn"
missing_docs = "warn"
unsafe_op_in_unsafe_fn = "deny"
[profile.bench]
lto = "thin"
[profile.release]
lto = "thin"