NSmithy.Client
0.1.0
dotnet add package NSmithy.Client --version 0.1.0
NuGet\Install-Package NSmithy.Client -Version 0.1.0
<PackageReference Include="NSmithy.Client" Version="0.1.0" />
<PackageVersion Include="NSmithy.Client" Version="0.1.0" />
<PackageReference Include="NSmithy.Client" />
paket add NSmithy.Client --version 0.1.0
#r "nuget: NSmithy.Client, 0.1.0"
#:package NSmithy.Client@0.1.0
#addin nuget:?package=NSmithy.Client&version=0.1.0
#tool nuget:?package=NSmithy.Client&version=0.1.0
<p align="center"> <img src="https://raw.githubusercontent.com/thomaslaich/smithy-dotnet/main/website/public/brand/nsmithy_logo_1.png" alt="NSmithy logo" width="320" /> </p>
<p align="center"> <a href="https://github.com/thomaslaich/smithy-dotnet/actions/workflows/ci.yml"> <img src="https://github.com/thomaslaich/smithy-dotnet/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI" /> </a> <a href="https://thomaslaich.github.io/smithy-dotnet/"> <img src="https://github.com/thomaslaich/smithy-dotnet/actions/workflows/docs.yml/badge.svg?branch=main" alt="Docs" /> </a> <a href="https://www.nuget.org/packages/NSmithy.Client"> <img src="https://img.shields.io/nuget/v/NSmithy.Client" alt="NuGet" /> </a> <a href="https://dotnet.microsoft.com/"> <img src="https://img.shields.io/badge/.NET-net10.0-512BD4" alt=".NET 10" /> </a> <a href="LICENSE"> <img src="https://img.shields.io/github/license/thomaslaich/smithy-dotnet" alt="License" /> </a> <a href="https://github.com/smithy-lang/smithy/releases/tag/1.68.0"> <img src="https://img.shields.io/badge/smithy--cli-1.68.0-orange" alt="Smithy CLI" /> </a> </p>
Preview: NSmithy is in preview — expect some API changes before 1.0. Protocol implementations are not yet on par with the Smithy reference implementations.
NSmithy
Docs · Design Docs · smithy.io
NSmithy is a preview-stage .NET toolkit that turns a Smithy model into idiomatic C# at build time. From a single contract you get typed clients, server scaffolding, and shared model types — fully integrated into your MSBuild workflow.
Features
- Contract-first, protocol-agnostic: Define your service once in Smithy — operations, shapes, and errors — independent of any wire protocol. The same model can target a different protocol without rewriting your contract.
- MSBuild integration: Generate C# models, typed clients, and ASP.NET Core minimal API server stubs from a Smithy IDL as part of
dotnet build— no separate codegen step, no Java or JRE installation required. - Protocol support: REST JSON, REST XML, RPC v2 CBOR, and gRPC.
- Conformance-tested: Validated against official Smithy, AWS, and alloy conformance suites.
Development
The recommended way to work on this repo is with Nix and devenv.
Install Nix (recommended: Determinate Nix) and devenv.
Optionally install direnv to activate the dev environment automatically when entering the directory (
direnv allow). Without it, rundevenv shellmanually.Use the
justrecipes to build, test, and package:just # list all available recipes just build # build the codegen JAR and .NET solution just test # run the test suite just fmt # format all code just docs # start the documentation dev server just ci # run the full CI pipeline locally
Related Projects
- Smithy — the IDL and protocol framework NSmithy is built on.
- smithy4s — the main inspiration for NSmithy; generates Scala code from Smithy models with similar goals, though with a more sophisticated typeclass-based codec architecture that cleanly separates schema interpretation from serialization.
- alloy — Smithy extensions used by NSmithy for
simpleRestJsonand gRPC protocols. - smithy-go / smithy-typescript — official Smithy codegen plugins for Go and TypeScript, which NSmithy draws inspiration from.
- TypeSpec — Microsoft's alternative API description language with similar goals. Compiles to OpenAPI, JSON Schema, Protobuf, and more; has first-party .NET emitters.
| 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
- NSmithy.Http (>= 0.1.0)
- NSmithy.MSBuild (>= 0.1.0)
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 |
|---|---|---|
| 0.1.0 | 6 | 6/8/2026 |
| 0.1.0-preview.15 | 50 | 5/28/2026 |
| 0.1.0-preview.14 | 53 | 5/28/2026 |
| 0.1.0-preview.13 | 53 | 5/28/2026 |
| 0.1.0-preview.12 | 51 | 5/27/2026 |
| 0.1.0-preview.11 | 48 | 5/25/2026 |
| 0.1.0-preview.10 | 44 | 5/24/2026 |
| 0.1.0-preview.9 | 60 | 5/20/2026 |
| 0.1.0-preview.8 | 46 | 5/5/2026 |
| 0.1.0-preview.6 | 63 | 5/5/2026 |
| 0.1.0-preview.5 | 55 | 5/3/2026 |
| 0.1.0-preview.4 | 62 | 5/3/2026 |
| 0.1.0-preview.3 | 47 | 5/1/2026 |