mirror of
https://github.com/openharmony/third_party_ejdb.git
synced 2026-07-01 04:52:25 -04:00
86b1d0e7f3
Signed-off-by: stesen <stesen.ma@huawei.com> Change-Id: Idd85e9f93d8c2fb983958db2c79c1cfdb6f75275
6.2 KiB
6.2 KiB
EJDB 2.0
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.io - The persistent key/value storage engine
- Provides HTTP REST/Websockets network endpoints with help of facil.io
- JSON documents are stored in using fast and compact binn binary format
- Native language bindings
- Supported platforms
- JQL query language
- Indexes and performance
- Network API
- C API
- License
EJDB2 platforms matrix
| Linux | macOS | iOS | Android | Windows | |
|---|---|---|---|---|---|
| C library | ✔️ | ✔️ | ✔️ | ✔️ | ✔️1 |
| NodeJS | ✔️ | ✔️ | ❌3 | ||
| DartVM | ✔️ | ✔️2 | ❌3 | ||
| Flutter | ✔️ | ✔️ | |||
| React Native | ❌4 | ✔️ | |||
| Swift | ✔️ | ✔️ | ✔️ | ||
| Java | ✔️ | ✔️ | ✔️ | ✔️2 |
[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
- .Net
- Haskell
- Pharo
- Lua
Status
- EJDB 2.0 core engine is well tested and used in various heavily loaded deployments
- Tested on
LinuxandOSXplatforms. Limited Windows support - Old EJDB 1.x version can be found in separate ejdb_1.x branch. We are not maintaining ejdb 1.x.
Use cases
- Softmotions trading robots platform
- Gimme - a social toy tokens exchange mobile application. EJDB2 is used both on mobile and server sides.
Are you using EJDB? Let me know!
macOS / OSX
EJDB2 code ported and tested on High Sierra / Mojave / Catalina
See also EJDB2 Swift binding for OSX, iOS and Linux
brew install ejdb
or
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make install
Linux
Ubuntu/Debian
PPA repository
sudo add-apt-repository ppa:adamansky/ejdb2
sudo apt-get update
sudo apt-get install ejdb2
Building debian packages
cmake v3.15 or higher required
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 supported on Windows until port of http://facil.io library (#257)
Nodejs/Dart bindings not yet ported to Windows.