Flux.Abstractions
0.10.9
dotnet add package Flux.Abstractions --version 0.10.9
NuGet\Install-Package Flux.Abstractions -Version 0.10.9
<PackageReference Include="Flux.Abstractions" Version="0.10.9" />
<PackageVersion Include="Flux.Abstractions" Version="0.10.9" />
<PackageReference Include="Flux.Abstractions" />
paket add Flux.Abstractions --version 0.10.9
#r "nuget: Flux.Abstractions, 0.10.9"
#:package Flux.Abstractions@0.10.9
#addin nuget:?package=Flux.Abstractions&version=0.10.9
#tool nuget:?package=Flux.Abstractions&version=0.10.9
FluxIndex
RAG library for .NET 10.0 - Build semantic search and retrieval systems with vector + keyword hybrid search.
Key Features
- Hybrid Search - Vector (semantic) + Keyword (BM25) with automatic strategy selection
- High Performance - Embedding cache (100% faster), batch indexing (24ms/1K chunks)
- Local Reranking - Cross-encoder neural reranking with automatic algorithmic fallback
- Graph Traversal - BFS/DFS, Dijkstra shortest path, PageRank-style importance
- Vector Quantization - Scalar (Int8/Int4), Product Quantization, Binary (32x compression)
- Multiple Storage - SQLite, PostgreSQL with pgvector
- AI Provider Agnostic - Core provides abstract base classes, bring your own embedding service
- Document Processing - PDF/DOCX/TXT via FileFlux, web crawling via WebFlux
- MCP Server - Model Context Protocol for AI assistant integration
- Production Ready - Redis caching, clean architecture, .NET 10.0
Quick Start
dotnet add package FluxIndex.SDK
dotnet add package FluxIndex.Storage.SQLite
using FluxIndex.SDK;
// 1. Setup (InMemory embedding for testing)
var context = FluxIndexContext.CreateBuilder()
.UseSQLite("fluxindex.db")
.Build();
// 2. Index
await context.Indexer.IndexDocumentAsync(
"FluxIndex is a RAG library for .NET", "doc-001");
// 3. Search
var results = await context.Retriever.SearchAsync("RAG library", maxResults: 5);
Using Custom Embedding Service
FluxIndex is AI provider-agnostic. Extend EmbeddingServiceBase for your preferred provider:
// Example: LMSupply embedding (local ONNX-based, no API key)
public class LMSupplyEmbedder : EmbeddingServiceBase, IAsyncDisposable
{
private readonly IEmbeddingModel _model;
private LMSupplyEmbedder(IEmbeddingModel model) => _model = model;
public static async Task<LMSupplyEmbedder> CreateAsync(string modelId = "default")
{
var model = await LocalEmbedder.LoadAsync(modelId);
return new LMSupplyEmbedder(model);
}
protected override async Task<float[]> EmbedCoreAsync(string text, CancellationToken ct)
=> await _model.EmbedAsync(text, ct);
public override int GetEmbeddingDimension() => _model.Dimensions;
public override string GetModelName() => _model.ModelId;
public ValueTask DisposeAsync() => _model.DisposeAsync();
}
// Register and use
var context = FluxIndexContext.CreateBuilder()
.UseSQLite("fluxindex.db")
.ConfigureServices(s => s.AddSingleton<IEmbeddingService>(
LMSupplyEmbedder.CreateAsync().GetAwaiter().GetResult()))
.Build();
MCP Server
FluxIndex provides Model Context Protocol (MCP) server for AI assistant integration.
Available Tools: search, memorize, unmemorize, status
See FluxIndex.MCP for integration details.
Performance
| Operation | Performance | Notes |
|---|---|---|
| Batch Indexing | 24ms/1K chunks | 8-thread parallelism |
| Vector Search | 0.6ms/query | In-memory embeddings |
| Embedding Cache | 100% faster | Eliminates API calls |
| Semantic Cache | <5ms | Redis, 95% similarity |
Full benchmarks: BENCHMARK_RESULTS.md
Package Structure
Documentation
- Guide - Quick start and configuration
- Reference - Architecture and API reference
- Advanced RAG - HyDE, Contextual Retrieval, Query Expansion
- Philosophy - Core principles and design philosophy
Examples
- RealQualityTest - LMSupply + SQLite integration
- WebFluxSample - Web crawling with WebFlux
- ChunkingQualityTest - FileFlux chunking analysis
- FileFluxIndexSample - Document indexing workflow
Requirements
- .NET 10.0 or later
- SQLite or PostgreSQL
License
MIT License - see LICENSE file.
Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
| 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. |
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.3)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Flux.Abstractions:
| Package | Downloads |
|---|---|
|
FileFlux
Complete document processing SDK optimized for RAG systems. Transform PDF, DOCX, Excel, PowerPoint, Markdown and other formats into high-quality chunks with intelligent semantic boundary detection. Includes advanced chunking strategies, metadata extraction, and performance optimization. |
|
|
FileFlux.Core
Pure document extraction SDK for RAG systems. Zero AI dependencies. Extract text from PDF, DOCX, Excel, PowerPoint, Markdown, HTML, and text files. Provides IDocumentReader interface and implementations. Use FileFlux.Core for extraction-only scenarios. For AI-enhanced extraction (image OCR, captioning), use the FileFlux package. |
|
|
FluxIndex.Core
FluxIndex Core - Domain models and application interfaces for FluxIndex RAG system |
GitHub repositories
This package is not used by any popular GitHub repositories.