Primitive-first
Column-oriented in-memory storage, compact repeated values, and bitmap indexes where they earn their keep.
JemDB puts structured search inside your application. No extra cluster. No network hop. No tiny distributed-systems rodeo just to filter a catalogue.
JemDB handles the structured-search work that is painful to repeat with collection scans, without pretending to be a SQL database, a document store, or a replacement for every search server ever built.
Column-oriented in-memory storage, compact repeated values, and bitmap indexes where they earn their keep.
Exact values, alternatives, numeric and date ranges, bounded sorting, primary keys, limits, and geographic bounds.
Reusable typed cursors help produce JSON, CSV, map tiles, or whatever comes next without allocating a fresh object for every row.
Create a schema, load complete rows, build a typed query, and stream the result. JemDB stays close to the metal without making application code feel like archaeology.
var db = new JemDb( JemDbConfig.builder() .addStringField("id") .addBooleanField("available") .setPrimaryKey("id") .build()); var available = db.booleanField("available"); var query = Query.builder() .where(available, true) .build(); try (var rows = db.query(query)) { while (rows.next()) { /* ship it */ } }
JemDB did not begin as a whiteboard exercise. It grew from years spent building and running search for vacation rentals around the world—fast filters, map regions, many readers, and pricing that is far less simple than a single number.
Those hard-won lessons are now becoming a general engine for many kinds of structured search. Vacation-rental-specific ideas can remain private extensions. The reusable search machinery belongs in JemDB.
The basic approach is shaped by demanding, real-world vacation-rental searches.
Search, storage, queries, partitions, cursors, and calculated fields become a reusable Java core.
Public examples, demos, one-million-row datasets, and reproducible ArrayList and Elasticsearch comparisons arrive.
The core is tested and the first protected, free-to-use binary preview is being packaged for GitHub Releases.
The preview is not pretending to be finished. It is ready to be tried, measured, questioned, and improved—with the first public binary release coming soon.