For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Book a demoLog inStart for free
  • Overview
    • Introduction
    • How it works
    • Quickstart
    • Customer showcase
  • Working with SDKs
    • Project structure
    • Adding custom code
    • Migrating to Replay
    • Capabilities
  • Generators
      • Generating an SDK
      • Publishing to NuGet
      • Configuration
      • Adding custom code
      • Version compatibility
      • Changelog
      • Customer showcase
  • Reference
    • generators.yml
Checking status...
SOC2Soc 2 Type II
© 2026 Fern • Birch Solutions, Inc., a Postman company

Documentation

SDKsDocsAsk FernCLI Reference

API Definitions

OpenAPIAsyncAPIOpenRPCgRPC

Resources

BlogSupportPricing

Company

Brand KitPrivacy PolicyTerms of Service
LogoLogo
Book a demoLog inStart for free
Generators.NET

Changelog

March 13, 2026
March 13, 2026
Was this page helpful?
Edit this page
Previous

March 16, 2026

Next

March 12, 2026

2.31.0

(feat): Add support for base64 primitive type in the IR to represent Protobuf byte[].

(fix): Fix the .ToProto and .FromProto mapper methods to support for enums nested within message descriptors.

2.30.3

(fix): Add better support for the google.rpc.Status type, and stop generating redundant wrapper types for google.api and google.rpc types.

2.30.2

(fix): Fix gRPC code generation to support enums with numeric identifiers.

2.30.1

(fix): Fix gRPC code generation to support enums with numeric identifiers.

2.30.0

(feat): Add sln-format configuration option. Set to "sln" to generate both a legacy .sln solution file and the modern .slnx file. The default value "slnx" generates only the .slnx file. This is useful for teams that need compatibility with older .NET tooling or CI systems that do not yet support the .slnx format.

1generators:
2 - name: fernapi/fern-csharp-sdk
3 config:
4 sln-format: sln

2.29.0

(feat): Rework enum JSON serialization to eliminate reflection. Each enum now gets a generated serializer with static dictionary lookups instead of the generic EnumSerializer<T> / StringEnumSerializer<T> that used Enum.GetValues, GetField, GetCustomAttributes, and Activator.CreateInstance at runtime. Serializer initialization is ~1,000x faster (18 ns vs 18 us) and allocates 160x less memory; steady-state throughput is unchanged. The generated code is also NativeAOT and IL-trimming compatible.

2.28.0

(feat): Generate a separate WireMock server for each test fixture instead of sharing a single global server across all mock server tests. Each test class now starts and stops its own WireMockServer in [OneTimeSetUp]/[OneTimeTearDown], and test fixtures are annotated with [Parallelizable(ParallelScope.Self)] so NUnit can run them in parallel.

2.27.1

(fix): Fix retry test assertions to match the SDK’s indented JSON serialization.

2.27.0

(feat): Improve gRPC code generation with the following:

  1. Updated enum representation and .ToProto + .FromProto mappers.
  2. Fix an issue with rendering the gRPC client reference.
  3. Update protoc-gen-openapi to unwrap synthetic oneof types (re: https://github.com/fern-api/protoc-gen-openapi/releases/tag/v0.1.7)