Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
160687 stories
·
33 followers

What's new in Swift: August 2026 Edition

1 Share

Welcome to “What’s new in Swift,” a curated digest of releases, videos, and discussions in the Swift project and community.

Here’s an update from guest contributor Simon Leeb on Swift’s progress as a language for web scenarios:

Hi, Simon here! I am the creator of the elementary-swift project, a collection of packages born from a simple wish: I want to build web UIs in Swift and ultimately help Swift become a first-class choice for the web.

This journey began after I started using Swift for backend services. The web frontend, however, still lived in a separate ecosystem, and I really wanted it to feel as ergonomic, safe, and efficient as the Swift I was writing everywhere else.

That led to the creation of Elementary: a modern and efficient HTML rendering library with a familiar declarative API, built for the web. It integrates easily with frameworks like Vapor and Hummingbird, and has become a practical option for server-rendered web UIs.

Around that same time, years of community work in the swift-wasm project made compiling Swift to WebAssembly increasingly viable, while Embedded Swift was taking its first experimental steps. This made me wonder: “How hard can it be to use Embedded Swift and build a state-driven web UI framework that produces tiny WebAssembly binaries?” Turns out: quite hard, actually!

But it was too late. Despite my better judgment, I was in the middle of creating what is now known as ElementaryUI. Where Elementary renders HTML on the server, ElementaryUI runs in the browser itself. You can watch my talk at Swift@FOSDEM 2026 if you want to know more about the why, what, and how.

To showcase where the project is heading, I recently posted a small Full-Stack Swift on Cloudflare demo. It features Swift in the browser communicating with a Swift backend on an edge worker through shared message types. I hope it gives people a concrete sense of how much the core technologies and the surrounding tooling have advanced.

ElementaryUI is still young, with plenty left to build. Visit elementary.codes to try it, share feedback, contribute, or sponsor its development. Let’s work together and make Swift a first-class choice for the web!

Now on to other news about Swift:

Videos to watch

  • Saleem Abdulrasool joined the Empower Apps podcast to discuss Swift on Windows, server-side Swift, SwiftWin32, Swift’s C++ interop, and how to get started.
  • Building memory-safe software? Write security-sensitive code in Swift covers how Swift guarantees safety across bounds, lifetimes, types, initialization, and concurrency, with primitives like Span and non-copyable types, plus how to audit unsafe code with strict memory safety and incrementally migrate existing C modules.
  • Two short videos about running Embedded Swift on Raspberry Pi Pico: a video on getting started on macOS called Let it blink! and Fun with traffic lights in 60 seconds.

Community highlights

New package releases

  • Write an interface once with SwiftTUI using a declarative, state-driven syntax, then ship it as a terminal app, as a native macOS or iOS app, as an Android app, or as a WASI build for the browser.
  • Tired of hand-writing RawRepresentable and LosslessStringConvertible conformances? lexic generates them for you via macros, and runs the same on Linux as on Apple platforms.
  • StructuredQueries, Point-Free’s SQLite query builder, now has fully type-safe support for JSON and JSONB columns, including a json_each table function, so nested data can be queried and updated by key path without leaving Swift’s type system.

Swift Evolution

The Swift project adds new language features through the Swift Evolution process. These are some of the proposals currently under review or recently accepted for a future Swift release.

Under active review:

  • ST-0029 Include additional issue metadata in event stream - Today, Swift Testing’s JSON event stream reports only bare-bones details when an issue occurs, making it hard to tell a thrown error apart from a manual Issue.record call. This proposal adds structured fields, including error, confirmationMiscount, exceededTimeLimit, and expression, so tools like Xcode and VS Code can show richer, more specific failure information.

Recently accepted:

  • SE-0544 Mutation and consumption in non-copyable type deinits - Non-copyable types that manage a resource, like a file handle or buffer, often need to run the same cleanup logic in their deinit that they use elsewhere, but until now self inside a deinit could only be borrowed, not mutated or consumed. This proposal lets a deinit mutate or consume its own stored properties directly, so existing cleanup methods can be reused instead of duplicated.
  • ST-0028 Revise Swift Testing’s Attachment/Encodable interop - Swift Testing lets you attach extra data, like a screenshot or JSON snapshot, to a test for inspecting after a failure, but attaching custom types previously required extra setup code and offered no way to choose the encoding format. This proposal adds new Attachment initializers that let you attach Encodable or NSSecureCoding values directly, picking the format or supplying your own encoder.

