Java devs — RagLeap is now native Java, on Maven Central!
No Python service needed anymore.
Links
Maven Central:
- ragleap-rag: https://central.sonatype.com/artifact/io.github.antonyrag/ragleap-rag
- ragleap-graph: https://central.sonatype.com/artifact/io.github.antonyrag/ragleap-graph
GitHub Releases:
- ragleap-rag: https://github.com/antonyrag/ragleap-core/releases/tag/ragleap-rag-java-v0.13.0
- ragleap-graph: https://github.com/antonyrag/ragleap-core/releases/tag/ragleap-graph-java-v0.1.0
Repo: https://github.com/antonyrag/ragleap-core
Quick Start
pom.xml:
io.github.antonyrag
ragleap-rag
0.13.0
io.github.antonyrag
ragleap-graph
0.1.0
Code:
java
var rag = new RagLeap(config);
// Ingest
rag.ingest(Path.of("report.pdf"));
rag.ingestText("RagLeap is safety-first RAG");
rag.ingestImage(Path.of("chart.png"));
// Ask
String ans = rag.ask("Summarize report with sources");
// Stream
rag.askStream("Explain", System.out::print);
// History
rag.getHistory();
rag.clearSession();
// Documents
rag.listDocuments();
rag.deleteDocument("doc-id");
Graph:
var graphConfig = new GraphConfig("http://localhost:7474", "neo4j", "password");
var graph = new GraphIndex(graphConfig, cypherRunner);
graph.upsertDocument(docId, text);
var docs = graph.findDocumentsByEntities(List.of("RagLeap", "Antony"));
var lineage = graph.findLineage("entity-id");
How we proved parity
Most ports test final output. We tested ordered behavior.
* 33 scenarios vs Python RagLeap 0.13.0 (d210dab)
* Fake embedder, vector store, generator, memory, hooks
* Full ordered log must match — calls, hooks, memory writes
* Mutation test — change behavior → test fails
**Results:** 502 tests — 0 failures.
**Graph:** 252 logic + 14 upsert + 47 query vs Python 0.9.0 (226fa4d). Cypher + params (int vs float!) must match.
**Live:** Tested against Postgres and Neo4j 5.26.29 Community by resolving jar from Maven Central in clean project.
**
## What's NOT ported (honest)
**
**ragleap-rag:** reranking, Redis cache, ingest_url, async variants. QueryRewrite is enum, streaming is callback. ingestBatch keeps metadata (Python drops it for file items).
**ragleap-graph:** LLM extraction, deduplication, GraphRetriever, backfills, migration, Postgres audit writer.
Check release notes for full list — no surprises.
**
## Roadmap
**
* reranking + Redis cache
* GraphRetriever (hybrid vector+graph)
* LLM entity extraction in Java
Contributions welcome — raise issue or PR on ragleap-core.
Try it: mvn dependency:get and let me know what breaks!
Top comments (0)