Skip to main content
Welcome. This site supports keyboard navigation and screen readers. Press ? at any time for keyboard shortcuts. Press [ to focus the sidebar, ] to focus the content. High-contrast themes are available via the toolbar.
serard@dev00:~/cv

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);

Both bundles follow the same architecture: Bundle (consumer library), Bundle.Attributes (marker attribute), Bundle.Design (schema downloader), Bundle.SourceGenerator (Roslyn generator).

⬇ Download