Sora.Messaging.RabbitMq
0.2.16
See the version list below for details.
dotnet add package Sora.Messaging.RabbitMq --version 0.2.16
NuGet\Install-Package Sora.Messaging.RabbitMq -Version 0.2.16
<PackageReference Include="Sora.Messaging.RabbitMq" Version="0.2.16" />
<PackageVersion Include="Sora.Messaging.RabbitMq" Version="0.2.16" />
<PackageReference Include="Sora.Messaging.RabbitMq" />
paket add Sora.Messaging.RabbitMq --version 0.2.16
#r "nuget: Sora.Messaging.RabbitMq, 0.2.16"
#:package Sora.Messaging.RabbitMq@0.2.16
#addin nuget:?package=Sora.Messaging.RabbitMq&version=0.2.16
#tool nuget:?package=Sora.Messaging.RabbitMq&version=0.2.16
Sora Framework
Sora is a modern, modular .NET framework for building applications with clarity and flexibility—heavily inspired by Zen’s best ideas, with simpler contracts and better DX.
- .NET 9 first. Minimal magic, clear composition.
- Modular data adapters (JSON for dev, SQLite via Dapper), web bootstrap, and pragmatic “escape hatches.”
- Always-on discovery (with a production warning); explicit config always wins.
See docs/
for design/ADRs. Start with docs/00-index.md
and docs/08-engineering-guardrails.md
.
Layering defaults: logging defaults live in Core, and secure headers in Web (see docs/decisions/0011-logging-and-headers-layering.md
).
New to Sora? Read the step-by-step docs/11-getting-started.md
.
Features
- Data abstractions:
IDataRepository<TEntity, TKey>
,IBatchSet
, capability flags. - Built-in adapters: JSON (dev), SQLite (Dapper) with schema sync and optional string queries.
- Repo pipeline conveniences: identity assignment for string/Guid keys, batch helpers.
- Instruction API: execute provider-specific instructions safely (e.g., raw SQL nonquery/scalar).
- Web module: minimal auto-wiring for controllers/static files and health.
- Discovery & precedence: modules self-register; production logs a warning; explicit config overrides discovery.
- Provider priority:
ProviderPriorityAttribute
selects default adapter when more than one is present.
Requirements
- .NET 9 SDK
- Optional: Docker/WSL2 for containerized samples
Quickstart
Build and run the S0 console sample (JSON adapter):
dotnet build
dotnet run --project .\samples\S0.ConsoleJsonRepo\S0.ConsoleJsonRepo.csproj
Run the S1 web sample (SQLite optional):
dotnet run --project .\samples\S1.Web\S1.Web.csproj
- SQLite adapter self-registers via discovery. To set a connection string explicitly:
// in Program.cs (S1.Web)
// builder.Services.AddSqliteAdapter(o => o.ConnectionString = "Data Source=.\\data\\s1.sqlite");
Using data APIs
Terse static facade for common string-key entities:
// Upsert and fetch
var todo = await new Todo { Title = "buy milk" }.Save();
var item = await Todo.Get(todo.Id);
// Batch
var result = await Todo.Batch()
.Add(new Todo { Title = "task 1" })
.Update(todo.Id, t => t.Title = "buy more" )
.Save();
SQLite optional string queries (safe parameterization via Dapper):
var items = await Sora.Data.Core.Data<Todo, string>.Query("Title LIKE '%milk%'"); // WHERE suffix
// or full SELECT if preferred
var items2 = await Sora.Data.Core.Data<Todo, string>.Query("SELECT Id, Title FROM Todo WHERE Title LIKE '%milk%'");
Instruction escape hatch (SQL): see docs/10-execute-instructions.md
.
More walkthroughs: docs/11-getting-started.md
.
Tests
dotnet test -c Release -v minimal
CI runs on push via .github/workflows/ci.yml
.
Contributing
We welcome issues and PRs. Start with docs/support/03-adapter-checklist.md
and docs/08-engineering-guardrails.md
.
DCO sign-off: include a Signed-off-by line in each commit. Example:
Signed-off-by: Your Name your.email@example.com
See the DCO
file for the certificate text.
License
- Code: Apache License 2.0 — see
LICENSE
andNOTICE
. - Documentation: Creative Commons Attribution 4.0 — see
docs/LICENSE-DOCS.md
.
Trademarks: see TRADEMARKS.md
for simple usage guidelines.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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. |
-
net9.0
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Configuration.Binder (>= 9.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Http (>= 9.0.8)
- RabbitMQ.Client (>= 6.6.0)
- Sora.Core (>= 0.2.16)
- Sora.Messaging.Abstractions (>= 0.2.16)
- Sora.Messaging.Core (>= 0.2.16)
- Sora.Messaging.Inbox.Http (>= 0.2.16)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
See release notes: https://github.com/sylin-labs/sora-framework/releases