Skip to content

Vexil 3 Alpha 1

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 15 Jul 13:53
· 62 commits to refs/heads/main since this release
f70a47d

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 the FlagContainer 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.