Nucleus
Ecosystem

Trente ans de bibliothèques matures, natives à le app

IA, search, data, documents, imaging, réseau — un demi-million de bibliothèques JVM, toutes à un `implementation`.

Le code Kotlin tient sur la JVM — le runtime le plus professionnellement ingénieré jamais construit. IA, recherche, parsing de documents, calcul scientifique, RPC à grande échelle : chaque problème a déjà une bibliothèque endurcie sur Maven Central. Pas de FFI, pas de pont, pas de shim JS. Même process. Même mémoire. Déjà là.

TL;DR

  • L'écosystème de bibliothèques JVM est livré dans le binaire — pas d'IPC, pas de daemon hors process.
  • Les six piliers (IA/ML, search, data, documents, imaging, réseau) ont des options matures.
  • ~500 000 artefacts sur Maven Central — tout ce qu'on veut est à un implementation.
  • Deux modules Nucleus comblent des manques UX desktop courants (file dialog, spell check) en pointant sur les meilleures bibliothèques existantes.

IA & ML

Inférence locale, appels à des modèles distants, embarquer un LLM — la JVM a des bindings pour chaque framework qui compte.

  • DJL — Deep Java Library, serving multi-engine.
  • ONNX Runtime Java — inférence ONNX en prod.
  • LangChain4j — scaffolding agents/RAG/tool-use.
  • llama.cpp via bindings FFM — inférence LLM locale.
  • TensorFlow Java — le framework de Google, port JVM.

Search & indexation

Le stack de recherche le plus déployé au monde tourne sur la JVM. Lucene est le moteur derrière Elasticsearch, Solr, OpenSearch — embarque-le directement.

  • Apache Lucene — full-text embarqué.
  • OpenSearch client, Elasticsearch client — parle aux clusters.
  • Tantivy via JNI — moteur full-text Rust.
  • Quickwit — search cloud-native.

Data & analytique

Colonnaire, in-process, distribué — choisis le moteur. La JVM est là où le travail data sérieux se fait, et maintenant ça vit dans le binaire desktop.

  • Apache Arrow — format colonnaire in-memory.
  • DuckDB JDBC — OLAP embarqué.
  • Apache Parquet — format sur disque.
  • jOOQ — builder SQL type-safe.
  • Apache Spark — in-process pour data moyenne.

Documents & parsing

Parse tout ce que les utilisateurs glissent dans le app. PDF, Word, Excel, HTML brut, 1000+ formats — sans appeler de binaires natifs.

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

Imaging & vision

Traitement d'image et vision par ordinateur grade prod — utilisés par la NASA, la BioMed, la défense. Maintenant c'est une dép Gradle de le UI.

  • BoofCV — vision en Java.
  • JavaCV — bindings OpenCV.
  • TwelveMonkeys — 40+ formats d'image.
  • Skia — 2D GPU (déjà dans le process Compose).
  • FFmpeg via JavaCV — vidéo.

Réseau & RPC

Éprouvé à l'échelle de Twitter, Apple, LinkedIn. Netty gère des milliards de connexions quotidiennes — tourne aussi dans le app desktop.

  • Netty — I/O async à grande échelle.
  • Ktor — client/serveur HTTP Kotlin-natif.
  • gRPC Java — framework RPC.
  • OkHttp — client HTTP.
  • WebRTC Java — media temps réel.

Pour HTTP en particulier, Nucleus livre les variantes native-ssl et native-http qui branchent le trust store géré par l'OS dans n'importe quel client (java.net.http, OkHttp, Ktor). Proxies corporate et CA installées par l'utilisateur fonctionnent direct.

Le demi-million

Chaque autre artefact sur Maven Central — environ 500 000 bibliothèques éprouvées, toutes à un implementation. Pas de pont FFI, pas de compilation native, pas de mainteneurs par OS. Même ligne de dépendance Gradle que le framework de test.

Où Nucleus s'arrête

Deux besoins UX desktop courants n'ont pas de module Nucleus parce que l'écosystème couvre déjà :

Le plugin Gradle Nucleus livre des métadonnées de reachability GraalVM préchargées pour FileKit, donc ça marche sous Native Image sans config manuelle.