feat(bindings): generate native platform adapters - #111
Merged
Merged
Conversation
- Select typed observation, conversion, command and collection mechanisms by affinity. - Preserve higher-scoring custom providers, cached selection and refresh behavior. - Keep generated value delivery typed and emit native support only when used. - Remove redundant analysis, pipeline dependencies and avoidable collection copies. - Cover platform contracts with tests and validated GcVerbose benchmarks on .NET 10/11 and NativeAOT. - Document native bindings and benefits for regular JIT applications.
- Preserve typed conversions with scheduler delivery from main. - Align generated snapshots and benchmark documentation.
glennawatson
enabled auto-merge (squash)
September 18, 2026 03:59
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Generate native platform bindings through separate affinity-based plugins.
Why
Generated bindings need ReactiveUI's platform behavior and custom-provider precedence.
Breaking changes
None.
How this was verified
Solution builds and tests exercise generated bindings, native contracts, custom-provider precedence and refresh.
Notes for the reviewer
Start with plugin selection and the custom-provider boundary.
Plugins, per-invocation emission,ObservationAffinityChecker, and typed conversion and collection-write helpers; generated snapshots and public API baselines are mechanical.Checklist