FastFind.Windows
1.1.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package FastFind.Windows --version 1.1.0
NuGet\Install-Package FastFind.Windows -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.Windows" Version="1.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FastFind.Windows" Version="1.1.0" />
<PackageReference Include="FastFind.Windows" />
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.Windows --version 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: FastFind.Windows, 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.Windows@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.Windows&version=1.1.0
#tool nuget:?package=FastFind.Windows&version=1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
FastFind.NET
Ultra-high performance cross-platform file search library for .NET 10
Packages
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 | Versions 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.
-
net10.0
- FastFind.Core (>= 1.1.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.2)
- Microsoft.Extensions.Logging (>= 10.0.2)
- System.Management (>= 10.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.3.3 | 109 | 5/10/2026 |
| 1.3.2 | 202 | 3/8/2026 |
| 1.3.1 | 99 | 3/6/2026 |
| 1.3.0 | 117 | 2/27/2026 |
| 1.2.0 | 103 | 2/27/2026 |
| 1.1.0 | 108 | 2/27/2026 |
| 1.0.13 | 121 | 1/14/2026 |
| 1.0.12 | 119 | 1/13/2026 |
| 1.0.11 | 126 | 1/10/2026 |
| 1.0.10 | 118 | 1/9/2026 |
| 1.0.9 | 226 | 11/26/2025 |
| 1.0.3 | 223 | 9/25/2025 |
| 1.0.2 | 280 | 8/8/2025 |
| 1.0.0 | 189 | 7/31/2025 |