Recently accepted with modifications:

  • SE-0536 Package Registry Search - To use a package from a registry today, you already have to know its exact identifier, since there’s no standard way to discover packages within a registry the way other package ecosystems allow. This proposal adds an optional /search endpoint to the registry specification and a swift package-registry search subcommand, letting you find packages by name, scope, author, and other criteria, with support for qualifiers like author:"Mona Lisa Octocat" and searches that span every configured registry at once.
  • SE-0516 Iterable - Looping over a collection in Swift traditionally means copying out one element at a time, which doesn’t work for newer types that can’t be copied, like Span and InlineArray. This proposal introduces Iterable, a new way to loop over data without copying, and was renamed from BorrowingSequence and given support for typed throws before acceptance.
  • ST-0026 TaskLocal test trait - Task-local values are like settings, such as a feature flag, that apply only within a single task. Overriding one in a test previously meant writing a custom trait from scratch, but this proposal adds a .taskLocal(_:_:) trait that does it in one line, like @Suite(.taskLocal(FeatureFlags.$isEnabled, true)).
Read the whole story
alvinashcraft
just a second ago
reply
Pennsylvania, USA
Share this story
Delete

Azure SDK Release (August 2026)

1 Share

Thank you for your interest in the new Azure SDKs! We release new features, improvements, and bug fixes every month. Subscribe to our Azure SDK Blog RSS Feed to get notified when a new release is available.

You can find links to packages, code, and docs on our Azure SDK Releases page.

To restore a complete release record, this roundup also includes 49 initial stable and beta releases that were publicly available from package registries in July but weren’t listed in the July post because several release-data updates hadn’t merged. Public package availability, rather than release-data pull request status, determines inclusion.

Release highlights

Document Translation 2.0.0

Document Translation added support for the 2026-03-01 service API, including translation of text embedded in images for batch and single-document requests, custom translation model deployments, and expanded image scan reporting. The Java and Python 2.0.0 releases include breaking changes, while the new JavaScript package replaces the REST-level client with modeled DocumentTranslationClient and SingleDocumentTranslationClient APIs.

Storage – Blobs 12.30.0-beta.1

Azure Storage preview releases across .NET, Java, JavaScript, Python, Go, and C++ added support for service version 2026-10-06. Blob libraries introduced Apache Arrow response support for listing operations, additional access-tier metadata, and responses that can include both MD5 and CRC64 hashes. File Share libraries added paged range-list APIs, and .NET Blob uploads now generate random block IDs to prevent collisions during concurrent uploads.

Azure AI Discovery 1.0.0

Azure AI Discovery reached its first stable release for Python and JavaScript. The libraries expose Workspace capabilities for conversations, investigations, tasks, and tools, plus Bookshelf knowledge-base lifecycle, indexing, and citation-aware search operations. The stable Python release also adds paged responses, storage mount protocol controls, and long-running cancellation while establishing a new compatibility baseline from the preview.

Initial stable releases

Initial beta releases

Release notes

The post Azure SDK Release (August 2026) appeared first on Azure SDK Blog.

Read the whole story
alvinashcraft
18 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

W3C opens 2026 community survey

1 Share

Following on the success of the surveys of the W3C community over the last few years, we are conducting the W3C 2026 Survey to get to know our community better, investigate needs, and understand how we can improve.

Further to the 2025 survey, we already implemented changes that W3C Members benefit from, such as quarterly onboarding calls and monthly newsletters, to name only a few.

This year's survey is being run through SurveyMonkey and should take about 8 minutes to complete. It is available to members as well as those who are part of the larger W3C community. Answers are anonymous.

The survey closes on 30 September 2026. We look forward to hearing from you!

Read the whole story
alvinashcraft
34 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

How we closed 1,500 GitHub issues in one month

1 Share
How the Next.js team used an agent to research old reports and work through the issue backlog.
Read the whole story
alvinashcraft
39 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

ESLint v10.10.0 released

1 Share

Highlights

The no-unexpected-multiline rule has been updated to check regular expression literals with d and v flags.

/* eslint no-unexpected-multiline: "error" */

// Unexpected newline between numerator and division operator
foo = bar
/regex/v.exec(baz).forEach(qux);
1
2
3
4
5

The following rules have also been updated to avoid incorrect or unexpected behavior in some edge cases:

Features

Bug Fixes

Documentation

Chores

Read the whole story
alvinashcraft
47 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Shiny Controls 1.3 — Word, Excel and PowerPoint in Your App. Free.

1 Share
Four Office editors, a free-form notebook, ribbons on everything, Find across all of them, presenting mode for decks, and a camera you call instead of a screen you build. All of it in the box, on .NET MAUI and Blazor, no WebViews.
Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories