3 releases (breaking)

Uses new Rust 2024

new 0.3.0 Mar 12, 2026
0.2.0 Mar 12, 2026
0.1.0 Jan 13, 2026

#7 in #category

MIT license

93KB
2K SLoC

Minidex - a filesystem index library

Crates.io License docs.rs Crates.io Version

Minidex is a fast, lightweight index for filesystem entries meant to be embedded in desktop applications.

Overview

Minidex implements a Log-Structured Merge-tree with Finite State Transducers and an Inverted Index to efficiently store and serve filesystem data (file paths, names and metadata) and provide instant multi-word search with a small disk footprint.

Features

  • Fully memory mapped - no data is loaded eagerly
  • Write-Ahead Log backed ingestion - Real-time inserts and deletes buffered in an in-memory data structure backed by a WAL for persistence in face of crashes
  • Fast category filtering - user-provided file categories allow quickly filtering the index for documents, images, text, etc.
  • O(1) tree pruning - Prefix tombstones instantly delete indexed data for whole path prefixes
  • Background compaction - independent thread managing segment merging using a zero allocation K-Way Merge
  • Hybrid scoring - Hardware accelerated metadata pre-ranking and filtering combined with a TF-IDF scoring step
  • Pagination - Support for offset and limit pagination

Minidex offers support for offset+limit pagination, a Write-Ahead Log for real-time insertion and background compaction of segments.

Note

Minidex does not implement the filesystem indexing process itself (see examples/fs-index) on how to implement a basic indexer.

Dependencies

~15–30MB
~423K SLoC