Swift.org Blog Karoy Lorentey Apr 5, 2021

Swift Collections Library

Article Summary

Karoy Lorentey from Apple's Swift team just dropped three game-changing data structures that could make your Swift code faster and more reliable. Array and Dictionary aren't enough anymore.

Apple open-sourced Swift Collections, a new package designed to incubate production-grade data structures before they potentially join the Standard Library. The initial release includes three highly-requested types: Deque, OrderedSet, and OrderedDictionary, each solving specific performance bottlenecks that Array, Set, and Dictionary can't handle efficiently.

Key Takeaways

Critical Insight

Swift Collections provides three new data structures that fill critical performance gaps in the Standard Library, with rigorous benchmarking showing constant-time operations where Arrays would require linear time.

The package also serves a bigger purpose: it's Apple's proving ground for teaching ABI design and lowering the barrier for contributing to Swift's future.

About This Article

Problem

Swift programmers had limited options beyond Array, Set, and Dictionary. When they needed specialized data structures, they faced a tough choice between writing correct code and keeping performance acceptable while maintaining invariants.

Solution

Karoy Lorentey's team built Swift Collections as an incubation package. They used ABI-stable design patterns, combinatorial regression testing, and a detailed benchmarking module to ensure the implementations were production-ready before considering them for the Standard Library.

Impact

The package set strict requirements for contributions. Any new structure had to perform as well as existing options across all working set sizes, from single elements to tens of millions, and had to minimize memory overhead.