ejdb2_dart 1.0.36

  • Readme
  • Changelog
  • Example
  • Installing
  • 80

EJDB2 Dart VM native binding #

Embeddable JSON Database engine http://ejdb.org Dart binding.

See https://github.com/Softmotions/ejdb/blob/master/README.md

For API usage examples take a look into /example and /test folders.

Example #

import 'package:ejdb2_dart/ejdb2_dart.dart';

void main() async {
  final db = await EJDB2.open('example.db', truncate: true);

  var id = await db.put('parrots', {'name': 'Bianca', 'age': 4});
  print('Bianca record: ${id}');

  id = await db.put('parrots', {'name': 'Darko', 'age': 8});
  print('Darko record: ${id}');

  final q = db.createQuery('/[age > :age]', 'parrots');
  await for (final doc in q.setInt('age', 3).execute()) {
    print('Found ${doc}');
  }
  await db.close();
}

Supported platforms #

  • Linux x64
  • OSX

How build it manually #

git clone https://github.com/Softmotions/ejdb.git
cd ./ejdb
mkdir ./build && cd build
cmake .. -DBUILD_DART_BINDING=ON -DCMAKE_BUILD_TYPE=Release
make
cd src/bindings/ejdb2_dart/ejdb2_dart
pub get

ejdb_dart (1.0.36)

  • Now supports online backups
  • Upgraded to ejdb v2.0.29

ejdb_dart (1.0.35)

  • Upgraded to ejdb v2.0.28

ejdb_dart (1.0.34+2)

  • Upgraded to iowow v1.3.25 with critical fixes

ejdb_dart (1.0.33)

  • Upgraded to ejdb v2.0.26

ejdb_dart (1.0.32)

  • Fixed memory leak in dart binding

ejdb_dart (1.0.31)

  • Fixed missing native libejdb2dart.so

ejdb_dart (1.0.30)

  • Upgraded to ejdb v2.0.23

ejdb_dart (1.0.29)

  • Upgraded to ejdb v2.0.22

