Nucleus
Ecosystem

Thirty years of mature libraries, native to your app

AI, search, data, documents, imaging, networking — half a million JVM libraries, all an `implementation` away.

Your Kotlin code sits on top of the JVM — the most professionally engineered runtime ever built. AI, search, document parsing, scientific computing, RPC at scale: every problem already has a hardened library on Maven Central. No FFI, no bridges, no JS shim. Same process. Same memory. Already there.

TL;DR

  • The JVM library ecosystem ships in your binary — no IPC, no out-of-process daemon.
  • All six pillars (AI/ML, search, data, documents, imaging, networking) have mature options.
  • ~500,000 artifacts on Maven Central — anything you'd reach for is one implementation away.
  • Two Nucleus modules wrap common desktop UX gaps (file dialog, spell check) by pointing at the best existing libraries.

AI & ML

Run inference locally, call remote models, embed an LLM in your app — the JVM has bindings for every framework that matters.

  • DJL — Deep Java Library, multi-engine model serving.
  • ONNX Runtime Java — production ONNX inference.
  • LangChain4j — agent/RAG/tool-use scaffolding.
  • llama.cpp via FFM bindings — local LLM inference.
  • TensorFlow Java — Google's framework, JVM port.

Search & indexing

The world's most deployed search stack runs on the JVM. Lucene is the engine behind Elasticsearch, Solr, OpenSearch — embed it directly.

  • Apache Lucene — embedded full-text search.
  • OpenSearch client, Elasticsearch client — talk to clusters.
  • Tantivy via JNI — Rust full-text engine.
  • Quickwit — cloud-native search.

Data & analytics

Columnar, in-process, distributed — pick your engine. The JVM is where serious data work happens, and now it ships in your desktop binary.

  • Apache Arrow — columnar in-memory format.
  • DuckDB JDBC — embedded OLAP.
  • Apache Parquet — file format on disk.
  • jOOQ — type-safe SQL builder.
  • Apache Spark — in-process for medium data.

Documents & parsing

Parse anything users drag into your app. PDFs, Word, Excel, raw HTML, 1000+ formats — without shelling out to native binaries.

  • Apache Tika — 1000+ formats.
  • Apache PDFBox — PDF read/write.
  • Apache POI — Office documents.
  • Jsoup — HTML parsing.
  • commonmark-java — Markdown.

Imaging & vision

Production-grade image processing and computer vision — used by NASA, BioMed, defense. Now it's a Gradle dep away from your UI.

  • BoofCV — computer vision in Java.
  • JavaCV — OpenCV bindings.
  • TwelveMonkeys — 40+ image formats.
  • Skia — GPU 2D (already in your Compose process).
  • FFmpeg via JavaCV — video.

Networking & RPC

Battle-tested at the scale of Twitter, Apple, LinkedIn. Netty handles billions of connections daily — runs in your desktop app too.

  • Netty — async I/O at scale.
  • Ktor — Kotlin-native HTTP client/server.
  • gRPC Java — RPC framework.
  • OkHttp — HTTP client.
  • WebRTC Java — real-time media.

For HTTP in particular, Nucleus ships native-ssl and native-http variants that wire the OS-managed trust store into any client (java.net.http, OkHttp, Ktor). Corporate proxies and user-installed CAs just work.

The half-million

Every other artifact on Maven Central — roughly 500,000 battle-tested libraries, all implementation away. No FFI bridges, no native compilation, no per-OS maintainers. Same Gradle dependency line as your test framework.

Where Nucleus draws the line

Two common desktop UX needs don't have a Nucleus module because the ecosystem already covers them:

The Nucleus Gradle plugin ships preloaded GraalVM reachability metadata for FileKit, so it works under Native Image with zero manual config.