> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

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

```yaml
generators:
  - name: fernapi/fern-csharp-sdk
    config:
      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](https://github.com/fern-api/protoc-gen-openapi/releases/tag/v0.1.7))