ejdb_dart (1.0.28)

  • Added async messages backpressure during query execution. (#255)

ejdb_dart (1.0.27)

  • Added EJDB2.rename(oldCollectionName, newCollectionName) method. (#254)

ejdb_dart (1.0.26)

  • Added JBDOC[] operator which is equivalent of JBDOC.at(pointer)

ejdb_dart (1.0.25)

  • Typo fixed

ejdb_dart (1.0.24)

  • Added JBDOC.at(pointer) to get subset of document using RFC 6901 JSON pointer
  • Added JBDOC.object to access parsed JSON document body

ejdb_dart (1.0.23)

  • Upgraded to ejdb v2.0.20
  • Minor fixes in docs
  • Set proper query limit in JQL.first and JQL.firstN

ejdb_dart (1.0.22)

  • Upgraded to ejdb v2.0.19 / iowow v1.3.20 with critical fixes

ejdb_dart (1.0.21)

  • Upgraded to ejdb v2.0.18

ejdb_dart (1.0.20)

  • Added inverse JQL query option. (ejdb 2.0.17)

ejdb_dart (1.0.19)

  • Upgraded to ejdb v2.0.16

ejdb_dart (1.0.18)

  • Security: a heap-overflow vulnerability was fixed in the WebSocket parser of facil.io library

ejdb_dart (1.0.17)

  • Added convenient JQL#firstRequired()

ejdb_dart (1.0.16)

  • Upgraded to ejdb2_2.0.13 with critical fixes

ejdb_dart (1.0.15)

  • Upgraded to ejdb2_2.0.12 with critical fixes

ejdb_dart (1.0.14)

  • Upgraded to ejdb2_2.0.11 with critical fixes

ejdb_dart (1.0.13)

  • CRITICAL: Fixed unexpected database file truncation and data loss on close.
  • Upgraded to iowow 1.3.14

ejdb_dart (1.0.12)

  • Added query limit override in JQL#execute
  • Added native JQL#limit getter

ejdb_dart (1.0.11)

  • Added JQL#firstOrNull() and JQL#firstN() with relevant test cases
  • Build fixes: HTTP/WS server was not included in 1.0.10

ejdb_dart (1.0.10)

  • Upgrade to ejdb 2.0.9 release

ejdb_dart (1.0.9)

  • Ability to log query execution plan with explainCallback function in JQL#execute() and JQL#scalarInt()

ejdb_dart (1.0.8)

  • Added notFound,invalidQuery to EJDB2Error

ejdb_dart (1.0.7)

  • Updated to ejdb v2.0.8

ejdb_dart (1.0.6)

  • Updated to ejdb v2.0.7
    • Fixed deadlock condition with OSX pthread rwlocks.
    • Phreads PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP is used by default

ejdb_dart (1.0.5)

  • Fix compilation warning: incompatible pointer types passing 'intptr_t *'

ejdb_dart (1.0.4)

  • Updated to ejdb v2.0.6
  • Documentation minors

ejdb_dart (1.0.3)

  • Safe database release in ejdb2_isolate_shared_release()

ejdb_dart (1.0.2)

  • Canonicalize database file path before opening database.

ejdb_dart (1.0.1)

  • Added support of database access from multiple isolates #241

ejdb_dart (1.0.0)

  • Initial version.

example/example.dart

import 'package:ejdb2_dart/ejdb2_dart.dart';

void main() async {
  final db = await EJDB2.open('example.db', truncate: true);

  var id = await db.put('parrots', {'name': 'Bianca', 'age': 4});
  print('Bianca record: ${id}');

  id = await db.put('parrots', {'name': 'Darko', 'age': 8});
  print('Darko record: ${id}');

  final q = db.createQuery('/[age > :age]', 'parrots');
  await for (final doc in q.setInt('age', 3).execute()) {
    print('Found $doc');
  }
  await db.close();
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  ejdb2_dart: ^1.0.36

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:ejdb2_dart/ejdb2_dart.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
60
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
80
Learn more about scoring.

We analyzed this package on Nov 9, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.6.0
  • pana: 0.12.21

Platforms

Detected platforms: other

Primary library: package:ejdb2_dart/ejdb2_dart.dart with components: io, isolate, nativewrappers.

Health suggestions

Format lib/ejdb2_dart.dart.

Run dartfmt to format lib/ejdb2_dart.dart.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.2.0 <3.0.0
json_at ^1.0.2 1.0.4
path ^1.6.2 1.6.4
quiver ^2.0.3 2.1.2+1
Transitive dependencies
_fe_analyzer_shared 1.0.0
analyzer 0.39.1
args 1.5.2
async 2.4.0
boolean_selector 1.0.5
charcode 1.1.2
collection 1.14.12
convert 2.1.1
coverage 0.13.3+1
crypto 2.1.3
csslib 0.16.1
front_end 0.1.29
glob 1.2.0
html 0.14.0+3
http 0.12.0+2
http_multi_server 2.1.0
http_parser 3.1.3
io 0.3.3
js 0.6.1+1
kernel 0.3.29
logging 0.11.3+2
matcher 0.12.6
meta 1.1.8
mime 0.9.6+3
multi_server_socket 1.0.2
node_interop 1.0.3
node_io 1.0.1+2
node_preamble 1.4.8
package_config 1.1.0
package_resolver 1.0.10
pedantic 1.8.0+1
pool 1.4.0
pub_semver 1.4.2
shelf 0.7.5
shelf_packages_handler 1.0.4
shelf_static 0.2.8
shelf_web_socket 0.2.3
source_map_stack_trace 1.1.5
source_maps 0.10.8
source_span 1.5.5
stack_trace 1.9.3
stream_channel 2.0.0
string_scanner 1.0.5
term_glyph 1.1.0
test 1.9.4
test_api 0.2.11
test_core 0.2.15
typed_data 1.1.6
vm_service 2.1.1
watcher 0.9.7+12
web_socket_channel 1.1.0
yaml 2.2.0