Autypo.AspNetCore 1.0.0

dotnet add package Autypo.AspNetCore --version 1.0.0
                    
NuGet\Install-Package Autypo.AspNetCore -Version 1.0.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="Autypo.AspNetCore" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Autypo.AspNetCore" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Autypo.AspNetCore" />
                    
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 Autypo.AspNetCore --version 1.0.0
                    
#r "nuget: Autypo.AspNetCore, 1.0.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 Autypo.AspNetCore@1.0.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=Autypo.AspNetCore&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Autypo.AspNetCore&version=1.0.0
                    
Install as a Cake Tool

⚑ Autypo

Blazing-fast autocomplete and typo-tolerant search for .NET

Autypo is a powerful, developer-friendly search engine for autocomplete, fuzzy matching, and short-string lookups. Whether you're building a product search bar, form helper, or CLI β€” Autypo makes it effortless to deliver typo-tolerant, fast, and intelligent user experiences.

πŸ“š Table of Contents

✨ Getting Started

βœ… Basic Setup β€” In 30 Seconds

Autypo works out-of-the-box β€” no config required. Just provide your data and start getting intelligent completions.

using Autypo;
using Autypo.Configuration;

string[] movies = [
    "The Lord of the Rings: The Return of the King",
    "Star Wars: Return of the Jedi",
    "Batman Returns"
];

IAutypoComplete autypoComplete = await AutypoFactory.CreateCompleteAsync(config => config
    .WithDataSource(movies));

IEnumerable<string> suggestions = autypoComplete.Complete("retur of the");
// β†’ "Star Wars: Return of the Jedi", "The Lord of the Rings: The Return of the King"

suggestions = autypoComplete.Complete("bamman rets");
// β†’ "Batman Returns"

No tokenization setup. No fuzzy matching config. Just smart results.

βœ… ASP.NET Core Setup with Background Indexing

For real-world apps, Autypo integrates seamlessly with ASP.NET Core and supports background indexing, multi-field search, and dependency-injected data sources.

using Autypo;
using Autypo.AspNetCore;
using Autypo.Configuration;

builder.Services.AddScoped<ProductsLoader>();

builder.Services.AddAutypoSearch<Product>(config => config
    .WithDataSource(serviceProvider => serviceProvider.GetRequiredService<ProductsLoader>())
    .WithBackgroundLoading(UninitializedBehavior.ReturnEmpty)

    .WithIndex(product => product.Name, index => index
        .WithAdditionalKeys(product => [product.Description]) // Index name + description
        .WithUnorderedTokenOrdering() // Order of words doesn't matter
        .WithPartialTokenMatching() // Partial queries still match
        // ... and many more configuration options!
    ));

Define a search endpoint using dependency-injected Autypo:

app.MapGet("/products/search", async (
    [FromQuery] string query,
    [FromServices] IAutypoSearch<Product> search) =>
{
    var results = await search.SearchAsync(query);
    return results.Select(r => r.Value);
});

Example Query:

GET /products/search?query=fngerprint usb recogn

Example Result:

[
 {
   "code": "A1067",
   "name": "Fingerprint USB",
   "description": "Secure USB flash drive with fingerprint encryption"
 },
]

πŸ“¦ Installation

Autypo is available on NuGet.

For ASP.NET Core integration (includes the core engine):

dotnet add package Autypo.AspNetCore

For standalone or non-web scenarios (e.g., console apps, background jobs):

dotnet add package Autypo

πŸ’‘ Features

Autypo gives you fast, typo-tolerant search with modern developer ergonomics β€” zero config to start, but extreme tuning if you need it.

🧠 Intelligent Matching

  • Typo-tolerant by default β€” fuzzy, partial, and out-of-order input
  • Token-level matching control (prefix, fuzziness)
  • Opt-in partial matching and out-of-order input
  • Built to rank β€œreal world” input
  • Multi-index support with priority-based short-circuiting

πŸ”§ Deeply Configurable

  • Index multiple fields (e.g. name + description)
  • Plug in custom scorers, filters, and match policies
  • Add tokenizers and analyzers (N-grams, stemming, etc)
  • Per-query tuning for fuzziness, partial match, max results

