ripgrepx 0.4.0

Instant ripgrep via a persistent candidate index, for the terminal and AI agents over MCP
Documentation
[package]
name = "ripgrepx"
version = "0.4.0"
edition = "2024"
description = "Instant ripgrep via a persistent candidate index, for the terminal and AI agents over MCP"
license = "MIT"
repository = "https://github.com/igorgatis/ripgrepx"
readme = "README.md"
keywords = ["ripgrep", "grep", "search", "code-search", "mcp"]
categories = ["command-line-utilities", "development-tools"]
# Keep the published crate to the Rust sources + the embedded skill; packaging/CI live in the repo only.
exclude = ["/npm", "/bench", "/docs", "/.github", "/mise.toml", "/pyproject.toml", "/install.sh"]

# `cargo binstall ripgrepx` pulls the prebuilt release archive instead of compiling.
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/rgx-v{ version }-{ target }.{ archive-format }"
bin-dir = "rgx{ binary-ext }"
pkg-fmt = "tgz"

[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"
[package.metadata.binstall.overrides.aarch64-pc-windows-msvc]
pkg-fmt = "zip"

[dependencies]
anyhow = "1"
regex-syntax = "0.8"
ignore = "0.4"
rayon = "1"
roaring = "0.10"
rustc-hash = "2"
memchr = "2"
grep = "0.4"
termcolor = "1"
notify-debouncer-full = "0.5"
serde_json = "1"
dhat = { version = "0.3", optional = true }
toml = { version = "1.1.2", default-features = false, features = ["parse", "serde"] }
serde = { version = "1.0.228", features = ["derive"] }

[features]
# Heap-profile a run: `cargo run --release --features dhat-heap -- --server` (writes dhat-heap.json).
dhat-heap = ["dep:dhat"]
# Force the Windows-style loopback-TCP daemon transport on any platform (so it can be tested on Unix).
tcp-transport = []

[dev-dependencies]
regex = "1"
criterion = "0.5"
tempfile = "3"

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

[[bin]]
name = "rgx"
path = "src/main.rs"

[[bench]]
name = "index_bench"
harness = false

[profile.release]
strip = true
lto = true
codegen-units = 1

# Optimized build that keeps line tables, for samply / Instruments: `cargo build --profile profiling`.
[profile.profiling]
inherits = "release"
debug = "line-tables-only"

# Same for criterion benches, so flamegraphs of `cargo bench` resolve symbols.
[profile.bench]
debug = "line-tables-only"