Libraries for scalable cross-platform development based on Kotlin Multiplatform. Useful abstractions and utilities to build tech better. Reaktor is the root library, and FlatInvoker focuses on using FlexBuffers to define foreign function interfaces.
The root library of Reaktor, reaktor-core
contains basic tools such as WeakReference
, atomic types, and the primary cross-platform abstraction Adapter
. An adapter is a class that exposes platform-specific functionality in a cross-platform way. Shared capabilities are defined in the Adapter
interface, and platform-specific capabilities are add-on interfaces. This design allows for coding to capabilities instead of platforms, resulting in more robust and flexible code.
FlatInvoker focuses on using FlexBuffers to perform remote procedure calls (RPC) and serialization.
Application Areas:
- React Native: Native modules for Android and iOS
- Flutter: Reuse same modules for Flutter
- Browser replacement for GRPC-Web (Phase 2)
- Server replacement for GRPC (Phase 2)
This library contains Kotlin serialization support for FlexBuffers. It utilizes the C++ implementation of FlexBuffers for serialization and deserialization.
This library is meant to be used with a downstream target. But right now not decoupled. React Native -> (react + ffi), Flutter -> (dart + ffi), Browser -> (js + ffi)
This component generates the glue code necessary to call Kotlin modules from TypeScript as if they were TypeScript modules.
Dependeasy
is a plugin designed to assist with multi-platform dependencies. It offers abstractions for setting up multiplatform projects quickly, provides CMake support for Kotlin/Native, and includes size benchmarking tools.
Use react-native-performance (by Shopify) for benchmarking.
For more details, refer to the documentation.