ferroni 2.7.0

Oniguruma regex in pure Rust, with a TextMate scanner, portable prepared Eager archives, and no C toolchain
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.94"
name = "ferroni"
version = "2.7.0"
authors = ["Sebastian Software GmbH"]
build = "build.rs"
exclude = [
    ".cache/",
    ".cargo/",
    "benches/",
    "docs/",
    "fuzz/",
    "scripts/",
    "examples/backtrack_rewrite_census.rs",
    "examples/prefilter_census.rs",
    "examples/scanner_group_archive.rs",
    "examples/profile_cpp_scanner.rs",
    "examples/profile_scanner_patterns.rs",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Oniguruma regex in pure Rust, with a TextMate scanner, portable prepared Eager archives, and 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 = [
    "precompiled",
    "precompiled-eager",
]
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
default = ["dfa-prefilter"]
dfa-prefilter = [
    "dep:regex-automata",
    "dep:regex-syntax",
]
ffi = ["cc"]
onigmo = ["ffi"]
portable-eager-prototype = ["precompiled-eager"]
precompiled = []
precompiled-eager = ["scanner-group-nfa-prototype"]
prefilter-self-check = ["dfa-prefilter"]
scanner-group-dense-prototype = ["scanner-group-prototype"]
scanner-group-nfa-prototype = [
    "precompiled",
    "dfa-prefilter",
]
scanner-group-prototype = [
    "scanner-group-nfa-prototype",
    "regex-automata/dfa-build",
]
scanner-load-profile = ["precompiled"]

[lib]
name = "ferroni"
path = "src/lib.rs"

[[example]]
name = "basic_match"
path = "examples/basic_match.rs"

[[example]]
name = "precompiled_eager"
path = "examples/precompiled_eager.rs"
required-features = ["precompiled-eager"]

[[example]]
name = "precompiled_eager_portability"
path = "examples/precompiled_eager_portability.rs"
required-features = ["precompiled-eager"]

[[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 = "precompiled_eager"
path = "tests/precompiled_eager.rs"

[[test]]
name = "precompiled_scanner"
path = "tests/precompiled_scanner.rs"
required-features = ["precompiled"]

[[test]]
name = "regex_feature_matrix"
path = "tests/regex_feature_matrix.rs"

[[test]]
name = "scanner_group_prototype"
path = "tests/scanner_group_prototype.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"

[[test]]
name = "vscode_scanner_native_cache"
path = "tests/vscode_scanner_native_cache.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"