Compono 0.1.0-preview.42
See the version list below for details.
dotnet add package Compono --version 0.1.0-preview.42
NuGet\Install-Package Compono -Version 0.1.0-preview.42
<PackageReference Include="Compono" Version="0.1.0-preview.42" />
<PackageVersion Include="Compono" Version="0.1.0-preview.42" />
<PackageReference Include="Compono" />
paket add Compono --version 0.1.0-preview.42
#r "nuget: Compono, 0.1.0-preview.42"
#:package Compono@0.1.0-preview.42
#addin nuget:?package=Compono&version=0.1.0-preview.42&prerelease
#tool nuget:?package=Compono&version=0.1.0-preview.42&prerelease
Compono
A modern, source-generated test composition framework for .NET.
Compono is a modular framework for composing complete test environments in modern .NET applications.
Rather than focusing solely on object generation, Compono composes object graphs, shared dependencies, test doubles, semantic data, and reusable conventions into a single, deterministic model.
Why Compono?
Modern .NET has evolved. Compono embraces source generators, records, required members, nullable reference types, trimming, and Native AOT instead of building around runtime reflection.
The goal isn't to recreate AutoFixture. It's to rethink test composition from first principles.
Philosophy
- Composition over object generation
- Predictability over magic
- Source-generated by default
- Deterministic by design
- Performance is a feature
- Diagnostics are a product feature
- Modular architecture
Tests declare what they need.
Compono determines how those requirements are satisfied.
Packages
Package Description
Compono Core composition engine with built-in source generator
Compono.XunitV3 xUnit v3 integration
Compono.NSubstitute Automatic NSubstitute composition
Compono.Bogus Semantic fake data integration
Example
var composer = Composer.Create(builder =>
{
builder.UseNSubstitute();
builder.UseBogus();
});
var customer = composer.Create<Customer>();
Source Generation First
Runtime reflection is intentionally not part of the default execution model.
If compatibility support is ever introduced, it will require an explicit opt-in.
Performance
Generated construction (composer.Create<T>()) runs ~6.0x faster than an
equivalent reflection-based baseline, and within ~1 ns of a bare
new Leaf(), for the flat-type case Milestone 1 can measure end-to-end
today. A separate ecosystem-comparison benchmark against AutoFixture is
also included as a recognizable reference point - not a claim Compono
replaces it. See
Performance (or
docs/performance.md) for methodology, caveats, and how to reproduce -
benchmarks/Compono.Benchmarks.
Getting Started
New to Compono? Start at the Getting Started guide — installation, a first composed test, and curated learning paths for different starting points (new to Compono, migrating from AutoFixture, using xUnit, using NSubstitute).
Migrating from AutoFixture? See the AutoFixture migration guide.
Documentation
The full documentation site is at
layeredcraft.github.io/compono.
See the /docs directory for the manifesto, architecture, public API,
performance, MVP roadmap, design principles, and ADRs.
Contributing
Compono welcomes outside contributions. See
CONTRIBUTING.md for how to get started — build/test
instructions, coding standards, PR conventions, and "good first issue"
candidates live at
layeredcraft.github.io/compono/contributing.
Please also read the
Code of Conduct.
To report a security vulnerability, see the
Security Policy
instead of opening a public issue.
Status
Compono is under active development. APIs are experimental until the first public preview.
License
MIT
| 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. net11.0 is compatible. |
-
net10.0
- No dependencies.
-
net11.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Compono:
| Package | Downloads |
|---|---|
|
Compono.XunitV3
xUnit v3 integration for Compono - [Compose]/[Compose<TProfile>] theory data attributes and [Shared] parameter sharing. |
|
|
Compono.NSubstitute
NSubstitute integration for Compono - a test-double provider composing interface, delegate, and (optionally) abstract-class parameters as real NSubstitute substitutes. |
|
|
Compono.Bogus
Bogus integration for Compono - a conservative member-name-convention semantic provider, plus explicit member-level and whole-object Faker sugar. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.1-preview.47 | 0 | 8/7/2026 |
| 0.1.0 | 0 | 8/7/2026 |
| 0.1.0-preview.46 | 0 | 8/7/2026 |
| 0.1.0-preview.45 | 0 | 8/7/2026 |
| 0.1.0-preview.44 | 0 | 8/7/2026 |
| 0.1.0-preview.43 | 0 | 8/7/2026 |
| 0.1.0-preview.42 | 0 | 8/7/2026 |
| 0.1.0-preview.41 | 0 | 8/7/2026 |
| 0.1.0-preview.40 | 34 | 8/5/2026 |
| 0.1.0-preview.39 | 29 | 8/5/2026 |
| 0.1.0-preview.38 | 32 | 8/5/2026 |
| 0.1.0-preview.37 | 53 | 8/5/2026 |
| 0.1.0-preview.36 | 45 | 8/4/2026 |
| 0.1.0-alpha.35 | 39 | 8/4/2026 |
| 0.1.0-alpha.34 | 44 | 8/3/2026 |
| 0.1.0-alpha.33 | 49 | 8/3/2026 |
| 0.1.0-alpha.31 | 41 | 8/2/2026 |
| 0.0.1-alpha.32 | 43 | 8/2/2026 |
| 0.0.1-alpha.30 | 39 | 8/1/2026 |
| 0.0.1-alpha.29 | 43 | 8/1/2026 |