EJDB2 is an embeddable JSON database engine with a simple XPath-like query language (JQL) for C applications.
EJDB2 is an embeddable JSON database engine implemented as a C library, allowing developers to store, query, and manage JSON documents directly within their applications. It solves the need for a lightweight, self-contained database with a powerful query language (JQL) for filtering, updating, and joining JSON data without requiring a separate database server.
C/C++ developers building embedded systems, IoT applications, or server-side services that require efficient, in-process JSON document storage with query capabilities.
Developers choose EJDB2 for its simplicity as a single-file embeddable database, its expressive JQL query language reminiscent of XPath, and its performance with configurable indexes—all while avoiding external dependencies.
:snowboarder: EJDB2 — Embeddable JSON Database engine C library. Simple XPath like query language (JQL).
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
EJDB2 is a single-file database engine that integrates directly into C/C++ applications without external dependencies, making deployment straightforward, as highlighted in its GitHub description.
The JQL query language supports complex filtering, projections, sorting, and collection joins with an XPath-like syntax, detailed in the README with extensive examples for real-world use cases.
Indexes on JSON fields optimize query performance for equality, range, and prefix matching, and the README provides heuristics for when to use indexes versus brute-force scans.
Includes HTTP REST and WebSocket endpoints with token-based authentication, enabling remote database access without additional server setup, as demonstrated in the network API section.
Indexes only benefit specific query operators (e.g., eq, in), and the README admits that in some cases, brute-force scans may perform better, adding complexity to query optimization.
The core API is in C, requiring low-level memory management and making it cumbersome for developers in high-level language ecosystems without existing bindings or expertise.
As a single-file embedded database, it lacks features for distributed data, high concurrency, or advanced transactions, which could limit use in large-scale production environments.