| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| Refit.16.0.0.nupkg | 2026-09-20 | 2.1 MB | |
| Refit.HttpClientFactory.16.0.0.nupkg | 2026-09-20 | 386.8 kB | |
| Refit.Newtonsoft.Json.16.0.0.nupkg | 2026-09-20 | 248.3 kB | |
| Refit.Reflection.16.0.0.nupkg | 2026-09-20 | 901.7 kB | |
| Refit.Testing.16.0.0.nupkg | 2026-09-20 | 484.6 kB | |
| Refit.Xml.16.0.0.nupkg | 2026-09-20 | 269.4 kB | |
| 16.0.0 source code.tar.gz | 2026-09-20 | 1.1 MB | |
| 16.0.0 source code.zip | 2026-09-20 | 2.0 MB | |
| README.md | 2026-09-20 | 5.5 kB | |
| Totals: 9 Items | 7.5 MB | 0 | |
Summary
Refit 16.0.0 is a major version because the .NET 11 assemblies are built without runtime-async. The public API does not change.
Why runtime-async is off
- In .NET 10 and older, the C# compiler adds a state machine to each async method. The state machine stores the local variables and tracks where to resume after each
await. - .NET 11 adds a feature called runtime-async. The runtime does this work instead, so async code can run faster.
- Refit 12.0.0 to 15.2.0 built the .NET 11 assemblies with runtime-async on. We did not use it with older .NET 8-10 nor .NET framework assemblies.
- The feature needs a runtime that supports it. CoreCLR does, and Mono does not.
- Blazor WebAssembly runs on Mono unless you opt into CoreCLR. WASI, Android API levels 21 to 23, and apps that set
UseMonoRuntime=truealso run on Mono. - Refit built with runtime-async can fail in every app that runs on Mono.
- Microsoft builds its framework assemblies twice, once for each runtime. ASP.NET Core turns the feature on only for libraries inside the shared framework, and leaves it off for libraries that also ship on NuGet.
- A NuGet package ships one build for every runtime, so Refit leaves the feature off. The feature is opt-in, so doing nothing is the correct setting.
- Apps that target .NET 10 or older are not affected, because only the .NET 11 assemblies used the feature. Apps on .NET 11 that run on CoreCLR do not get the speed gain inside Refit's own async code.
- You can turn on runtime-async in your own app if it runs only on CoreCLR.
Other changes
- Refit has a documentation website at https://reactiveui.net/documentation/refit/. It has guides for requests, results, clients, serialization and testing, and one page that lists the full API.
- The README is a short overview of the packages, the build requirements and the links to the website.
src/examples/Documentationhas a project for every website page, plus larger samples for topics such as multipart uploads, serializers and compression. Each project builds withRefit.slnxand checks its results against local replies, so none needs a live service.- On older target frameworks, Refit checks the cancellation token before it buffers or reads HTTP content. A token that is already cancelled stops the operation before it starts.
- Doc comments were corrected to match how Refit works. They state that
[Options]sendsOPTIONS, that[Url]accepts an empty path or/, and that[PathPrefix]does not add a leading slash. The Refit.Testing docs state thatVerifyAllCalledignores reusable and fallback routes. - The Blazor WebAssembly sample builds for .NET 10 and .NET 11. It uses a generated client and JSON source generation, and builds without trimmer warnings.
- Refit depends on ReactiveUI.Primitives 8.0.0. On .NET 11, Refit.HttpClientFactory depends on Microsoft.Extensions.Http 11.0.0-rc.1, and other targets depend on 10.0.12.
SECURITY.mdlists the supported versions and explains how to report a vulnerability through GitHub private reporting.- CI workflows drop code scanning of fork pull requests and pass
sourceRefto the shared release workflow. Renovate handles package updates per target framework, and the generator snapshot tests use a small in-repo helper instead of the Verify packages.
ποΈ What's Changed
β¨ Features
- [6f0507] feat: expand generated request support & docs (#2329) @glennawatson
- [6445e4] feat: update nuget packages, update Renovate configuration, enhance generator tests, remove unused packages (#2330) @glennawatson
- [1459f5] feature: Remove runtime-async feature from Directory.Build.props (#2331) @glennawatson
π§Ή General Changes
- [ba8f49] ci: let the shared fork SonarCloud workflow resolve the pull request itself @glennawatson
- [154215] ci: remove SonarCloud scanning of fork pull requests @glennawatson
- [7b1c3b] ci(lock): run the lock workflow at its own time of day @glennawatson
- [dd2a75] ci: pass sourceRef to the shared release workflow @glennawatson
π Documentation
- [c2bd86] docs(readme): link combined API reference @glennawatson
- [dee79f] docs: add security policy @glennawatson
π¦ Dependencies
- [45fcc5] chore(deps): pin mcr.microsoft.com/dotnet/sdk docker tag to e622deb (#2324) renovate[bot]
- [8b71ed] chore(deps): update dependency minver to v8 (#2320) renovate[bot]
- [2d8976] chore(deps): update dependency sonaranalyzer.csharp to 10.33.0.1635 (#2316) renovate[bot]
- [2f7584] chore(deps): update dependency microsoft.testing.extensions.codecoverage to 18.11.2 (#2322) renovate[bot]
- [9bf02a] chore(deps): update dependency verify.tunit to v32 (#2318) renovate[bot]
- [96e91c] chore(deps): update dependency roslynator.analyzers to v5 (#2317) renovate[bot]
- [47698c] chore(deps): pin github actions digests (#2323) renovate[bot]
- [5d9fe4] chore(deps): update dependency sonaranalyzer.csharp to 10.34.0.3385 (#2321) renovate[bot]
- [38471c] chore(deps): update dependency publicapisharp.analyzers to v2 (#2328) renovate[bot]
π Other
- [bb4957] Update sponsors section in README @glennawatson
- [5106e9] Update copyright year in LICENSE file @glennawatson
π Full Changelog: https://github.com/reactiveui/refit/compare/v15.2.0...v16.0.0
π Contributions
π Thanks to all the contributors: @glennawatson
π€ Automated services that contributed: renovate[bot]