SquidStd.Services.Core
0.12.0
See the version list below for details.
dotnet add package SquidStd.Services.Core --version 0.12.0
NuGet\Install-Package SquidStd.Services.Core -Version 0.12.0
<PackageReference Include="SquidStd.Services.Core" Version="0.12.0" />
<PackageVersion Include="SquidStd.Services.Core" Version="0.12.0" />
<PackageReference Include="SquidStd.Services.Core" />
paket add SquidStd.Services.Core --version 0.12.0
#r "nuget: SquidStd.Services.Core, 0.12.0"
#:package SquidStd.Services.Core@0.12.0
#addin nuget:?package=SquidStd.Services.Core&version=0.12.0
#tool nuget:?package=SquidStd.Services.Core&version=0.12.0
<h1 align="center">SquidStd.Services.Core</h1>
Concrete implementations of the SquidStd.Core contracts, wired for DryIoc. A single
RegisterCoreServices() call brings up the configuration manager, event bus, job system, timer wheel,
main-thread dispatcher, metrics collection, storage, and secrets services.
Install
dotnet add package SquidStd.Services.Core
Usage
using DryIoc;
using SquidStd.Services.Core.Extensions;
var container = new Container();
// Registers config manager + event bus + jobs + timer wheel + dispatcher + metrics + storage + secrets.
container.RegisterCoreServices("squidstd", Directory.GetCurrentDirectory());
Command dispatch
// Register a dispatcher for your context type and handlers.
container.RegisterCommandDispatcher<Session>();
container.RegisterCommandHandler<PingCommand, Session, PingHandler>();
// Dispatch (handlers auto-subscribed at bootstrap). Pass the context explicitly:
var result = await dispatcher.DispatchAsync(new PingCommand("hi"), session);
if (!result.Matched)
{
// unknown command
}
For network-driven dispatch, build the context from a seed (e.g. the originating connection):
container.RegisterCommandDispatcher<Session>();
container.RegisterCommandHandler<PingCommand, Session, PingHandler>();
container.RegisterSeededCommandDispatcher<Session, Connection, ConnectionSessionFactory>();
// in the receive loop, where the connection is known:
var seeded = container.Resolve<ISeededCommandDispatcher<Session, Connection>>();
await seeded.DispatchAsync(command, connection); // factory maps connection -> Session
Key types
| Type | Purpose |
|---|---|
RegisterDefaultServicesExtensions |
RegisterCoreServices() / RegisterConfigManagerService() entry points. |
ConfigManagerService |
YAML config load/save with env-var substitution. |
EventBusService |
In-process event bus implementation. |
CommandDispatcher<TContext> |
Typed protocol command dispatch with context. |
JobSystemService |
Background job execution. |
TimerWheelService |
Timer-wheel scheduling. |
MainThreadDispatcherService |
Main-thread work dispatch. |
MetricsCollectionService |
Metric sample aggregation. |
Related
- Tutorial: Events, jobs & scheduling
License
MIT — part of SquidStd.
| 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
- Cronos (>= 0.13.0)
- DryIoc.dll (>= 5.4.3)
- Serilog (>= 4.3.1)
- Serilog.Sinks.Console (>= 6.1.1)
- Serilog.Sinks.File (>= 7.0.0)
- SquidStd.Abstractions (>= 0.12.0)
- SquidStd.Core (>= 0.12.0)
- SquidStd.Storage (>= 0.12.0)
- SquidStd.Storage.Abstractions (>= 0.12.0)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on SquidStd.Services.Core:
| Package | Downloads |
|---|---|
|
SquidStd.Workers.Manager
Package Description |
|
|
SquidStd.Mail.MailKit
Package Description |
|
|
SquidStd.AspNetCore
Package Description |
|
|
SquidStd.Crypto
Package Description |
|
|
SquidStd.Vfs
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.27.0 | 57 | 7/7/2026 |
| 0.26.0 | 48 | 7/7/2026 |
| 0.25.0 | 98 | 7/6/2026 |
| 0.24.1 | 110 | 7/6/2026 |
| 0.24.0 | 101 | 7/6/2026 |
| 0.23.0 | 110 | 7/4/2026 |
| 0.22.0 | 106 | 7/4/2026 |
| 0.21.0 | 115 | 7/3/2026 |
| 0.20.0 | 116 | 7/3/2026 |
| 0.19.0 | 126 | 7/3/2026 |
| 0.18.0 | 117 | 7/3/2026 |
| 0.17.0 | 123 | 7/3/2026 |
| 0.16.0 | 119 | 7/3/2026 |
| 0.15.0 | 128 | 7/2/2026 |
| 0.14.1 | 124 | 7/2/2026 |
| 0.14.0 | 120 | 7/2/2026 |
| 0.13.0 | 122 | 7/2/2026 |
| 0.12.0 | 119 | 7/2/2026 |
| 0.11.0 | 123 | 7/2/2026 |
| 0.10.0 | 148 | 6/30/2026 |