Swiftpack.co - Package - lukaskubanek/OrderedDictionary


OrderedDictionary is a lightweight implementation of an ordered dictionary data structure in Swift.

The OrderedDictionary struct is a generic collection which combines the features of Dictionary and Array from the Swift standard library. Like Dictionary it stores key-value pairs with each key being unique and maps each key to an associated value. Like Array it stores those pairs sorted and accessible by a zero-based integer index.

OrderedDictionary provides similar APIs like collections from the Swift standard library. This includes accessing contents by keys or indices, inserting and removing elements, iterating, sorting etc.

Internally, OrderedDictionary uses a backing store composed of an instance of Dictionary for storing the key-value pairs and an instance of Array for managing the ordered keys. This means it is not the most performant implementation possible, but it gets its job done by reusing most functionality from the Swift standard library.


  • Swift 4.0+
  • Xcode 9.2+
  • iOS 8.0+ / macOS 10.10+


This library is distributed as a Swift framework and can be integrated into your project in following ways:


The easiest way is to use the package manager Carthage.

  1. Add github "lukaskubanek/OrderedDictionary" to your Cartfile.
  2. Run carthage bootstrap.
  3. Drag either the OrderedDictionary.xcodeproj or the OrderedDictionary.framework into your project/workspace and link your target against the OrderedDictionary.framework.
  4. Make sure the framework gets copied to your application bundle.
  5. Import the framework using import OrderedDictionary.

Submodule & Xcode Project

Another option is to use Git submodules and integrating the Xcode project OrderedDictionary.xcodeproj directly to your Xcode workspace.

Usage & Docs

For the usage of this library please refer to the example playground. For documentation please refer to the documentation comments.


The changelog is managed on the GitHub releases page.


Lukas Kubanek // lukaskubanek.com // @kubanekl


OrderedDictionary is provided under the MIT License.


Stars: 74
Help us keep the lights on


Used By

Total: 0


v2.0.0 - May 22, 2018

  • Support for Swift 4.0 is still maintained
  • OrderedDictionary now conditionally conforms to Equatable and Codable
  • Used custom types for keys and values collections
  • Simplified the OrderedDictionarySlice type

v1.1.0 - Mar 27, 2018

  • Improved methods for insertion checks (aka OrderedDictionary.canInsert(...))
  • Added an initializer from regular Dictionary
  • Added support for moving key-value pairs to a new index

v1.0.0 - Sep 25, 2017

This is the official release of OrderedDictionary which supports Xcode 9 and Swift 4. 🎉

v1.0.0-beta.3 - Aug 12, 2017

  • Supports Xcode 9 β5
  • Added initial conformance to Swift's Codable
  • Added two new initializers for instantiating an OrderedDictionary from a sequence of values
  • Exposed unorderedDictionary property
  • Removed migration code
  • Version 1.0.0 will be released when the final version of Swift 4 arrives

v1.0.0-beta.2 - Jul 18, 2017

This beta version supports Xcode 9 (β3) and Swift 4.