JSON Schema Bundles
A second wrapping strategy alongside BinaryWrapper: instead of scraping CLI --help output, these projects download official JSON schemas, merge versions, and source-generate typed C# models with fluent builders.
DockerCompose.Bundle (FrenchExDev.Net.DockerCompose.Bundle)
Strongly-typed Docker Compose configuration generated from 32 Compose specification schema versions. Downloads schemas from GitHub, merges them with [SinceVersion]/[UntilVersion] annotations, and emits typed models, builders, and serializers via Roslyn source generation.
See the dedicated article for the full pipeline.
Traefik.Bundle (FrenchExDev.Net.Traefik.Bundle)
Strongly-typed Traefik reverse proxy configuration generated from official JSON schemas. Provides compile-time-safe models for both static and dynamic Traefik configuration, fluent builders, and round-trip YAML serialization.
var staticConfig = new TraefikStaticConfigBuilder()
.WithEntryPoint("web", ep => ep.WithAddress(":80"))
.WithEntryPoint("websecure", ep => ep.WithAddress(":443"))
.BuildAsync()
.Result.ValueOrThrow().Value;
string yaml = TraefikSerializer.Serialize(staticConfig);var staticConfig = new TraefikStaticConfigBuilder()
.WithEntryPoint("web", ep => ep.WithAddress(":80"))
.WithEntryPoint("websecure", ep => ep.WithAddress(":443"))
.BuildAsync()
.Result.ValueOrThrow().Value;
string yaml = TraefikSerializer.Serialize(staticConfig);Both bundles follow the same architecture: Bundle (consumer library), Bundle.Attributes (marker attribute), Bundle.Design (schema downloader), Bundle.SourceGenerator (Roslyn generator).