Intro
Knee is a Kotlin compiler plugin and companion runtime tools that provides seamless communication between Kotlin/Native binaries and Kotlin/JVM, using a thin and efficient layer around the JNI interface.
With Knee, you can write idiomatic Kotlin/Native code, annotate it and then invoke it transparently from JVM as if they were running on the same environment.
For a brief overview of Knee's capabilities and to see sample code, we recommend checking the features page where you'll learn about all supported features such as:
- Ability to call functions, get or set properties across JNI
- Suspend functions with two-way cancellation, holding structured concurrency together
- Exception support, including custom exception types
- Built-in serialization of language primitives: numbers, strings, nullables,
Unit
,Nothing
- Built-in serialization of collection types: lists, sets, efficient arrays
- Serialization of enums, classes and objects
- Serialization of interfaces for two-way invocations
- Lambdas and generics support
- No-copy buffers, mapping
java.nio
buffers toCPointer
on native