NSmithy.Client 0.1.0

dotnet add package NSmithy.Client --version 0.1.0
                    
NuGet\Install-Package NSmithy.Client -Version 0.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NSmithy.Client" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NSmithy.Client" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="NSmithy.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NSmithy.Client --version 0.1.0
                    
#r "nuget: NSmithy.Client, 0.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NSmithy.Client@0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NSmithy.Client&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=NSmithy.Client&version=0.1.0
                    
Install as a Cake Tool

<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.

  1. Install Nix (recommended: Determinate Nix) and devenv.

  2. Optionally install direnv to activate the dev environment automatically when entering the directory (direnv allow). Without it, run devenv shell manually.

  3. Use the just recipes 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
    
  • 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 simpleRestJson and 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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