# Cargo.toml [package] name = "super_speedy_syslog_searcher" # The `description` should roughly match the first three paragraph sentences in `README.md` description = "Speedily search and merge log messages by datetime. DateTime filters may be passed to narrow the search. s4 aims to be very fast." repository = "https://github.com/jtmoon79/super-speedy-syslog-searcher" authors = ["James Thomas Moon"] license = "MIT" keywords = ["syslog", "log", "log-parser", "search", "merge"] # see https://crates.io/category_slugs categories = [ "command-line-utilities", "date-and-time", "filesystem", ] readme = "README.md" version = "0.7.75" edition = "2021" # `rust-version` (MSRV) should match ./github/workflows/rust.yml:rust_msrv:msrv and ./README.md rust-version = "1.70.0" default-run = "s4" # Do not set metadata fields `documentation` or `homepage` unless using # non-standard websites. # See exclude = [ ".github/*", "benches/bench_ranges.rs", "benches/bench_syslinereader.rs", "benches/README.md", "logs/*", "releases/*", "src/**/README.md", "tmp/*", "tools/*", "tests/*", "rustfmt.toml", ] [dependencies] anyhow = "1.0.86" bstr = "1.9.1" bzip2-rs = "0.1.2" cfg-if = "1.0.0" chrono = "0.4.38" clap = { version = "=4.2.1", features = ["derive"] } const_format = { version = "0.2.31", features = ["assertcp"] } crossbeam-channel = "0.5.13" ctrlc = "3.4.4" current_platform = "0.2.0" dlopen2 = "0.7" encoding_rs = "0.8.34" evtx = { version = "0.8.2", features = ["multithreading"] } flate2 = "1.0.30" itertools = "0.13.0" jetscii = { version = "0.5.3", optional = true } jwalk = "0.8.1" kinded = "0.3.0" lazy_static = "1.5.0" lru = "0.12.3" lzma-rs = "0.3.0" lz4_flex = "0.11" memchr = "2.7.4" memoffset = "0.9.1" min-max = "0.1.8" more-asserts = "0.3.1" mut_static = "5.0.0" nix = "0.27.1" numtoa = "0.2.4" # TODO: instead of `once_cell` crate, use `std::sync::OnceLock` when it becomes stable # TRACKING: https://github.com/rust-lang/rust/issues/74465 once_cell = "1.19.0" phf = { version = "0.11", features = ["macros"] } rand = "0.8.5" rangemap = "1.5.1" regex = "1.10.5" si_trace_print = "0.3.12" stringzilla = { version = "3.8.4", optional = true } tar = "0.4.41" tempfile = "3.10.1" termcolor = "1.1.3" unicode-width = "0.1.13" unroll = "0.1.5" walkdir = "2.5.0" utf8_iter = "1.0.4" # allocators mimalloc = { version = "0.1.43", optional = true } tikv-jemallocator = { version = "0.5.4", optional = true } [lib] name = "s4lib" path = "src/lib.rs" crate-type = ["lib"] edition = "2021" test = true doc = true doctest = true bench = false [target.'cfg(windows)'.dependencies] libc = "0.2.154" [[bin]] name = "s4" path = "src/bin/s4.rs" edition = "2021" test = true doc = true bench = false [dev-dependencies] arraystring = "0.3.0" cargo-msrv = "0.15.1" criterion = "0.5.1" cross = "0.2.5" filepath = "0.1.2" filetime = "0.2.23" # XXX: `flamegraph` fails to build, MSRV 1.74; must be manually installed # flamegraph = "0.6.5" test-case = "3.3.1" [features] # to run more benchmarks pass `--features bench_*` to `cargo bench` bench_jetscii = ["dep:jetscii"] bench_memchr = [] bench_stringzilla = ["dep:stringzilla"] jemalloc = ["dep:tikv-jemallocator"] mimalloc = ["dep:mimalloc"] # release build optimizations # from https://github.com/johnthagen/min-sized-rust # also see https://doc.rust-lang.org/cargo/reference/profiles.html [profile.release] codegen-units = 1 panic = "abort" strip = true lto = true [profile.flamegraph] inherits = "release" codegen-units = 16 debug = 2 lto = false panic = "unwind" split-debuginfo = "unpacked" strip = false [profile.valgrind] inherits = "release" codegen-units = 16 debug = 2 lto = false panic = "abort" split-debuginfo = "unpacked" strip = false # other helpful development tools # cargo install --locked cargo-expand cargo-nextest [[bench]] name = "bench_decode_utf" harness = false [[bench]] name = "bench_prints" harness = false [[bench]] name = "bench_slice_contains" harness = false