- status
- alpha
- license
- Apache-2.0
- stack
- .NET 10
- source
- corfedo/corfedo-troupe
Corfedo Troupe
Build a .NET host from components that declare what they register, require and configure.
In a large application, Program.cs can grow into hundreds of registrations nobody owns, and a missing configuration
section shows up only when a request hits it. Troupe builds the host from components that declare what they
register, what they require and which configuration they read. It records the owner of every registration, so a
misconfigured host fails at startup with a diagnostic that names the components involved.
public sealed class WorkerSettings : IComponent
{
public void Compose(IComponentBuilder component) =>
component.Options<HeartbeatOptions, HeartbeatValidator>("Worker");
}
If the Worker section is missing, the host doesn’t start. Composition fails with TRP005, which names
WorkerSettings and the missing section.
One executable, several deployments
A role is a workload; a profile is an exact set of roles. The same declarations run as one combined process or split
across several, selected with --profile at startup:
definition.Role<OrdersRole>().Role<NotificationsRole>()
.Profile("orders", "orders")
.Profile("notifications", "notifications")
.Profile("combined", "orders", "notifications");
At runtime a caller can ask whether an owner is composed in this process, and call it directly or over the transport the application already uses, such as HTTP, gRPC or a queue.
A manifest you can query
Every process can say what it composes, who registered each service, who reads each configuration section and who contributed to third-party builders such as Wolverine’s options. Tests use the same manifest to verify every declared profile against a real host, and application rules can check policy against it.
Status
Alpha: the API can still change. The Corfedo platform runs on it, as one executable with roles such as web, API,
MCP, worker and AI executor. Install it from NuGet with dotnet add package Corfedo.Troupe; add
Corfedo.Troupe.AspNetCore for web hosts and Corfedo.Troupe.Testing for profile verification. The source and
examples are on GitHub.