Mythosia.VectorDb.InMemory
2.0.0
dotnet add package Mythosia.VectorDb.InMemory --version 2.0.0
NuGet\Install-Package Mythosia.VectorDb.InMemory -Version 2.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="Mythosia.VectorDb.InMemory" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Mythosia.VectorDb.InMemory" Version="2.0.0" />
<PackageReference Include="Mythosia.VectorDb.InMemory" />
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 Mythosia.VectorDb.InMemory --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Mythosia.VectorDb.InMemory, 2.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 Mythosia.VectorDb.InMemory@2.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=Mythosia.VectorDb.InMemory&version=2.0.0
#tool nuget:?package=Mythosia.VectorDb.InMemory&version=2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Mythosia.VectorDb.InMemory
Migration from v1.0.0
v2.0.0 renames logical separation units:
collection→namespace(terminology update in public API/docs)namespace→scope(for second-tier logical isolation)
Package Summary
Provides InMemoryVectorStore, a thread-safe in-memory implementation of IVectorStore using cosine similarity search.
Suitable for development, testing, and small-scale workloads.
Usage
Automatically used as the default vector store in Mythosia.AI.Rag:
// Explicit selection (same as default)
.WithRag(rag => rag
.AddDocument("docs.txt")
.UseInMemoryStore()
)
Features
- Thread-safe — Uses
ConcurrentDictionaryfor safe concurrent access - Cosine similarity — TopK search with configurable result count
- Scope isolation — Filter by scope for multi-tenant scenarios
- Metadata filtering — Filter search results by key-value metadata
- Minimum score — Discard results below a similarity threshold
- Upsert — Single and batch upsert operations
- Namespace-aware operations — Use
InNamespace(...)orVectorFilter.Namespace
Standalone Usage
Fluent API (recommended)
using Mythosia.VectorDb;
using Mythosia.VectorDb.InMemory;
var store = new InMemoryVectorStore();
var ns = store.InNamespace("my-namespace");
// Namespace-only
await ns.UpsertAsync(new VectorRecord
{
Id = "doc-1",
Content = "Some text content",
Vector = new float[] { 0.1f, 0.2f, 0.3f },
Metadata = { ["source"] = "manual.txt" }
});
var results = await ns.SearchAsync(queryVector, topK: 5);
// Namespace + Scope
var scoped = ns.InScope("tenant-1");
await scoped.UpsertAsync(record); // record.Scope is set automatically
var scopedResults = await scoped.SearchAsync(queryVector);
Direct IVectorStore API
using Mythosia.VectorDb;
using Mythosia.VectorDb.InMemory;
var store = new InMemoryVectorStore();
await store.UpsertAsync(new VectorRecord
{
Namespace = "my-namespace",
Id = "doc-1",
Content = "Some text content",
Vector = new float[] { 0.1f, 0.2f, 0.3f },
Metadata = { ["source"] = "manual.txt" }
});
var results = await store.SearchAsync(
queryVector,
topK: 5,
filter: VectorFilter.ByNamespace("my-namespace"));
Limitations
- Data is not persisted — lost when the process exits
- Not suitable for large-scale production workloads (millions of vectors)
- For persistence or scale, implement a custom
IVectorStore(e.g., Qdrant, Chroma, Pinecone)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- Mythosia.AI.Rag.Abstractions (>= 3.0.0)
- Mythosia.VectorDb.Abstractions (>= 2.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Mythosia.VectorDb.InMemory:
| Package | Downloads |
|---|---|
|
Mythosia.AI.Rag
RAG (Retrieval Augmented Generation) orchestration for Mythosia.AI. Includes RagPipeline, text splitters, context builder, and OpenAI embedding provider. |
GitHub repositories
This package is not used by any popular GitHub repositories.