Vexil 3 Alpha 1
Pre-release
Pre-release
·
105 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
@Flagproperty wrapper. - A macro replacement for the
@FlagGroupproperty wrapper. - A
@FlagContainermacro to replace theFlagContainerprotocol 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
FlagVisitorand 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.