I write everything in Kotlin. With Kotlin Multiplatform (KMP), one codebase runs on Android, iOS, desktop, and web: you share the logic, and every platform still gets native performance. I expect it to become the default way to build cross-platform apps.
The Kite libraries are written in pure Kotlin, and nearly all of them depend on nothing at all: no native code, no bundled binaries, no other library underneath. That keeps things predictable. The same code runs on every platform, so it behaves the same on every platform. And when something breaks, the bug is in the library itself, where I can fix it, not buried in a native dependency I have no control over.
You do not even need a KMP project to use them. The libraries are small, and a plain Swift or Objective-C iOS app can add one like any other framework.
| Library | Purpose | Release | Stars |
|---|---|---|---|
| KitePDF | TL;DR: Read, write, and display PDFs and EPUB books. What it does: Open a PDF, grab its text, edit it, or build a new one from scratch. Reads EPUB 2 and 3 too. Want to show pages on screen? A ready-made Compose viewer comes with it. |
||
| KiteCodec | TL;DR: Convert and edit video and audio files. What it does: Change format, resize, trim, crop, swap the codec, or drop the audio track. It is FFmpeg, except you call it from Kotlin instead of writing command lines. |
||
| KitePlayer | TL;DR: Play video and audio in your app. What it does: One player for every platform, behaving the same on all of them. Handles subtitles, live streams, and seeking. |
||
| KiteCore | TL;DR: The little helpers you rewrite in every project. What it does: Around 450 shortcuts for text, lists, dates, math, and coroutines. Plus the few things KMP is missing, like running work off the main thread the same way everywhere. |
||
| KiteQR | TL;DR: Scan and create QR codes and barcodes. What it does: Reads QR, Aztec, Data Matrix, PDF417, and the usual 1D barcodes out of an image. Creates them as PNG or SVG. Optional Compose UI included. |
||
| KiteImage | TL;DR: Load and save images without platform code. What it does: Opens PNG, JPEG, GIF, BMP, TIFF, JPEG 2000, and WebP into pixels you can use in shared code. Animated GIF and WebP work too. Plugs into Compose and Coil. |
||
| KiteArchive | TL;DR: Zip and unzip, on any platform. What it does: Read and write ZIP files, read TAR and older archive formats, and compress with gzip, LZ4, or Snappy. All from shared code. |
||
| Kite3D | TL;DR: 3D math, with three.js's API. What it does: Vectors, matrices, rotations, colors, and collision shapes. It draws nothing. It only does the math. |
Still being built. The source is public, but there is nothing to depend on yet.
| Library | Purpose |
|---|---|
| KiteAudio | TL;DR: Read, write, and tag audio files. What it does: Opens FLAC, WAV, AIFF, MP3, and Vorbis. Edit titles, artists, and artwork without touching the audio itself. |
| KiteTorrent | TL;DR: Download and seed torrents from shared code. What it does: Magnet links, peer discovery, encryption, and proxies. Nothing native to ship with your app. |
| Plugin | Purpose | Release | Stars |
|---|---|---|---|
| KiteSSOT | TL;DR: One place for your app name, version, and IDs. What it does: Set them once in your root Gradle file. Android and iOS both read from there, so they never fall out of sync. |
One codebase for Android and iOS, UI included, built with Compose Multiplatform.
| App | Purpose | Stars |
|---|---|---|
| Synkplay | Watch videos in sync with friends. Talks to the same rooms as the Syncplay desktop client. | |
| Pingy | Measure network latency with ping. | |
| DuelistLP | Track life points for two-player Yu-Gi-Oh games. |



