MiniOps.Nucleus.Core
0.2.0
dotnet add package MiniOps.Nucleus.Core --version 0.2.0
NuGet\Install-Package MiniOps.Nucleus.Core -Version 0.2.0
<PackageReference Include="MiniOps.Nucleus.Core" Version="0.2.0" />
<PackageVersion Include="MiniOps.Nucleus.Core" Version="0.2.0" />
<PackageReference Include="MiniOps.Nucleus.Core" />
paket add MiniOps.Nucleus.Core --version 0.2.0
#r "nuget: MiniOps.Nucleus.Core, 0.2.0"
#:package MiniOps.Nucleus.Core@0.2.0
#addin nuget:?package=MiniOps.Nucleus.Core&version=0.2.0
#tool nuget:?package=MiniOps.Nucleus.Core&version=0.2.0
MiniOps.Nucleus
MiniOps.Nucleus is a high-performance, ultra-lightweight request metrics collector and real-time dashboard for .NET applications.
With a footprint of just 26 KB, it provides a minimal yet powerful solution for monitoring your application's request traffic without adding overhead.
It captures key request metrics — including duration, status codes, paths, and timestamps — and stores them in a thread-safe, in-memory queue for non-blocking, high-speed writes.
Logs are flushed in batches to your database using Dapper and Dapper Plus with optimized bulk inserts to keep persistence blazing fast and efficient.
Automatic cleanup runs based on configurable retention settings to keep storage lean.
MiniOps.Nucleus also includes an early-preview SignalR-powered dashboard for real-time visualization of request patterns, making it easy to monitor performance, spot spikes, and identify bottlenecks.
Its lightweight design and simple integration make it ideal for APIs and high-throughput web applications.
⚠️ Known Limitations (Pre-Release Stage)
- Dashboard is currently only functional for the live graph and total cards.
- Metrics cards, request ticker, recent requests table, and nodes status panel are not yet populated in real-time.
- SignalR may lag under extremely high traffic. Adjust
BatchFlushIntervalSecondsinNucleusDbContextfor optimal performance.
✨ Features
🔎 Request Metrics Tracking
Collects request duration, status codes, paths, and timestamps.🧵 Concurrent In-Memory Store
Built with a thread-safe concurrent queue for non-blocking, high-speed writes.💾 Batch Inserts & Deletes
Flushes requests to the database in batches, reducing write overhead. Deletes old rows automatically to reduce DB bloat.📊 Dashboard (Early Preview)
- Real-time streaming chart of requests (via SignalR).
- Currently, only the request graph is implemented.
- Upcoming panels: status breakdown, latency distribution, and more.
⚡ Ultra Lightweight
With a 26 KB footprint, MiniOps.Nucleus is one of the lightest metrics solutions you can add to your project.
Getting Started
Quick start Register Nucleus in DI and configure options:
// Register Nucleus Core
builder.Services.AddNucleus(op =>
op.UseDatabase(NucleusDatabaseTypes.SQLServer, "<connection-string>")
.WithSchema("Nucleus")
.EnableSeedDatabase(true)
.SetLogTtl(60)
.SetBatchFlushInterval(1)
.UseCustomTableNames("RequestMetrics", "RequestAggregates")
);
var app = builder.Build();
//...
// Start Nucleus (seeding + background services)
await app.UseNucleus();
app.Run();
That’s it—requests flowing through the app are tracked and written to your database in batches. Old rows are purged automatically based on LogTTLSeconds.
Configuration Options
| Property | Type | Default | Description |
| --------------------------- | ---------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------- |
| DatabaseType | NucleusDatabaseTypes | — | The type of database MiniOps will use. Supported: SqlServer (More to come) |
| ConnectionString | string | "" | The connection string for the selected database |
| LogTTLSeconds | int | 1 | Time-to-live for request logs, in seconds. Expired logs are deleted automatically by the background cleanup service |
| BatchFlushIntervalSeconds | float | 1 | How often, in seconds, the background flush service writes accumulated logs to the database |
| SchemaName | string | "Nucleus" | Optional custom schema/table name for request logs |
| SeedDatabase | bool | false | Whether to seed the database automatically on startup |
❓ FAQ
Is it thread-safe?
Yes, MiniOps.Nucleus uses a ConcurrentQueue for non-blocking, thread-safe writes.
Can it work without a database?
Currently, a database is required for batch inserts.
Which databases are supported?
SQLServer, PostgreSQL, and SQLite are fully supported; More support coming soon.
Does it impact app performance?
It is designed to be lightweight and minimal, with <1ms overhead per request.
🤝 Contributing
Contributions, issues, and feature requests are welcome!
Please check the issues before creating new ones.
📄 License
MiniOps.Nucleus is licensed under the MIT License.
| 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 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. |
-
net8.0
- Dapper (>= 2.1.66)
- Microsoft.AspNetCore.Http (>= 2.3.0)
- Microsoft.AspNetCore.SignalR (>= 1.2.0)
- Microsoft.AspNetCore.SignalR.Core (>= 1.2.0)
- Microsoft.Data.SqlClient (>= 6.1.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.16)
- Microsoft.SqlServer.Server (>= 1.0.0)
- Z.Dapper.Plus (>= 8.0.1)
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 | |
|---|---|---|---|
| 0.2.0 | 186 | 8/19/2025 | |
| 0.1.0-alpha | 260 | 8/16/2025 |