βš™οΈ Production-Ready

  • Blazing-fast in-memory autocomplete via IAutypoComplete
  • Full-featured, multi-index search engine via IAutypoSearch<T>
  • Eager, background, or lazy indexing β€” your choice
  • Refresh indexes at runtime with AutypoRefreshToken
  • Async-first, thread-safe, allocation-conscious

🌐 Framework-Friendly

  • ASP.NET Core integration with full DI support
  • Blazor Server–ready (ideal for typeahead inputs)
  • Fully .NET-native β€” no native bindings, no hosted servers

βœ… Open source & MIT licensed
πŸ›‘οΈ Built for scale and safety
πŸŽ‰ Developer-first design


⚠️ Limitations

Autypo is intentionally designed for short-text and autocomplete scenarios β€” not full-text search.

  • Documents are limited to 64 tokens max (e.g., product names, commands, short descriptions)
  • In-memory indexing is fast and efficient, but may not suit massive corpora or multi-megabyte documents
  • Autypo is not intended for long-form text search β€” for that, consider Lucene or ElasticSearch

This tradeoff is deliberate: it keeps Autypo incredibly fast, predictable, and ideal for UX-critical search.


🎯 Perfect For

  • E-commerce product & SKU search
  • Admin panel filtering and form helpers
  • Smart command palettes
  • CLI "Did You Mean?" suggestions
  • Blazor autocomplete inputs
  • Live-search over reference data (countries, tags, part numbers)
  • Fuzzy full-text matching over short documents

πŸ“š Learning Resources

πŸ“– Guides

Guide Description
ASP.NET Core Integration End-to-end setup with dependency injection and hosted services
Indexing & Data Loading Data sources, refresh tokens
Search & Matching Customize fuzzy logic, token ordering and more
Text Analysis & Tokenization Configure tokenizers, transformers, and analyzers
Custom Scoring & Filtering Enrich matches with metadata and business logic

πŸ’» Samples

Sample What it demonstrates
"Did You Mean?" Console Demo Interactive CLI Helper – Suggests valid commands with fuzzy matching
ASP.NET Core Search API Product Search – REST API with background indexing and multi-field matching
Blazor City Autocomplete Real-Time Search UI – Typeahead with typo tolerance and reindexing

πŸ“Š Benchmarks

Autypo competes head-to-head with Lucene and outperforms many .NET libraries for short-string search:

Library Multi-Token Index Time Search Time Avg/Search
Autypo βœ… Yes 163 ms 3.34 s 1.33 ms
Lucene (Fuzzy) βœ… Yes 776 ms 2.91 s 1.16 ms
Lucene (Suggest) ❌ No 1.12 s 503 ms 0.20 ms
Levenshtypo* ❌ No 25 ms 312 ms 0.12 ms
FuzzyWuzzy ❌ No 1 ms 4m 49s 92.56 ms

* Levenshtypo is the fuzzy string search library that powers Autypo’s low-level approximate matching engine. It supports typo-tolerant single-token search using optimized Tries and Levenshtein Automata.

⚠️ See full benchmark repo and disclaimer β†’


πŸ“ Project Structure

/src
  └── Autypo/                   # Core library
  └── Autypo.AspNetCore/        # ASP.NET Core integration
  └── Autypo.Benchmarks/        # Microbenchmarks
  └── Autypo.IntegrationTests/
  └── Autypo.UnitTests/
  └── Autypo.Aot/               # Ensures that Autypo works in AOT scenarios
  
/samples
  └── ApiSearchProducts/        # REST API example
  └── BlazorCities/             # Blazor Server autocomplete
  └── ConsoleDidYouMean/        # CLI demo

πŸ’¬ Support and Feedback

🧠 Have a question?
πŸ’‘ Got feedback?
πŸ› Found a bug?

Open an issue or start a discussion. We'd love to hear from you.


βš–οΈ License

Autypo is released under the MIT License.


πŸ™‹β€β™‚οΈ What's in a Name?

Autocomplete + Typo-tolerance = Autypo.

Simple name, serious power.


Built for modern .NET developers.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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

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.0.0 180 7/5/2025