https://github.com/andrestubbe/fastjava
Ultra-fast native Java libraries — JNI-based performance for automation, screen capture, clipboard, hotkeys, and more
https://github.com/andrestubbe/fastjava
automation fastjava java jitpack maven native performance windows
Last synced: 11 days ago
JSON representation
Ultra-fast native Java libraries — JNI-based performance for automation, screen capture, clipboard, hotkeys, and more
- Host: GitHub
- URL: https://github.com/andrestubbe/fastjava
- Owner: andrestubbe
- License: mit
- Created: 2026-04-09T15:06:44.000Z (19 days ago)
- Default Branch: main
- Last Pushed: 2026-04-17T10:57:13.000Z (11 days ago)
- Last Synced: 2026-04-17T12:34:48.858Z (11 days ago)
- Topics: automation, fastjava, java, jitpack, maven, native, performance, windows
- Homepage:
- Size: 161 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FastJava — Native Java Performance Ecosystem [ALPHA]
> 🚧 **WORK IN PROGRESS** — APIs may change. Not production-ready yet.
**⚡ Ultra-fast native Java libraries — JNI-based performance for automation, screen capture, clipboard, hotkeys, graphics, and more**
[]()
[](https://www.java.com)
[]()
[](https://opensource.org/licenses/MIT)
[](https://jitpack.io/#andrestubbe)
[](https://github.com/andrestubbe/fastjava/stargazers)
**FastJava** is a collection of **high-performance JNI-based Java libraries** that use **pure C++ accelerators** to replace slow Java standard library components with native Windows API implementations. Built for **speed**, **reliability**, and **deterministic performance**.
> **Keywords:** fast java, java native performance, java jni performance, fastest java libraries, java native acceleration, java windows api, java gpu acceleration, java simd acceleration, java optimization, high performance java
---
## 📦 Libraries
| Library | Purpose | Performance | Status |
|---------|---------|-------------|--------|
| **[FastCore](https://github.com/andrestubbe/fastcore)** | JNI loader & platform abstraction | **Required by all FastJava** | ✅ Alpha v1.0.0 |
| **[FastClipboard](https://github.com/andrestubbe/fastclipboard)** | Native clipboard access | **2-3× faster** than AWT | ✅ Alpha v1.0 |
| **[FastRobot](https://github.com/andrestubbe/fastrobot)** | Screen capture & automation | **10-17× faster** than Robot | ✅ Alpha v2.1.0 |
| **[FastStylus](https://github.com/andrestubbe/faststylus)** | Native stylus/pen input (pressure, tilt, eraser) | **Impossible** in pure Java | ✅ Alpha v1.0.0 |
| **[FastHotkey](https://github.com/andrestubbe/fasthotkey)** | Global system-wide hotkeys | **Impossible** in pure Java | ✅ Alpha v1.1.0 |
| **[FastTheme](https://github.com/andrestubbe/fasttheme)** | Real-time Windows theme detection, Resolution & DPI monitoring | **Impossible** in pure Java | ✅ Alpha v1.2.0 |
| **[FastTouch](https://github.com/andrestubbe/fasttouch)** | Native multi-touch input | **Impossible** in pure Java | ✅ Alpha v1.1.0 |
| **[FastScreen](https://github.com/andrestubbe/fastscreen)** | Zero-copy screen capture | **500-2000 FPS** via DXGI | 🚧 Alpha |
| **[FastImage](https://github.com/andrestubbe/fastimage)** | SIMD image processing | **10-50× faster** than BufferedImage | 🚧 Alpha |
| **[FastImageView](https://github.com/andrestubbe/fastimageview)** | Fast pixel-perfect image display | **200ms startup** vs JFrame | 🚧 Alpha |
| **[FastIO](https://github.com/andrestubbe/fastio)** | Ultra-fast file I/O & parsing | **5-20× faster** than NIO | 🚧 Alpha |
| **[FastGraphics](https://github.com/andrestubbe/fastgraphics)** | GPU-accelerated 2D rendering | **600% faster** than Graphics2D | 🚧 Alpha |
| **[FastMath](https://github.com/andrestubbe/fastmath)** | SIMD + GPU accelerated math | **2–100× faster** | 🚧 Alpha |
---
## 📚 Module Map
**→ Complete overview of all 62 modules with explanations:** [MAP.md](./MAP.md)
A detailed map of all FastJava modules with:
- Why each module exists (Java problem → FastJava solution)
- Architecture layers from AI to Platform
- Dependency graph
- Roadmap 2026–2028
---
## 🎯 Philosophy
| Aspect | JNI (FastJava) | JNA | Java Alone |
|--------|---------------|-----|------------|
| **Approach** | Direct native calls | libffi wrapper | JVM only |
| **Global OS Integration** | ✅ Full Win32 API access | ✅ Full access | ❌ **Cannot** - sandboxed |
| **Latency** | Lowest | Higher (ffi overhead) | GC pauses |
| **Development** | C++ per platform | Pure Java interfaces | Pure Java only |
| **Deployment** | Bundle platform DLLs | Single JAR | Single JAR |
**Java alone cannot do:** global hotkeys, low-latency screen capture, reliable clipboard, hardware I/O, GPU math, or native input.
---
## 🌌 WHY, HOW, BECAUSE, THEREFORE
*(Origin Story — The Reason FastJava Exists)*
### 🌒 WHY — The Restlessness Before the First Module
It didn't begin with a plan.
It began with a restlessness.
Java was fast enough, but never truly fast.
Never as close to the system as you needed.
Never as direct, as raw, as honest as C or C++.
And yet:
You didn't want to switch languages.
You wanted to free the language.
You wanted to know how far Java could go
if you removed the chains of abstraction
and allowed it to touch the system directly.
---
### 🌕 HOW IT STARTED — The Moment Everything Shifted
It was a small experiment.
A cursor trick.
A window without window chrome.
A TilePane hack that refused to work.
But inside that failure was the **spark**.
Because to even attempt it, you had to open JNI.
And when you did, you suddenly saw a world Java was never meant to enter:
> raw handles → real pointers → real speed → real control → **real power**
It felt like opening a door that had always been there,
but no one had ever used.
---
### 🌖 BECAUSE — The Realization That Changed Everything
You saw that Java isn't slow.
It's simply too polite.
It never asks the operating system directly.
It never computes with full force.
It never uses the SIMD registers
that have been waiting for years
for someone to speak to them.
And you thought:
> "If nobody builds it, then I'll build it myself."
That's how FastRobot was born.
Then FastClipboard.
Then FastTheme.
Then FastMath.
Then FastJava.
Not as a framework.
Not as a library.
But as an **answer**.
An answer to the question:
> "How fast can Java really become if you let it?"
---
### 🌑 THEREFORE — The Reason FastJava Exists
FastJava is not a project.
FastJava is a **stance**.
It is the refusal
to accept Java as "slow."
It is the proof
that JNI is not a hack
but a tool.
That native calls are not a risk
but an opportunity.
That Java is not just
an enterprise language,
but a **machine language**
when treated correctly.
FastJava exists
because you saw
that no one else
would ever fill this gap.
FastJava exists
because you didn't want to wait
until Oracle someday
maybe
possibly
delivered a solution.
FastJava exists
because you opened the door
everyone else ignored.
FastJava exists
because Java can be more —
and you prove it.