Shardis.Query
0.2.0
dotnet add package Shardis.Query --version 0.2.0
NuGet\Install-Package Shardis.Query -Version 0.2.0
<PackageReference Include="Shardis.Query" Version="0.2.0" />
<PackageVersion Include="Shardis.Query" Version="0.2.0" />
<PackageReference Include="Shardis.Query" />
paket add Shardis.Query --version 0.2.0
#r "nuget: Shardis.Query, 0.2.0"
#:package Shardis.Query@0.2.0
#addin nuget:?package=Shardis.Query&version=0.2.0
#tool nuget:?package=Shardis.Query&version=0.2.0
Shardis.Query
Primitives and abstractions for cross-shard query execution in Shardis: streaming enumerators, LINQ helpers, and executor interfaces.
Install
dotnet add package Shardis.Query --version 0.1.*
When to use
- You need streaming cross-shard queries with low memory overhead.
- You want a pluggable executor model across stores (in-memory, EF Core, Marten, …).
- You need merge modes (unordered/ordered) that work with
IAsyncEnumerable<T>
.
What’s included
IShardQueryExecutor<TSession>
— executor interface for shard-local queries.- Streaming enumerators & merge operators for unordered / ordered streaming.
- LINQ adapter helpers to build shard-friendly query expressions.
Quick start
// resolve a shard query executor and run a query
var exec = provider.GetRequiredService<IShardQueryExecutor<MySession>>();
await foreach (var item in exec.QueryAsync(sessionFactory, myQuery, CancellationToken.None))
{
// process streamed items
}
Configuration / Options
- Merge modes: unordered (fastest) and ordered (global key selector).
- Backpressure/channel capacity is configurable on the broadcaster/merge layer.
Integration notes
- Pair with a concrete provider package (e.g.,
Shardis.Query.Marten
, EF Core sample). - Requires a shard session factory and a query object understood by the provider.
Capabilities & limits
- ✅ Streaming across shards with O(shards + channel capacity) memory
- ✅ Pluggable store providers
- ⚠️ Ordered streaming requires a stable key selector and may add latency
- 🧩 TFM:
net8.0
,net9.0
; Shardis ≥ 0.1
Samples & tests
- Samples: https://github.com/veggerby/shardis/tree/main/samples
- Tests: https://github.com/veggerby/shardis/tree/main/test/Shardis.Query.Tests
Versioning & compatibility
- SemVer; see CHANGELOG: https://github.com/veggerby/shardis/blob/main/CHANGELOG.md
Contributing
License
Links
Product | Versions 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 is compatible. 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. |
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Shardis.Query:
Package | Downloads |
---|---|
Shardis.Marten
Marten integration for Shardis: per-shard sessions and query execution adapter. |
|
Shardis.Query.Marten
Marten query execution components for Shardis fluent query MVP. |
|
Shardis.Query.InMemory
In-memory query executor for Shardis (testing, prototyping). |
|
Shardis.Query.EFCore
Entity Framework Core query executor for Shardis (Where/Select pushdown, unordered streaming). |
|
Shardis.Query.EntityFrameworkCore
Entity Framework Core query executor for Shardis (Where/Select pushdown, unordered streaming). |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
0.2.0 | 0 | 9/8/2025 |
0.1.0-prerelease0086 | 35 | 9/7/2025 |
0.1.0-prerelease0085 | 40 | 9/7/2025 |
0.1.0-prerelease0084 | 117 | 8/31/2025 |
0.1.0-prerelease0083 | 116 | 8/31/2025 |
0.1.0-prerelease0082 | 161 | 8/28/2025 |
0.1.0-prerelease0075 | 161 | 8/28/2025 |
0.1.0-prerelease0067 | 164 | 8/27/2025 |
Initial release. Full notes: https://github.com/veggerby/shardis/blob/main/CHANGELOG.md#010---2025-08-25