Skip to content

Latest commit

 

History

History
163 lines (124 loc) · 6.74 KB

BASE.md

File metadata and controls

163 lines (124 loc) · 6.74 KB

EJDB 2.0

NOTE: Issues tracker is disabled. You are welcome to contribute, pull requests accepted.

license maintained

EJDB2 is an embeddable JSON database engine published under MIT license.

The Story of the IT-depression, birds and EJDB 2.0

  • C11 API
  • Single file database
  • Online backups support
  • 500K library size for Android
  • iOS / Android / React Native / Flutter integration
  • Simple but powerful query language (JQL) as well as support of the following standards:
  • Support of collection joins
  • Powered by IOWOW - The persistent key/value storage engine
  • HTTP REST/Websockets endpoints powered by IWNET and BearSSL.
  • JSON documents are stored in using fast and compact binn binary format


EJDB2 Presentation

EJDB2 platforms matrix

Linux macOS iOS Android Windows
C library ✔️ ✔️ ✔️ ✔️ ✔️1
NodeJS ✔️ ✔️ 3
Java ✔️ ✔️ ✔️ ✔️2
DartVM5 ✔️ ✔️2 3
Flutter5 ✔️ ✔️
React Native5 4 ✔️
Swift5 ✔️ ✔️ ✔️


[5] Bindings are unmaintained Contributors needed.
[1] No HTTP/Websocket support #257
[2] Binaries are not distributed with dart pub. You can build it manually
[3] Can be build, but needed a linkage with windows node/dart libs.
[4] Porting in progress #273

Native language bindings

Unofficial EJDB2 language bindings

Status

  • EJDB 2.0 core engine is well tested and used in various heavily loaded deployments
  • Tested on Linux, macOS and FreeBSD. Has limited Windows support
  • Old EJDB 1.x version can be found in separate ejdb_1.x branch. We are not maintaining ejdb 1.x.

Used by

Are you using EJDB? Let me know!

macOS

EJDB2 code ported and tested on High Sierra / Mojave / Catalina

EJDB2 Swift binding for MacOS, iOS and Linux. Swift binding is outdated at now. Looking for contributors.

brew install ejdb

Building from sources

cmake v3.24 or higher required

git clone --recurse-submodules [email protected]:Softmotions/ejdb.git

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make install

Linux

Building debian packages

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DPACKAGE_DEB=ON
make package

RPM based Linux distributions

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DPACKAGE_RPM=ON
make package

Windows

EJDB2 can be cross-compiled for windows

Note: HTTP/Websocket network API is disabled and not yet supported

Nodejs/Dart bindings not yet ported to Windows.

Cross-compilation Guide for Windows

IWSTART

IWSTART is an automatic CMake initial project generator for C projects based on iowow / iwnet / ejdb2 libs.

https://github.com/Softmotions/iwstart