In-process inference
Load open-weight GGUF models and generate text from Java without Python or a model server.
Open source / Java 25
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.
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.
Embedded similarity search with durable local state, metadata filtering, ANN indexes, and framework adapters — taking full advantage of the Java 25 Vector API.
↗ 02In-process small-language-model inference for Java 25, with pure Java, native FFM, and Apple backends. Rides on Vectors.
↗ 03Qualified, versioned model artifacts resolved through normal JVM dependency coordinates, with provenance and checksums against verified upstream weights.
↗An open agentic memory layer: working and long-term stores, retrieval orchestration, consolidation, and conflict resolution — framework-neutral at the core, with Spring AI, LangChain4j, and MCP surfaces.
·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.
Load open-weight GGUF models and generate text from Java without Python or a model server.
Search persistent vector collections without operating a separate vector-database service.
Use generation-based memory-mapped persistence locally or hydrate from S3-compatible object storage.
Choose Java, native, or platform backends from recorded capabilities and performance evidence.
Integrate with Spring AI and LangChain4j while retaining ownership of the underlying runtime.
Resolve model identities, versions, provenance, and checksums through familiar build coordinates.
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.
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 ↗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 ↗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.
A normalized, evidence-based code-quality score designed to act as a cheap canary in fast or autonomous development loops.
Goal-oriented planning for agents using deterministic A* search, optional constraint optimization, and automatic replanning on failure.
View project ↗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 ↗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