⚡ Behavioral typing sensor and rhythm analysis layer for the FastJava ecosystem.
FastKeylogger transforms raw hardware events into high-level behavioral typing signatures. While standard loggers only capture characters, FastKeylogger captures the biological rhythm (dwell times, flight times) and cognitive patterns (correction behavior) of the user.
import fastkeylogger.FastKeylogger;
public class Example {
public static void main(String[] args) {
FastKeylogger logger = new FastKeylogger();
logger.addListener(event -> {
System.out.println("Typed: " + event.character() + " (Hold: " + event.durationMs() + "ms)");
});
logger.start();
}
}- 🚀 Text Reconstruction — Converts raw hardware scancodes into a logical character stream.
- ⏱️ Timing Signatures — Captures precise Dwell Time (hold duration) and Flight Time (latency).
- 🧹 Correction Awareness — Monitors backspaces and deletions to analyze cognitive load and error patterns.
- ⚡ Zero Polling — Purely event-driven logic based on
FastKeyboard.
Add the JitPack repository and the dependencies to your pom.xml:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<!-- FastKeylogger Library -->
<dependency>
<groupId>com.github.andrestubbe</groupId>
<artifactId>fastkeylogger</artifactId>
<version>v0.1.0</version>
</dependency>
<!-- FastCore (Required Native Loader) -->
<dependency>
<groupId>com.github.andrestubbe</groupId>
<artifactId>fastcore</artifactId>
<version>v0.1.0</version>
</dependency>
</dependencies>repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.andrestubbe:fastkeylogger:v0.1.0'
implementation 'com.github.andrestubbe:fastcore:v0.1.0'
}Download the latest JARs directly to add them to your classpath:
- 📦 * *fastkeylogger-v0.1.0.jar ** (The Core Library)
- ⚙️ fastcore-v0.1.0.jar ( The Mandatory Native Loader)
Important
All JARs must be in your classpath for the native JNI calls to function correctly.
| Method | Description |
|---|---|
void start() |
Starts the underlying keyboard listener. |
void stop() |
Stops the listener and releases resources. |
void addListener(TypingListener) |
Registers a new observer for processed events. |
| Platform | Status |
|---|---|
| Windows 10/11 (x64) | ✅ Fully Supported |
| Linux | 🚧 Planned |
| macOS | 🚧 Planned |
MIT License — See LICENSE file for details.
- FastCore — Native Library Loader & JNI Utilities for Java
- FastMouse — High-Performance Native Mouse API for Java
- FastHotkey — Low-Latency Global Hotkey API for Java
- FastKeyboard — Native Windows RawInput API for Java
- FastTouch — Native touchscreen input for Java
- FastStylus — Native Stylus/Pen Input for Java
Part of the FastJava Ecosystem — Making the JVM faster.
