Skip to content

Repository files navigation

FastFileSearch 0.1.0 [ALPHA-2026-05-17] — High-Performance Native File Search for Java

StatusLicense: MITJavaPlatformJitPack


🔍 Lightning fast fuzzy and prefix search for millions of indexed files.

FastFileSearch provides real-time search capabilities for the FastJava ecosystem. Built on top of FastFileIndex, it allows for instant prefix, fuzzy, and exact matching across massive file collections with sub-millisecond response times.


FastKeyboard Showcase

// Quick Start Performing a searchimportfastfilesearch.FastFileSearch;
importfastfilesearch.SearchResult;
publicclassSearchDemo {
publicstaticvoidmain(String[] args) {
FastFileSearchengine = FastFileSearch.fromIndex(myIndex, options);
// Instant fuzzy searchSearchResult[] results = engine.fuzzy("myapp", 100);
System.out.println("Found " + results.length + " matches!");
}
}

Table of Contents


Key Features

  • ⚡ Native Performance: Direct C++ search kernels for maximum speed.
  • 🧠 Fuzzy Matching: Intelligent error-tolerant search algorithms.
  • 📦 Zero Overhead: Highly optimized memory layout for search structures.

Performance

FastFileSearch is designed for live "search-as-you-type" interfaces.

OperationFastFileSearchStandard SearchSpeedup
Fuzzy Match (1M)1.2 ms45 ms37x

Installation

Option 1: Maven (Recommended)

Add the JitPack repository and the dependencies to your pom.xml:

<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<!-- FastFileSearch Library -->
<dependency>
<groupId>com.github.andrestubbe</groupId>
<artifactId>fastfilesearch</artifactId>
<version>0.1.0</version>
</dependency>
<!-- FastCore (Required Native Loader) -->
<dependency>
<groupId>com.github.andrestubbe</groupId>
<artifactId>fastcore</artifactId>
<version>0.1.0</version>
</dependency>
</dependencies>

Option 2: Gradle (via JitPack)

repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.andrestubbe:fastfilesearch:0.1.0'
implementation 'com.github.andrestubbe:fastcore:0.1.0'
}

Option 3: Direct Download (No Build Tool)

Download the latest JARs directly to add them to your classpath:

  1. 📦 fastfilesearch-0.1.0.jar (The Core Library)
  2. ⚙️ fastcore-0.1.0.jar (The Mandatory Native Loader)

Important

All JARs must be in your classpath for the native JNI calls to function correctly.

Try the Demo

  1. Clone this repository.
  2. Run run-demo.bat.
  3. Experience the "Instant" search-as-you-type interface.

API Reference

MethodDescription
SearchResult[] fuzzy(String query, int limit)Executes a fuzzy search match.
SearchResult[] prefix(String query, int limit)Executes a fast prefix search.

Documentation

  • COMPILE.md: Full compilation guide (MSVC C++17 build chain + JNI Setup).
  • REFERENCE.md: Full API descriptions, border configurations, and codepoint index.
  • PHILOSOPHY.md: The engineering rationale for zero-allocation performance.
  • ROADMAP.md: Future milestones and planned features.

Platform Support

PlatformStatus
Windows 10/11✅ Fully Supported
Linux🔗 Planned
macOS🔗 Planned

License

MIT License See LICENSE file for details.


Related Projects


Part of the FastJava EcosystemMaking the JVM faster. Small package. Maximum speed. Zero bloat. 🚀📋

About

🔎 Ultra‑fast native file search for Java — instant fuzzy, prefix, and exact matching over millions of indexed files using C++ search kernels, N‑Gram ranking, and sub‑millisecond search‑as‑you‑type performance.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages