This is a Kotlin Native wrapper for some (but not all) of the Linux libmraa C bindings: https://github.com/eclipse/mraa. Right now only GPIO, I2C, and UART are supported.
Because of the current undesirable threading/memory model of KN, callbacks to user code are not really supported, so I added queue-bound map* as a shared global object that stores inbound GPIO triggers. It's less than ideal, but it works for now until JetBrains comes out with a proper multi-threaded model for KN.
The only platform I've published for is LinuxX64. This could change in the future if there are requests from people running libmraa on other flavors of Linux.
*big thanks to https://github.com/touchlab/Stately