Vexil 3 Alpha 1
Pre-release
Pre-release
github-actions
released this
15 Jul 13:53
·
62 commits
to refs/heads/main
since this release
This is an initial alpha release of Vexil 3.
Vexil 3 is a ground-up rewrite using Swift Macros and the Visitor Pattern to reduce usage of Mirror and memory usage as well as improving the overall performance.
Important
Vexillographer is not available in Alpha 1.
This is a preview release intended to allow early adopters to assess the impact to their codebase while we work on the remaining pieces in parallel. It has not been tested with production workloads yet (but all unit tests pass).
To learn more about Vexil 3 and what is changing see the Migrating Guide.
🚀 What's Changed
- A macro replacement for the
@Flag
property wrapper. - A macro replacement for the
@FlagGroup
property wrapper. - A
@FlagContainer
macro to replace theFlagContainer
protocol and generate conformance to the Visitor Pattern. - Use of AsyncSequence and AsyncStream under the hood to stream sets of changed flag keys.
- Lazy lookup of publisher flag values.
- Strict concurrency support.
- Dropped support for Flag Diagnostics. You can implement
FlagVisitor
and walk the hierarchy to collect this information yourself if required. - Dropped support for Swift <5.10, iOS <15, tvOS <15, macOS <12, watchOS <8.
📝 What's still to come before we go to beta
- Vexillographer is not yet available.
Swift 6 + Xcode 16 support.swift-testing migration.