📁fff.nvim
dmtrKovalenko/fff · homepage ↗
The fastest and the most accurate file search SDK for AI agents, Neovim, Rust, C, Python, Bun and NodeJS
⭐ Very popular: 10k stars, gaining about 116 a week
View on GitHub ↗repo profile
momentum
durability
bus factor = how many people it takes to cover more than half the commits (6 months). 1 is a solo project; higher means the work is spread across a team. top-author share is the single busiest author's slice of those commits.
since we covered it
why it's a big deal
- Keeps a resident file index inside long-running processes so queries return in single-digit milliseconds instead of spawning ripgrep afresh each time; on a 500k-file Chromium checkout that is sub-10ms per query versus 3 to 9 seconds per ripgrep spawn.
- Ships one search engine across Rust, C, Python, Bun, NodeJS and Neovim, plus an MCP server exposing ffgrep, fffind and fff-multi-grep to Claude Code, Cursor and Cline, so agents and editors query the same index.
- Ranks results by frecency and returns cached git state (modified, staged, untracked, ignored) with every result, removing per-query git subprocess calls.
under the hood
- Written in Rust with a mimalloc allocator and a single contiguous arena for string chunks, using roughly 360 bytes per file for content indexing and optional memory-mapped backing with a default 10MB per-file limit.
- Offers three grep modes, plain literal via SIMD memmem, regex via the Rust regex crate, and fuzzy via Smith-Waterman per line, with SIMD-accelerated fuzzy path matching and automatic fallback to fuzzy when exact matches return zero.
- Uses platform-specific filesystem APIs such as getdents64 on Linux and NTFS APIs on Windows, a background watcher for incremental index updates, and a byte-level scanner that tags definition lines like struct, fn, class, def and impl.
Radar summary, generated from the project's public sources
star history
- PR#31 4k 2026-04-08
- now 10k + 6k since first covered
curve is sampled from GitHub's star history, plus our own daily readings since we covered it; the dashed stretch is before we first covered it, the solid line since. figures at coverage are the numbers we printed then (approx.), current count is live.
understory
Output and attention are roughly in balance.
- output, commits & releases
- clout, star velocity
output = commits & releases; clout = star velocity, both 0 to 100 monthly indices; the gap where output runs above clout is the understory. The understory →
covered in
-
Rust-powered fuzzy file finder for Neovim with a dedicated background index
similar projects
compare these →- ⚡ RTK
7.6× the stars
CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies
76k ACTIVE - 🦀 DeepSeek-TUI
4.1× the stars
Open-source, community-driven agent harness
41k ACTIVE - 🐑 herdr
3× the stars
the runtime your coding agents live on
30k ACTIVE
comments
Sign in with GitHub to add your blip on fff.nvim.