Skip to content

Commit f49ccbb

Browse files
committed
docs(README): rewrite with bold positioning aligned with landing page
1 parent 1027c9d commit f49ccbb

1 file changed

Lines changed: 65 additions & 71 deletions

File tree

README.md

Lines changed: 65 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -11,46 +11,52 @@
1111
![Kotlin](https://img.shields.io/badge/Kotlin-2.0%2B-7F52FF?logo=kotlin&logoColor=white)
1212
![Platform](https://img.shields.io/badge/Platform-macOS%20%7C%20Windows%20%7C%20Linux-blue)
1313

14-
**The all-in-one toolkit for shipping JVM desktop applications.** Gradle plugin + runtime libraries + GitHub Actions — everything you need to go from `./gradlew run` to a signed, notarized, auto-updating app on every store.
14+
**Nucleus is the native desktop platform for the JVM.** Combined with Compose Multiplatform, it forms the most complete, most performant, and most deeply integrated desktop application stack ever built.
1515

16-
Compatible with any JVM application. Optimized for **Compose Desktop**.
16+
Java evolved into Kotlin. JavaScript evolved into TypeScript. Desktop development is going through the same shift: Electron was the pioneer. **Nucleus + Compose** is what comes next.
1717

1818
---
1919

20-
## Why Nucleus?
20+
## Why Nucleus
2121

22-
### Fast Cold Start
22+
**Native on every OS** — Your app doesn't emulate native — it *is* native. Window decorations, notifications, taskbar badges, dock menus, dark mode, accent colors, global hotkeys — everything behaves exactly as users expect on their OS.
2323

24-
- **JDK 25+ AOT Cache (Project Leyden)** — Eliminates the JVM cold start penalty with a single Gradle flag. No GraalVM, no native-image, no compromise — your app launches almost instantly
25-
- **ProGuard** — Built-in integration for release builds: obfuscation, optimization, and JAR joining
26-
- **Native library cleanup** — Automatically strips non-target-platform `.dll`/`.so`/`.dylib` from dependency JARs, reducing app size
24+
**Performance that rivals C++** — The HotSpot JVM is the most advanced JIT compiler ever built, delivering performance approaching C++ and Rust levels — with the simplicity of Kotlin. True parallelism with coroutines and virtual threads, not a single-threaded event loop.
2725

28-
### Distributable
26+
**Maximum lightness** — GraalVM native image compiles your entire app into a standalone binary. ~0.5s cold start, 100–150 MB RAM, tiny bundle. Compare that to 500 MB–1.5 GB for a typical Electron app.
2927

30-
- **17 packaging formats** — DMG, PKG, NSIS, MSI, AppX, Portable, DEB, RPM, AppImage, Snap, Flatpak, ZIP, TAR, 7z, and more
31-
- **Store-ready outputs** — Sandboxed PKG for the Mac App Store, AppX for the Microsoft Store, Snap for Snapcraft, Flatpak for Flathub — with automatic sandboxing pipelines
32-
- **Code signing & notarization** — macOS (Developer ID, notarization, App Store), Windows (PFX, Azure Trusted Signing)
33-
- **Auto-update** — Runtime library with SHA-512 verification, download progress, and platform-specific silent installation. Supports GitHub Releases and S3
34-
### Native
28+
**The most advanced desktop UI** — Compose Multiplatform with Skia GPU rendering, reactive state, and shared code across platforms. No frontend/backend split — your UI calls your logic directly. On top sits [Jewel](https://github.com/JetBrains/jewel), the desktop UI framework behind JetBrains IDEs.
3529

36-
- **Decorated windows** — Draw anything in the title bar (icons, text, gradients) while keeping native window controls. Fork of [Jewel](https://github.com/JetBrains/intellij-community/tree/master/platform/jewel)'s decorated window, without any Jewel dependency, with full Linux rework (GNOME Adwaita, KDE Breeze) and added `DecoratedDialog` support
37-
- **Reactive dark mode** — OS-level theme listener via JNI that triggers Compose recomposition instantly. Unlike Compose's built-in `isSystemInDarkTheme()` which reads once and never updates
38-
- **Platform detection** — Runtime APIs for OS, desktop environment (GNOME/KDE/XFCE/...), executable type (18 formats), and AOT mode
39-
- **Single instance & deep links** — File-lock-based single instance enforcement with deep link forwarding between instances
40-
- **Deep links & file associations** — Cross-platform protocol handlers and file type registration in one DSL block
41-
- **System info** — CPU, memory, disks, GPU (NVIDIA/AMD/Intel), temperature sensors, network, processes, and hardware identifiers — all via JNI native bridges on each platform
30+
---
4231

43-
### CI/CD Ready
32+
## What Nucleus provides
4433

45-
| Action | Description |
46-
|--------|-------------|
47-
| `setup-nucleus` | Sets up JBR + all packaging tools on any runner (Linux, macOS, Windows) |
48-
| `build-macos-universal` | Merges arm64 + x64 into a universal binary with re-signing and notarization |
49-
| `build-windows-appxbundle` | Merges amd64 + arm64 AppX into a signed MSIX bundle |
50-
| `generate-update-yml` | Generates electron-builder-compatible update metadata with SHA-512 checksums |
51-
| `publish-release` | Creates/updates GitHub Releases and uploads all artifacts |
34+
### Ship everywhere
35+
36+
- **16 packaging formats** — DMG, PKG, NSIS, MSI, AppX, Portable, DEB, RPM, AppImage, Snap, Flatpak, ZIP, TAR, 7Z
37+
- **Store-ready** — Mac App Store, Microsoft Store, Snapcraft, Flathub
38+
- **Code signing & notarization** — Windows and macOS, built into the pipeline
39+
- **Auto-update** — Check, download, verify, install — all built-in
40+
- **Deep links & file associations** — Protocol handlers and file type registration
41+
42+
### Feel native
43+
44+
- **Decorated windows** — Custom title bar with native window controls on every OS
45+
- **Notifications** — Native APIs on macOS, Windows, and Linux
46+
- **Launchers** — Badges, progress bars, jump lists, dock menus, quicklists
47+
- **System integration** — Dark mode, accent colors, high contrast, energy management, global hotkeys, taskbar progress, system info
48+
49+
### Perform
50+
51+
- **AOT Cache** — Near-instant cold startup with a single Gradle flag
52+
- **GraalVM Native Image** — Standalone binary with automatic metadata resolution — zero manual config for most apps
53+
- **ProGuard** — Built-in release builds with optimization and obfuscation
54+
55+
### Go deeper
5256

53-
Full 6-runner matrix build (Ubuntu amd64/arm64, Windows amd64/arm64, macOS arm64/Intel) out of the box.
57+
- **[Native Access](https://nucleus.kdroidfilter.com/native-access/)** — Write Kotlin/Native, call it from the JVM. No C, no boilerplate.
58+
- **30+ runtime modules** — Intuitive Kotlin APIs for every OS integration
59+
- **CI/CD ready** — Reusable GitHub Actions, 6-runner matrix builds, universal macOS binaries, MSIX bundles
5460

5561
---
5662

@@ -79,63 +85,51 @@ nucleus.application {
7985

8086
---
8187

82-
## Runtime Libraries
83-
84-
Use them independently or together — each module is published to Maven Central.
85-
86-
| Module | Artifact | Description |
87-
|--------|----------|-------------|
88-
| **Core Runtime** | `nucleus.core-runtime` | Platform detection, single instance, deep links, executable type detection |
89-
| **AOT Runtime** | `nucleus.aot-runtime` | AOT cache mode detection (training / runtime / off) |
90-
| **Updater** | `nucleus.updater-runtime` | Auto-update engine with GitHub/S3 providers, progress tracking, SHA-512 verification |
91-
| **Dark Mode Detector** | `nucleus.darkmode-detector` | Reactive OS dark mode via JNI — macOS, Windows, Linux (D-Bus) |
92-
| **System Color** | `nucleus.system-color` | Reactive system accent color & high contrast detection via JNI |
93-
| **System Info** | `nucleus.system-info` | Cross-platform system information (CPU, memory, disks, GPU, temperature, network, processes) via JNI |
94-
| **Decorated Window** | `nucleus.decorated-window` | Custom title bar with native controls — design-system agnostic |
95-
| **Decorated Window Jewel** | `nucleus.decorated-window-jewel` | Jewel (IntelliJ theme) integration for decorated windows and dialogs |
96-
| **Decorated Window Material 2** | `nucleus.decorated-window-material2` | Material 2 integration for decorated windows and dialogs |
97-
| **Decorated Window Material 3** | `nucleus.decorated-window-material3` | Material 3 integration for decorated windows and dialogs |
98-
| **Freedesktop Icons** | `nucleus.freedesktop-icons` | Type-safe [freedesktop icon naming](https://specifications.freedesktop.org/icon-naming/latest/) constants |
99-
| **Notification Linux** | `nucleus.notification-linux` | Freedesktop Desktop Notifications API via JNI |
100-
| **Notification Windows** | `nucleus.notification-windows` | Windows Toast Notifications API via JNI (WinRT) |
101-
| **Notification macOS** | `nucleus.notification-macos` | macOS User Notifications API via JNI (Objective-C) |
102-
| **Launcher Windows** | `nucleus.launcher-windows` | Windows Launcher API — badge notifications & jump lists (ICustomDestinationList) via JNI |
103-
| **Launcher Linux** | `nucleus.launcher-linux` | Unity Launcher API — badge, progress, urgency, quicklist via JNI |
104-
| **Launcher macOS** | `nucleus.launcher-macos` | macOS Dock API — badge count & attention requests via JNI |
105-
| **Menu macOS** | `nucleus.menu-macos` | macOS native menu bar integration via JNI |
106-
| **Taskbar Progress** | `nucleus.taskbar-progress` | Cross-platform taskbar progress bar & attention requests |
107-
| **Global Hotkey** | `nucleus.global-hotkey` | System-wide keyboard shortcut registration via JNI |
108-
| **Energy Manager** | `nucleus.energy-manager` | Energy efficiency & screen-awake APIs |
109-
| **Native SSL** | `nucleus.native-ssl` | OS trust store integration for SSL/TLS |
110-
| **Native HTTP** | `nucleus.native-http` | HTTP client using OS-native SSL trust store |
111-
| **Linux HiDPI** | `nucleus.linux-hidpi` | Native HiDPI scale factor detection on Linux (JNI) |
112-
| **GraalVM Runtime** | `nucleus.graalvm-runtime` | Native-image bootstrap + font substitutions (includes linux-hidpi) |
88+
## Runtime Modules
11389

114-
---
115-
116-
## Sponsor: Automatic GraalVM Reflection Plugin
117-
118-
Nucleus already supports [GraalVM Native Image](https://nucleus.kdroidfilter.com/graalvm-native-image/) for instant startup and low memory usage — but configuring reflection metadata remains a major pain point.
119-
120-
**I'm looking for sponsors** to fund the development of an **automatic reflection resolution plugin** that would eliminate most of the manual configuration work. This would make native-image practical for large Compose Desktop applications while keeping full compatibility with the Java ecosystem.
90+
Each module is published independently to Maven Central — use them together or standalone.
12191

122-
If you or your company are interested, please reach out via [GitHub Issues](https://github.com/kdroidFilter/Nucleus/issues) or [GitHub Discussions](https://github.com/kdroidFilter/Nucleus/discussions). Read more about this in the [GraalVM Native Image docs](https://nucleus.kdroidfilter.com/graalvm-native-image/#future-automatic-reflection-resolution-plugin).
92+
| Module | Description |
93+
|--------|-------------|
94+
| `nucleus.core-runtime` | Platform detection, single instance, deep links, executable type |
95+
| `nucleus.aot-runtime` | AOT cache mode detection |
96+
| `nucleus.updater-runtime` | Auto-update engine with GitHub/S3, progress tracking, SHA-512 |
97+
| `nucleus.darkmode-detector` | Reactive OS dark mode detection |
98+
| `nucleus.system-color` | Reactive accent color & high contrast detection |
99+
| `nucleus.system-info` | CPU, memory, GPU (NVIDIA/AMD/Intel), temperature, network, processes |
100+
| `nucleus.decorated-window` | Custom title bar with native controls |
101+
| `nucleus.decorated-window-jewel` | Jewel (IntelliJ theme) integration |
102+
| `nucleus.decorated-window-material2` | Material 2 integration |
103+
| `nucleus.decorated-window-material3` | Material 3 integration |
104+
| `nucleus.notification-macos` | macOS User Notifications |
105+
| `nucleus.notification-windows` | Windows Toast Notifications |
106+
| `nucleus.notification-linux` | Freedesktop Desktop Notifications |
107+
| `nucleus.launcher-macos` | macOS Dock API — badge, menus |
108+
| `nucleus.launcher-windows` | Windows taskbar — badges, jump lists, overlay icons, thumbnail toolbar |
109+
| `nucleus.launcher-linux` | Unity Launcher — badge, progress, urgency, quicklist |
110+
| `nucleus.menu-macos` | Native macOS menu bar |
111+
| `nucleus.freedesktop-icons` | Type-safe freedesktop icon naming constants |
112+
| `nucleus.taskbar-progress` | Cross-platform taskbar progress bar & attention requests |
113+
| `nucleus.global-hotkey` | System-wide keyboard shortcuts |
114+
| `nucleus.energy-manager` | Energy efficiency & screen-awake APIs |
115+
| `nucleus.native-ssl` | OS trust store integration |
116+
| `nucleus.native-http` | HTTP client with native SSL |
117+
| `nucleus.linux-hidpi` | Native HiDPI scale detection on Linux |
118+
| `nucleus.graalvm-runtime` | Native-image bootstrap, font fixes, automatic resource inclusion |
123119

124120
---
125121

126122
## Requirements
127123

128124
| Requirement | Version | Note |
129125
|-------------|---------|------|
130-
| JDK | 17+ (25+ for AOT cache) | JBR recommended |
126+
| JDK | 17+ (25+ for AOT cache) | JBR 25 recommended |
131127
| Gradle | 8.0+ | |
132128
| Kotlin | 2.0+ | |
133129

134-
---
135-
136130
## Documentation
137131

138-
Full documentation is available at **[nucleus.kdroidfilter.com](https://nucleus.kdroidfilter.com/)**.
132+
Full documentation at **[nucleus.kdroidfilter.com](https://nucleus.kdroidfilter.com/)**.
139133

140134
## License
141135

0 commit comments

Comments
 (0)