Repository navigation
Major release of both packages:
LocalStack.Client3.0.0 andLocalStack.Client.Extensions3.0.0.
Breaking changes
- Dropped the
net8.0andnet9.0assets. .NET 8 and .NET 9 apps still install both packages and usenetstandard2.0under JIT, without Native AOT; both runtimes reach end of support on November 10, 2026. TryAddAwsService<TService>(lifetime, useServiceUrl)now honorsuseServiceUrl. Callers that passedtruenow getServiceURLinstead of a region endpoint (#63).
Added
- Added endpoint catalog entries (endpoint mapping and client construction) for DSQL, S3 Tables, Bedrock Runtime, CodeArtifact, Database Migration Service, Identity Store, Managed Blockchain, SSO Admin, Textract, Lambda Web, and S3 Files. Inputs: LocalStack Python client
localstack/localstack-python-client@75fd327for DSQL and S3 Tables, and the LocalStack service documentation for the rest. Most require a LocalStack license tier per that documentation; catalog membership does not establish operation coverage. - Added
net10.0andnet11.0assets to Core (LocalStack.Client) and Extensions (LocalStack.Client.Extensions). .NET 11 is not generally available yet; thenet11.0assets are built with the .NET 11 RC2 SDK pinned inglobal.json. - Both packages support Native AOT and trimming on these targets with zero trim/AOT warnings, no suppressions, and no consumer code changes. This includes
AddLocalStack(configuration), all Add/TryAdd/alias registration overloads, CoreSession/SessionStandalone, and theType-based APIs. - On
net10.0andnet11.0, both packages use no runtime reflection for AWS SDK service clients and configs, or for accessible, concrete, non-generic custom clients/configs with constructors and properties eligible for the generated registry. The generic interface APIs (AddAwsService<T>and every overload,CreateClientByInterface<T>()) use the AWS SDK v4 static factories when the injected helper is exactly the defaultSessionReflectionand do not depend on source generation, so they also work in F# and Visual Basic; custom or mocked helpers retain the previous calls and ordering. TheType-based APIs and generic implementation API use a build-time source generator that ships in Core and turns itself on for net10-compatible C# projects, with no setup or extra package. Other client shapes (private or generic custom clients, F# and Visual Basic projects for theType-based APIs, assemblies loaded at run time, unusual constructors or properties) keep the previous behavior through a reflection fallback that runs only under JIT; trimmed and Native AOT apps do not include it. These claims cover LocalStack.NET's own code; the AWS SDK, dependency injection and BCL internals have their own AOT status, and LocalStack determines its own service coverage. - Both packages declare
IsAotCompatibleonnet10.0andnet11.0.
Changed
- With
UseLocalStack: false, Extensions now creates clients through the AWS SDK's publicAddAWSService<T>factory instead of private SDK reflection. No consumer code changes are needed.
Fixed
- With
UseLegacyPorts: true, Account, ACM PCA, Bedrock, CloudControl, CodeBuild, CodeConnections, CodeDeploy, CodePipeline, Elastic Transcoder, MemoryDB, Shield and Verified Permissions now use port 4566, matching the LocalStack Python client. They used 4567, the legacy API Gateway port. The default edge-port mode is unchanged.
Documentation
- The README states that LocalStack images from 2026.03.0 on, including
latest, needLOCALSTACK_AUTH_TOKEN, and links the official auth-token and CI documentation. It names 4.14.0 as the last token-free release, which gets no further updates (#51). - Known issues now states that the SNS fix first shipped in LocalStack v4.0.0. Removed the LocalStack v2 routing, AWS SDK v3
AWSSDK.SQSand untrackedIAmazonLambdanotes. - The security policy, contribution guide and templates list 3.x as the only supported line.
- Rewrote the README for 3.0.0 with package selection, configuration defaults, registration APIs, standalone usage, and upgrade guidance; moved contributor instructions to the contribution guide.
Dependencies
- Core:
AWSSDK.Core>= 4.0.102.6. - Extensions:
AWSSDK.Extensions.NETCore.Setup>= 4.0.102.4, which itself needsAWSSDK.Core>= 4.0.102.11, so Extensions apps resolve at least that Core version. - Projects that pin
AWSSDK.CoreorAWSSDK.Extensions.NETCore.Setupbelow these versions (for example inDirectory.Packages.props) getNU1605(package downgrade) on restore and must raise the pins. This showed up when upgrading three consumer repositories; no code changes were needed. - Extensions:
Microsoft.Extensions.Configuration.Abstractions,Microsoft.Extensions.Configuration.Binder,Microsoft.Extensions.Logging.Abstractions, andMicrosoft.Extensions.Options.ConfigurationExtensions>= 3.1.32 on all targets. - Extensions:
Microsoft.Extensions.DependencyInjection.Abstractions>= 3.1.32 onnetstandard2.0and >= 8.0.0 onnet10.0/net11.0. - Extensions:
Microsoft.Extensions.Options>= 8.0.2 onnet10.0/net11.0only.
Build, tests and CI
- The repository now builds with the .NET 11 SDK pinned in
global.json; test projects and CI covernet10.0andnet11.0. - Added the xUnit v3
LocalStack.Client.NativeAot.Testslane and thenative-aot-testsCI job, which publish withPublishAotand run native executables on Windows and Linux for both modern targets; Linux also runs live S3/SQS round trips against LocalStack 4.14.0. Cake skips this project. The same job packs both libraries and publishesLocalStack.Client.PackageConsumer.Testsfrom those packages with Native AOT on both operating systems. - With the .NET 11 SDK, .NET Framework (
net472) tests run on Windows only; Cake skips them elsewhere with a warning, and CI no longer installs Mono on macOS. - Refreshed build, test, and analyzer dependencies, including Cake.Frosting 6.3.0, NuGet.Versioning 7.9.0, SourceLink 10.0.402, Testcontainers and Testcontainers.LocalStack 4.16.0, and
System.Security.Cryptography.Pkcs10.0.13. Restore resolves Microsoft.Build.Tasks.Git 10.0.402 and SSH.NET 2026.0.0; repository-wideNuGetAuditMode=allremains enabled. - Test and sandbox consumers use centrally managed Microsoft.Extensions 10.0.13. Refreshed 112 AWS service SDK pins and retained six already-latest entries, with no catalog additions or removals. Core-only projects resolve 4.0.102.6; Extensions and service-package consumers resolve 4.0.102.11 under their dependency ranges.
- Cake no longer changes global Git
core.autocrlfon Unix;.gitattributesnormalizes line endings. The test task no longer deletes every Docker container; Testcontainers removes the containers each run starts. RemovedCake.Docker. - Functional tests now use LocalStack 4.14.0 and 2026.10.2 instead of 3.7.1 and 4.6.0. The 2026.10.2 tests require
LOCALSTACK_AUTH_TOKENand fail with a message naming it when absent;--filter "LocalStackAuth!=Required"or Cake's--skipAuthenticatedFunctionalTest trueexcludes them. CI passes the Actions secret to the Linux functional run and skips those tests with a warning on pull requests that cannot read it.
Packages: LocalStack.Client 3.0.0 · LocalStack.Client.Extensions 3.0.0