Open source / Java 25

AI belongs inside the JVM.

A practical in-process stack for retrieval and inference. No Python sidecar, no separate vector database, and no mystery between the application and its model.

4 core foundationsApache 2.0Java 25

Search, run, distribute, remember.

Four projects that compose into one locally owned AI runtime while remaining useful on their own. Vectors carries the retrieval layer, Models runs inference on top of it, ModelJARs makes weights a normal build dependency, and Memory turns the pair into something an agent can keep.

The application is the platform.

For many workloads, intelligence does not need to live behind another service boundary. Keeping retrieval and inference in process reduces operational surface area and makes the system easier to understand, test, package, and own.

LOCAL / 01

In-process inference

Load open-weight GGUF models and generate text from Java without Python or a model server.

LOCAL / 02

Embedded retrieval

Search persistent vector collections without operating a separate vector-database service.

LOCAL / 03

Durable storage

Use generation-based memory-mapped persistence locally or hydrate from S3-compatible object storage.

LOCAL / 04

Measured execution

Choose Java, native, or platform backends from recorded capabilities and performance evidence.

LOCAL / 05

Framework adapters

Integrate with Spring AI and LangChain4j while retaining ownership of the underlying runtime.

LOCAL / 06

Standard packaging

Resolve model identities, versions, provenance, and checksums through familiar build coordinates.

Knowing which small model to trust, and when.

A stack of small and vertical models is only useful if something can tell them apart. We are building a qualification standard for models — what a model is actually good for, measured rather than asserted — and a channel for publishing and distributing the ones that pass, so a router can choose between local platform intelligence, a custom small model, and a vertical specialist on evidence.

Corpus · StandardRouting

Model router corpus

The reference corpus and qualification criteria behind intelligent routing: how candidate models are scored, compared, and published so a router can select on measured capability instead of reputation.

View corpus ↗
JavaPanamaPerformance

Vectors on the Vector API

Pushing Java 25's Vector API as far as it goes, shimming to Rust only where it cannot reach — and reporting back where each shim was needed, so the Panama, FFM, and incubating APIs can be made better.

Documentation ↗

The rest of what we maintain.

Quality measurement, planning, deterministic replay, and approximate-membership data structures. Each came out of the research, each ships on its own terms, and each is useful on its own.

JavaKotlinPythonQuality

MFCQI

A normalized, evidence-based code-quality score designed to act as a cheap canary in fast or autonomous development loops.

PythonLangGraphPlanning

LangGOAP

Goal-oriented planning for agents using deterministic A* search, optional constraint optimization, and automatic replanning on failure.

View project ↗
RustData structures

pleat

Ribbon filters with pleated construction: a one-pass, cache-window reordering that builds space-optimal filters at close to Bloom-filter speed — roughly twice as fast as building in arrival order at scale. Companion implementation to the Ribbon Catches Bloom paper, with an upstream patch to RocksDB in preparation.

View project ↗
ToolingInference

LLMTivo

Recording and replaying model interactions so an evaluation, a regression test, or a demo can be made hermetic and repeatable rather than re-billed and re-rolled every run.

View project ↗

Build locally

Own the runtime. Inspect the stack.

Integrallis on GitHub ↗