FastFind.Core 1.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package FastFind.Core --version 1.1.0
                    
NuGet\Install-Package FastFind.Core -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FastFind.Core" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FastFind.Core" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="FastFind.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FastFind.Core --version 1.1.0
                    
#r "nuget: FastFind.Core, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FastFind.Core@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FastFind.Core&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=FastFind.Core&version=1.1.0
                    
Install as a Cake Tool

FastFind.NET

Ultra-high performance cross-platform file search library for .NET 10

License .NET Build Status

Packages

Package Version Description
FastFind.Core NuGet Core interfaces and models
FastFind.Windows NuGet Windows-optimized with MFT & USN Journal
FastFind.Unix NuGet Linux/macOS with parallel enumeration & inotify
FastFind.SQLite NuGet SQLite persistence with FTS5 search

Key Features

  • Cross-Platform SIMD: Vector256/Vector128 auto-dispatch (AVX2, SSE2, NEON) — 1.87M ops/sec
  • MFT Direct Access (Windows): 31K+ files/sec NTFS enumeration (30x faster than standard APIs)
  • Parallel File Enumeration (Linux): Channel-based BFS with depth-aware parallelism
  • USN Journal Sync (Windows) / inotify (Linux): Real-time file change detection
  • SQLite FTS5: Persistent index with full-text search
  • Memory Optimized: 60-80% reduction through string interning
  • Auto Platform Detection: ModuleInitializer auto-registration per platform

Installation

dotnet add package FastFind.Core

# Platform-specific (auto-registered at runtime)
dotnet add package FastFind.Windows    # Windows
dotnet add package FastFind.Unix       # Linux / macOS

dotnet add package FastFind.SQLite     # Optional: SQLite persistence

Quick Start

Windows

using FastFind;
using Microsoft.Extensions.Logging;

using var loggerFactory = LoggerFactory.Create(b => b.AddConsole());
var searchEngine = FastFinder.CreateWindowsSearchEngine(loggerFactory);

await searchEngine.StartIndexingAsync(new IndexingOptions
{
    DriveLetters = ['C', 'D'],
    ExcludedPaths = ["node_modules", "bin", "obj", ".git"],
    CollectFileSize = true
});

while (searchEngine.IsIndexing) await Task.Delay(500);

var results = await searchEngine.SearchAsync(new SearchQuery
{
    BasePath = @"D:\Projects",
    SearchText = "controller",
    ExtensionFilter = ".cs",
    MaxResults = 100
});

await foreach (var file in results.Files)
{
    Console.WriteLine($"{file.Name} ({file.SizeFormatted})");
}

Linux

using FastFind;
using FastFind.Unix;
using Microsoft.Extensions.Logging;

using var loggerFactory = LoggerFactory.Create(b => b.AddConsole());
var searchEngine = UnixSearchEngine.CreateLinuxSearchEngine(loggerFactory);

await searchEngine.StartIndexingAsync(new IndexingOptions
{
    MountPoints = ["/home", "/opt"],
    ExcludedPaths = ["node_modules", ".git", "__pycache__"],
    CollectFileSize = true
});

while (searchEngine.IsIndexing) await Task.Delay(500);

var results = await searchEngine.SearchAsync(new SearchQuery
{
    BasePath = "/home/user/projects",
    SearchText = "config",
    ExtensionFilter = ".json",
    MaxResults = 100
});

await foreach (var file in results.Files)
{
    Console.WriteLine($"{file.Name} - {file.DirectoryPath}");
}

Performance

Metric Windows Linux
SIMD String Matching 1,877,459 ops/sec 1,877,459 ops/sec (same Vector256)
File Enumeration 31,073 files/sec (MFT) Channel BFS parallel
File Indexing 243,856 files/sec Channel-based async
Search Operations 1,680,631 ops/sec 1,680,631 ops/sec
StringPool Interning 6,437 paths/sec 6,437 paths/sec

See Performance Benchmarks for detailed results.

Documentation

Platform Support

Platform Status Package
Windows 10/11, Server 2019+ Production Ready FastFind.Windows
Linux (Ubuntu, RHEL, Alpine) Preview FastFind.Unix
macOS Planned (Phase 2) FastFind.Unix

License

MIT License - see LICENSE for details.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on FastFind.Core:

Package Downloads
FastFind.Windows

Lightning-fast cross-platform file search library with MFT direct access, SQLite persistence, and USN Journal real-time sync

FastFind.SQLite

SQLite persistence provider for FastFind.NET with FTS5 full-text search support

FastFind.Unix

Unix/Linux implementation for FastFind.NET high-performance file search library

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.4.0 175 5/25/2026
1.3.3 185 5/10/2026
1.3.2 231 3/8/2026
1.3.1 133 3/6/2026
1.3.0 136 2/27/2026
1.2.0 137 2/27/2026
1.1.0 131 2/27/2026
1.0.13 144 1/14/2026
1.0.12 135 1/13/2026
1.0.11 135 1/10/2026
1.0.10 139 1/9/2026
1.0.9 254 11/26/2025
1.0.3 247 9/25/2025
1.0.2 300 8/8/2025