Nucleus
Ecosystem

Thirty years of mature libraries, native to your app

Nucleus apps run on the JVM, so any library on Maven Central is a Gradle dependency away; this page groups the common desktop choices by task.

Nucleus apps run on the JVM, so your code shares a process and a heap with any library published to Maven Central. There is no foreign-function bridge, no out-of-process daemon, and no per-platform native build to maintain: a library is one implementation line in build.gradle.kts. This page groups the libraries you are most likely to reach for on the desktop, by task.

AI and machine learning

Run inference locally, call remote models, or embed an LLM in the app.

  • DJL — Deep Java Library, multi-engine model serving.
  • ONNX Runtime Java — ONNX inference.
  • LangChain4j — agent, RAG, and tool-use scaffolding.
  • llama.cpp via FFM bindings — local LLM inference.
  • TensorFlow Java — the JVM port of TensorFlow.

Search and indexing

Lucene is the engine behind Elasticsearch, Solr, and OpenSearch. You can embed it directly instead of running a separate service.

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

Data and analytics

Columnar, in-process, and distributed engines are all available on the JVM.

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

Documents and parsing

Parse files that users drag into the app without shelling out to native binaries.

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

Imaging and vision

Image processing and computer vision run in the same process as your Compose UI.

  • BoofCV — computer vision in Java.
  • JavaCV — OpenCV bindings.
  • TwelveMonkeys — 40+ image formats.
  • Skia — GPU 2D rendering, already present in the Compose process.
  • FFmpeg via JavaCV — video.

Networking and RPC

HTTP clients and servers, RPC frameworks, and real-time media are all on the JVM.

  • Netty — asynchronous I/O.
  • Ktor — Kotlin HTTP client and server.
  • gRPC Java — RPC framework.
  • OkHttp — HTTP client.
  • WebRTC Java — real-time media.

For HTTP specifically, Nucleus provides the native-ssl and native-http modules, which wire the operating system's trust store into any client (java.net.http, OkHttp, Ktor). Corporate proxies and user-installed certificate authorities are picked up without extra configuration.

The rest of Maven Central

Every other artifact on Maven Central — roughly 500,000 libraries — is available on the same terms: one Gradle dependency line, the same as your test framework. No FFI bridge, no native compilation, and no per-OS maintainers.

Where Nucleus stops

Two common desktop needs have no Nucleus module, because existing libraries already cover them:

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

What's next

  • File dialogs — native open and save dialogs through FileKit.
  • Spell check — the system spell checker through PlatformSpellCheckerKt.
  • native-ssl — route HTTPS trust through the OS trust store.
  • native-http — use the OS-managed HTTP stack.