RagLeap
ragleap-vectorstores (Java) · release notes

ragleap-vectorstores (Java) v0.1.0

First release of the Java port of ragleap-vectorstores: extra vector backends for the VectorBackend interface of ragleap-rag, talking to each store directly (no vendor SDK).

Maven Central: io.github.antonyrag:ragleap-vectorstores:0.1.0 (Java 21; ragleap-rag 0.13.0 comes in as a dependency).

What is included

  • OpenSearch (k-NN search over its REST API).
  • Upstash Vector (REST API, with a local SQLite document registry).
  • Redis Stack / RediSearch (a small built-in RESP2 client, with a local SQLite document registry).

How it was verified

  • Recorded request parity against the real Python backends and their real client libraries (ragleap-vectorstores 0.6.0, tag ragleap-vectorstores-v0.6.0): OpenSearch 29 scenarios (61 requests), Upstash 42 scenarios (88 requests; 40 compared in the loop, one by a raw-socket test, one skipped because Python's own HTTP client rejects it), Redis 25 scenarios (75 commands, compared byte for byte). Deliberate breaks of the Java code, all caught by the tests: 10 (OpenSearch), 21 (Upstash), 18 (Redis).
  • Live checks, one round trip each against a throwaway container: Redis against Redis Stack 7.4.7 and OpenSearch against OpenSearch 3.9.0.
  • The published jar was smoke-tested from Maven Central in a clean project.

Not live-verified

  • Upstash (needs a cloud account); other versions of Redis Stack and OpenSearch; the OpenSearch security plugin, TLS and authentication; connection pooling and TLS for the built-in Redis client.

Not ported

  • Chroma and LanceDB (no practical pure-Java path).

Differences from Python

  • OpenSearch verifies TLS certificates by default; Upstash does not retry on connection failures (30 s timeout); Redis uses a built-in RESP2 client; failures surface as SQLException; a list or map filter value throws.

Python behavior copied on purpose

  • OpenSearch: a metadata filter on a key from the chunk's own metadata matches nothing (confirmed live); Redis: only document_id can be filtered, an existing index is reused without a dimension check; Upstash: deleting by the prefix <id>: can collide for ids that contain a colon.

PyPI counterpart: https://pypi.org/project/ragleap-vectorstores/0.6.0/

View on GitHub Package page All releases

Release notes mirrored from GitHub Releases.