Roadmap
What shipped in Nucleus 2.0–2.2, the modules planned next, and features under consideration.
Nucleus 2.0 provides the runtime and packaging foundation. Later releases add OS-integration modules for capabilities that JVM desktop apps otherwise reach through JavaScript or hand-written native code. This page lists what has shipped, what is planned, and what is still speculative.
Shipped in 2.0
nucleusApplication { }unified entry point — single-instance, deep links, AOT, GraalVM init, AutoLaunch priming, Windows AUMID — all automatic.- Tao backend — Wayland-native, multi-touch, pen pressure + tilt, native popups, embedded
NativeView, drag-and-drop with diagnostics. - 18 packaging formats from one Gradle DSL.
updater-runtime— electron-builder-compatible auto-update, channels, post-update detection.- GraalVM Native Image — end-to-end packaging pipeline (DMG, NSIS, DEB), static bytecode reflection analyzer, per-library reachability metadata.
- macOS Liquid Glass on SDK 26 —
vtoolpatching means any JDK works. - 40+ runtime modules: notifications, system tray, global hotkeys, media controls, taskbar progress, energy manager, system info, scheduler, autolaunch, dark mode, system color, native SSL, native HTTP, filesystem watcher, decorated windows with four toolkits.
Shipped in 2.1
Tooling and native-image work, no new runtime modules:
- GraalVM Community Edition is the default toolchain (from 2.1.7) — auto-downloaded and cached; no redistribution-for-a-fee clause. Opt into Oracle GraalVM for PGO,
-O3, ML-inferred profiles, and advanced obfuscation. Only the deprecated AWT backend still needs a local BellSoft Liberica NIK install for AWT/Swing native-image support. - Compose Hot Reload — works out of the box. Apply the
org.jetbrains.compose.hot-reloadplugin and runhotRun; Nucleus resolves the entry point fromnucleus.application.mainClass. Supported on the AWT and Tao backends. - Profile-Guided Optimization — record a profile with
runWithPgoInstrument, commit it, and later full native builds apply it automatically. Oracle GraalVM only. - Smaller native images —
optimization = NativeImageOptimization.SIZE(-Os), type-safemarch, automatic executable stripping, desktop-appropriate max heap, and advanced obfuscation (Oracle). - CPU-portable AOT cache by default (metadata-only) with an explicit
aotCache { }block. CompressionLevel.Ultra— extra post-processing recompression (LZMA DMG,xz -9eDEB) for smaller installers.--enable-native-access=ALL-UNNAMEDin default JVM args and native images for JDK 24+ (JEP 472).
Shipped in 2.2
Window chrome, accessibility, and tooling parity:
- Window scaffold and chrome primitives —
WindowScaffoldwithTitleBarPlacement.Docked/Overlay,windowDragArea/noWindowDrag,WindowControls, macOSwindowGlassRegion, Windows 11WindowsBackdrop(Mica / Acrylic / MicaAlt),WindowBackground,WindowAppearance. See Window scaffold. - Full-window transparency on Tao —
DecoratedWindow(transparent = true)for ghost overlays (pair withundecorated). - AccessKit on Windows — Windows and Linux share the AccessKit accessibility path (UIA + AT-SPI).
- GraalVM task surface aligned with the JVM pipeline —
runGraalvmNative(quick-build),createGraalvmNativeDistributable,runGraalvmNativeDistributable,packageGraalvmNativeDistributionForCurrentOS. - Type-safe garbage collector selection —
GarbageCollectoron the JVM path andNativeImageGarbageCollectorfor native images. NucleusApplicationScopeimplements ComposeApplicationScope— libraries scoped to plainApplicationScoperesolve insidenucleusApplication { }.- Scheme-only deep links (
myapp:?query=…), consistent macOS.appbundle names, native GTK CSD shadow.
Coming next
Security and identity modules (still planned; not part of the 2.2.0 window/tooling release):
| Module | Description | macOS | Windows | Linux |
|---|---|---|---|---|
secure-storage | Hardware-backed secret storage for tokens, passwords, keys | Keychain | Credential Manager / DPAPI | Secret Service (libsecret) |
biometric-auth | Prompt for fingerprint / face authentication | LocalAuthentication (Touch ID / Face ID) | Windows Hello | fprintd via D-Bus / polkit |
OS-level events and IO:
| Module | Description | macOS | Windows | Linux |
|---|---|---|---|---|
share-sheet | OS share sheet (URL, file, text) | NSSharingService | Windows DataTransferManager | xdg-desktop-portal Share |
power-events | Sleep / wake / lock / unlock / screen-off / battery state | NSWorkspace notifications | WM_POWERBROADCAST / WTSRegisterSessionNotification | org.freedesktop.login1 D-Bus signals |
Under consideration
Speculative — no commitment, no ETA. Open an issue if you want one of these earlier:
| Module | Description | macOS | Windows | Linux |
|---|---|---|---|---|
clipboard | Rich clipboard — image, files, HTML, RTF — plus change watcher | NSPasteboard | OleGetClipboard / Clipboard History API | wl-clipboard / X11 selections |
screen-capture | Native screenshot / screen recording | CGDisplayCreateImage / ScreenCaptureKit | Windows Graphics Capture / DXGI | xdg-desktop-portal Screenshot |
Influence the order
Open an issue describing your use case, link a sample app that needs the module, or sponsor a specific platform's implementation. Native modules are bounded mostly by JNI bridge complexity per OS — the more people that need one, the sooner it ships.