[package]
name = "rlm-cli"
version = "1.2.4"
edition = "2024"
rust-version = "1.88"
description = "Recursive Language Model (RLM) REPL for Claude Code - handles long-context tasks via chunking and recursive sub-LLM calls"
license = "MIT"
authors = ["zircote"]
repository = "https://github.com/zircote/rlm-rs"
homepage = "https://github.com/zircote/rlm-rs"
documentation = "https://docs.rs/rlm-cli"
readme = "README.md"
keywords = ["llm", "claude", "recursive", "language-model", "repl"]
categories = ["command-line-utilities", "text-processing"]
[lib]
name = "rlm_rs"
path = "src/lib.rs"
[[bin]]
name = "rlm-cli"
path = "src/main.rs"
[dependencies]
thiserror = "2.0.17"
anyhow = "1.0.100"
clap = { version = "4.5", features = ["derive", "cargo", "env"] }
rusqlite = { version = "0.38", features = ["bundled", "modern_sqlite"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
unicode-segmentation = "1.12"
regex = "1.11"
memmap2 = "0.9"
rayon = "1.10"
fastembed = { version = "5", optional = true, default-features = false, features = ["ort-download-binaries", "hf-hub-rustls-tls"] }
usearch = { version = "2.23", git = "https://github.com/madmax983/USearch.git", branch = "fix/rust-move-semantics", optional = true }
[dev-dependencies]
proptest = "1.9.0"
test-case = "3.3.1"
tempfile = "3.13"
assert_cmd = "2.0"
predicates = "3.1"
criterion = "0.8"
[profile.dev]
debug = 1
opt-level = 0
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
panic = "abort"
strip = true
[profile.release-debug]
inherits = "release"
debug = true
strip = false
[lints.rust]
unsafe_code = "warn"
missing_docs = "warn"
rust_2024_compatibility = "warn"
[lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
cargo = { level = "warn", priority = -1 }
multiple_crate_versions = "allow"
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"
todo = "deny"
unimplemented = "deny"
dbg_macro = "deny"
print_stdout = "deny"
print_stderr = "deny"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
redundant_pub_crate = "allow"
[features]
default = ["fastembed-embeddings"]
fastembed-embeddings = ["dep:fastembed"]
usearch-hnsw = ["dep:usearch"]
full-search = ["fastembed-embeddings", "usearch-hnsw"]