Introduction
FFF (Fastest File Finder) is a Rust-powered file search SDK built for speed and accuracy. It provides sub-millisecond fuzzy file matching designed for AI coding agents, editor plugins, and CLI tools that need to locate files in large codebases instantly.
What FFF Does
- Performs fuzzy file name matching across large directory trees in microseconds
- Provides native bindings for Neovim (Lua), Python, Bun, Node.js, and C
- Supports smart ranking that prioritizes recently edited and contextually relevant files
- Handles repositories with hundreds of thousands of files without degradation
- Integrates as an SDK so AI agents can search files programmatically
Architecture Overview
FFF builds an in-memory index of the file tree using a trie-based structure optimized for fuzzy matching. The core algorithm is implemented in Rust for maximum throughput and minimal memory usage. Language-specific bindings are generated via FFI, and a Neovim plugin provides an interactive picker UI backed by the same engine.
Self-Hosting & Configuration
- Add as a Rust crate, npm package, or pip package depending on your platform
- For Neovim, install via your plugin manager and configure keybindings
- Indexing is automatic on first query; re-indexes on file system changes
- Configure ignore patterns via .gitignore or custom rules
- No external services or daemon processes required
Key Features
- Benchmarked as faster than fzf and fd for fuzzy file matching in large repos
- Smart scoring considers path depth, recency, and query similarity
- Zero-dependency Rust core with no runtime overhead
- Neovim plugin replaces built-in file finders with a faster alternative
- Designed for embedding in AI agent tool harnesses
Comparison with Similar Tools
- fzf — general-purpose fuzzy finder CLI; FFF is an embeddable SDK optimized specifically for file paths
- fd — fast file finder CLI; FFF focuses on fuzzy matching rather than glob-based search
- ripgrep — searches file contents; FFF searches file names and paths
- telescope.nvim — Neovim fuzzy finder; FFF provides a faster backend engine
- Glob tool — basic pattern matching; FFF adds fuzzy scoring and intelligent ranking
FAQ
Q: How does FFF compare to fzf in benchmarks? A: FFF is typically faster for file-path-only searches because its index structure is specialized for that use case, whereas fzf is a general-purpose line filter.
Q: Can I use FFF outside of Neovim? A: Yes. It is an SDK with bindings for Python, Node.js, Bun, and C. The Neovim plugin is one consumer of the library.
Q: Does it watch for file system changes? A: It can re-index incrementally when triggered, but it does not run a persistent file watcher by default.
Q: What is the memory overhead for indexing a large repo? A: The trie-based index is compact. A repo with 100K files typically uses under 50 MB of memory.