Skip to content

andrestubbe/FastCore

Repository files navigation

FastCore v0.1.0 [ALPHA] — Native Library Loader & JNI Utilities for Java

Status License: MIT Java Platform JitPack

⚡ The ultra-minimal foundation powering the entire FastJava ecosystem.

FastCore provides the mandatory native library extraction and loading engine for the FastJava ecosystem. It ensures that bundled DLLs are safely deployed and loaded across different environments with zero overhead.

FastFileIndex Showcase


Table of Contents


// Quick Start — Loading a native library

import fastcore.FastCore;

public class MyNativeApp {
    static {
        // Automatically extracts and loads fastnative.dll from resources
        FastCore.loadLibrary("fastnative");
    }
}

Key Features

  • 🚀 Smart Extraction — Automatically handles temporary file deployment for JNI DLLs.
  • ⚡ Zero Overhead — Minimalist design focused on JVM startup acceleration.
  • 📦 Ecosystem Base — Required dependency for all FastJava modules.

Performance

FastCore is designed to be the fastest way to bridge Java and Native code during the initialization phase.

Operation FastCore Standard System.load Benefit
Library Extraction < 5 ms N/A (Manual) Automated
JNI Mapping Instant Instant Stable

Installation

Option 1: Maven (Recommended)

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>
   <dependency>
       <groupId>com.github.andrestubbe</groupId>
       <artifactId>fastcore</artifactId>
       <version>v0.1.0</version>
   </dependency>
</dependencies>

Option 2: Gradle (via JitPack)

repositories {
    maven { url 'https://jitpack.io' }
}
dependencies {
    implementation 'com.github.andrestubbe:fastcore:v0.1.0'
}

Option 3: Direct Download (No Build Tool)

Download the latest JARs directly to add them to your classpath:

  1. 📦 fastcore-v0.1.0.jar ( The Core Library)

API Reference

Method Description
void loadLibrary(String name) Extracts and loads a native library from the JAR resources.

Documentation

  • COMPILE.md: Full compilation guide (MSVC C++17 build chain + JNI Setup).
  • REFERENCE.md: Full API descriptions, border configurations, and codepoint index.
  • PHILOSOPHIE.md: The engineering rationale for zero-allocation performance.
  • ROADMAP.md: Future milestones and planned features.

Platform Support

Platform Status
Windows 10/11 ✅ Fully Supported
Linux 🚧 Planned
macOS 🚧 Planned

License

MIT License — See LICENSE file for details.


Related Projects


Part of the FastJava EcosystemMaking the JVM faster. Small package. Maximum speed. Zero bloat. 🚀📋

About

Unified JNI loader for Java native libraries. Cross-platform .dll/.so/.dylib loading for Windows, Linux, macOS.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors