Qyl.Orchestration
17.0.14
dotnet add package Qyl.Orchestration --version 17.0.14
NuGet\Install-Package Qyl.Orchestration -Version 17.0.14
<PackageReference Include="Qyl.Orchestration" Version="17.0.14" />
<PackageVersion Include="Qyl.Orchestration" Version="17.0.14" />
<PackageReference Include="Qyl.Orchestration" />
paket add Qyl.Orchestration --version 17.0.14
#r "nuget: Qyl.Orchestration, 17.0.14"
#:package Qyl.Orchestration@17.0.14
#addin nuget:?package=Qyl.Orchestration&version=17.0.14
#tool nuget:?package=Qyl.Orchestration&version=17.0.14
Qyl.Orchestration
Compose and supervise local .NET services and executables with the process supervisor of
qyl, the one qyl up runs on. Targets .NET 10 and the ASP.NET Core shared
framework. It starts only the processes you add: no collector, telemetry exporter, control server or
console UI.
using Qyl.Orchestration;
var builder = new QylApplicationBuilder { StartupTimeoutSeconds = 30, MaxRestarts = 0 };
var payments = builder.AddDotnetService("payments-api", paymentsAssembly);
builder.AddDotnetService("orders-api", ordersAssembly)
.WithReference(payments)
.WaitFor(payments);
await using var app = builder.Build();
await app.StartAsync(cancellationToken);
using var orders = new HttpClient { BaseAddress = app.GetEndpoint("orders-api") };
AddDotnetService takes a built assembly with its runtimeconfig.json; AddExecutable takes any
executable, with arguments passed directly, without a shell. Each service gets its own loopback
endpoint through ASPNETCORE_URLS and its name as OTEL_SERVICE_NAME; a reference arrives as
services__<name>__http__0. A successful /health response means ready, and
WithHealthCheck("/health", requireProcessId: true) also requires the body to equal the child's
process ID. WithoutEnvironmentPrefix removes inherited variables before the WithEnvironment
values apply.
Build checks for dependency cycles and reserves the ports. StartAsync waits until every process
is ready (60 seconds by default) and stops all children on failure or cancellation; an early exit
reports the child's recent output. After readiness, an unexpected exit restarts the process up to
MaxRestarts times, three by default. On shutdown each process stops before the services it waits
for, so its final exports still arrive. On Unix, stop, restart and disposal send SIGTERM and allow
ten seconds before the process tree is killed; on Windows the main window is asked to close where
there is one, otherwise the process is terminated. DisposeAsync stops the process trees and
releases the reservations, even when the application never started. A builder and its application
are one run.
The library manages processes. It does not build projects, provision databases or containers, or configure telemetry beyond each process's service name.
License
qyl is free, under the MIT license (LICENSE). Source: https://github.com/ANcpLua/qyl.
| 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
- No dependencies.
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 |
|---|---|---|
| 17.0.14 | 138 | 10/22/2026 |
| 17.0.13 | 102 | 10/22/2026 |
| 17.0.12 | 124 | 10/21/2026 |
| 17.0.11 | 103 | 10/21/2026 |
| 17.0.10 | 106 | 10/21/2026 |
| 17.0.9 | 102 | 10/20/2026 |
| 17.0.8 | 109 | 10/20/2026 |
| 17.0.7 | 105 | 10/20/2026 |
| 17.0.6 | 112 | 10/20/2026 |
| 17.0.5 | 98 | 10/20/2026 |
| 17.0.4 | 95 | 10/19/2026 |
| 17.0.3 | 102 | 10/19/2026 |
| 17.0.2 | 99 | 10/19/2026 |
| 17.0.1 | 96 | 10/19/2026 |
| 17.0.0 | 109 | 10/19/2026 |
| 16.0.1 | 124 | 10/19/2026 |
| 16.0.0 | 114 | 10/17/2026 |
| 15.0.4 | 100 | 10/17/2026 |
| 15.0.3 | 111 | 10/17/2026 |
| 15.0.2 | 99 | 10/17/2026 |