Skip to content

Latest commit

 

History

41 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Status License: MIT Java Platform JitPack


🔍 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 search

import fastfilesearch.FastFileSearch;
import fastfilesearch.SearchResult;

public class SearchDemo {
    public static void main(String[] args) {
        FastFileSearch engine = FastFileSearch.fromIndex(myIndex, options);

        // Instant fuzzy search
        SearchResult[] 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.

Operation FastFileSearch Standard Search Speedup
Fuzzy Match (1M) 1.2 ms 45 ms 37x

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

Method Description
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

Platform Status
Windows 10/11 âś… Fully Supported
Linux đź”— Planned
macOS đź”— Planned

License

MIT License See LICENSE file for details.


Related Projects


Part of the FastJava Ecosystem — Making 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