HAP-NodeJS is an implementation of the HomeKit Accessory Server as specified in the HomeKit Accessory Protocol (HAP), which is defined by Apple as part of the HomeKit Framework.
HAP-NodeJS is intended to be used as a library to easily create your own HomeKit Accessory on a Raspberry Pi,
Intel Edison, or any other platform that can run Node.js :)
If you are searching for a pluggable HomeKit bridge with over a thousand community driven plugins to bring HomeKit support to devices which do not support HomeKit out of the box, you may want to look at the homebridge project (which also uses HAP-NodeJS internally).
The implementation tries to follow the HAP specification as close as it can, but may differ in some cases. HAP-NodeJS is not an Apple certified HAP implementation, as this is only available to members of the MFi program.
You may start by having a look at our Wiki, especially have a look at the Important HomeKit Terminology used in this project.
There is also a pretty detailed guide on how to start developing with HAP-NodeJS. Or you may just have a look at our examples repository (or some of the old accessory examples).
The documentation (WIP) can be found here.
See the FAQ on how to enable debug output for HAP-NodeJS.
If you wish to do a contribution please read through our CONTRIBUTING guide.
Special thanks to Alex Skalozub, who reverse-engineeredthe server side HAP.
You can find his research here.
(Sadly, on Nov 4, Apple sent the DMCA request to Github to remove the research.)
There is a video demo running this project on Intel Edison.
If you are interested in HAP over BTLE, you might want to check this.