<NME> README.md
<BEF> 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](https://travis-ci.org/Bouke/HAP.svg?branch=master)](https://travis-ci.org/Bouke/HAP)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Bouke_HAP&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=Bouke_HAP)

## Features

* 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).

## Communication

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.

## Contents

- [Getting Started](https://boukehaarsma.nl/HAP/getting-started.html)
- [Usage](https://boukehaarsma.nl/HAP/usage.html)
- [Create an Accessory](https://boukehaarsma.nl/HAP/create-an-accessory.html)
- [Design](https://boukehaarsma.nl/HAP/design.html)
- [Development](https://boukehaarsma.nl/HAP/development.html)

## Credits

This library was written by [Bouke Haarsma](https://github.com/Bouke)
and [contributors][0].

[0]: https://github.com/Bouke/HAP/graphs/contributors
[1]: https://swift-arm.com/install-swift/
}
```

## Linux

There is some support on Linux. It uses my own implementation of NetService
for multicast DNS (mDNS). However this implementation might be working for
some use-cases, it isn't production grade. Patches welcome. Another solution
would be to switch to using Avahi instead.

CommonCrypto has been replaced with the portable BlueCryptor; it uses CommonCrypto on Apple platforms and OpenSSL on Linux.

## Object-Oriented Design

A high-level overview of the objects involved are shown in the diagram below.

<MSG> Linux notes no longer relevant
<DFF> @@ -92,15 +92,6 @@ class PowerBankService: Service {
 }
 ```
 
-## Linux
-
-There is some support on Linux. It uses my own implementation of NetService
-for multicast DNS (mDNS). However this implementation might be working for
-some use-cases, it isn't production grade. Patches welcome. Another solution
-would be to switch to using Avahi instead.
-
-CommonCrypto has been replaced with the portable BlueCryptor; it uses CommonCrypto on Apple platforms and OpenSSL on Linux.
-
 ## Object-Oriented Design
 
 A high-level overview of the objects involved are shown in the diagram below.

{'addition_count': 0, 'commit_subject': 'Linux notes no longer relevant', 'deletion_count': 9, 'file_extension': '.md', 'lang': 'md', 'license': 'mit', 'repo_name': 'Bouke/HAP'}