Skip to content

Add .NET 10 Native AOT support with static protocol metadata#75

Open
alsi-lawr wants to merge 3 commits into
ionide:mainfrom
getviset:work/viset039-feature-parity
Open

Add .NET 10 Native AOT support with static protocol metadata#75
alsi-lawr wants to merge 3 commits into
ionide:mainfrom
getviset:work/viset039-feature-parity

Conversation

@alsi-lawr

Copy link
Copy Markdown

Why this shape: Native AOT requires static metadata, not merely System.Text.Json

This adds a net10.0 Native AOT path while preserving the existing netstandard2.0 package and API. The modern asset uses generated JSON metadata, static RPC registration and the existing protocol model/routes; legacy Newtonsoft/JToken and dynamic APIs remain compatibility-only.

Evidence

  • 99/99 net8 and 1/1 net10 tests pass with zero warnings or errors.
  • Exact netstandard API compatibility; zero unapproved net10 drift.
  • All 72 routes retain their methods, order and static mappings.
  • Fresh and locked package restore, audit, pack, warning-free Native AOT publish and native execution pass.
  • The package contains both target assets and one implementation-only metadata assembly.

Trade-offs

  • Net10 intentionally omits legacy Newtonsoft/JToken APIs.
  • F# reflection-free compilation omits 365 generated structural ToString declarations while retaining intentional behaviour.
  • Static AOT support adds a generation step and support assembly (rather than hiding reflection behind suppressions), but avoids a custom transport or parallel protocol model.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant