Swiftpack.co - Package - Bouke/HAP

Homekit Accessory Protocol, implemented in Swift

The goal of this package is to provide a complete implementation of the Homekit Accessory Protocol, enabling you to build your DIY accessories, and connect your non-HAP devices.

Build Status Maintainability Rating


  • Persistent configuration across reboots.
  • Homekit pairing by scanning QR code (shipped in iOS 11).
  • Speakers and Remote Control accessories (shipped in iOS 12 / macOS Mojave).
  • Television accessories (shipped in iOS 12.2 / macOS 10.14.3).
  • Extensibility through custom services and characteristics.
  • Runs on Linux / Raspbian (Raspberry Pi).


Remember that this is not a commercial product, but the result of free labor.

  • If you need help using this library, open an issue here on GitHub. The more detail the better!
  • If you found a bug, open an issue here on GitHub. The more detail the better!
  • If you want to contribute, submit a pull request.



This library was written by Bouke Haarsma and contributors.


Stars: 296


- 2020-01-27 21:38:17


  • HAP definitions from macOS Catalina.


  • Swift 5 required.
  • SwiftNIO upgraded to v2.
  • Logging through SwiftLog instead of Evergreen.

- 2019-08-31 09:10:18


  • Additional accessory and service types.
  • Support for Raspberry Pi / Raspbian Stretch.
  • Services / Characteristics are now generated from Apple's Homekit framework on macOS. This means that those definitions are more easily kept up-to-date. Contribution by Guy Brooker.
  • Television accessory support. Contribution by Guy Brooker.
  • Swift 5 support.


  • Network stack rewritten with SwiftNIO.
  • Naming of some service / characteristic / enum types.
  • Characteristics with read permission (Paired Read) require a value, no value is no longer valid.
  • Characteristic bounds no longer trap when out of bound values are set programmatically, but will clip the value instead. This resolves an issue where setting a value to the minimum value would trap in some situations.


  • Allow bridges with spaces in name.


  • Swift 4 support.

Swift 4 and more - 2017-11-19 19:07:11

  • Swift 4
  • Improved HAP specification conformity (notification coalescence, multiple status return codes)
  • Additional builtin accessory and service types
  • Resolved issue with pairings not being removed