nedb-engine 2.2.28 → 2.2.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -11
- package/nedb.darwin-arm64.node +0 -0
- package/nedb.darwin-x64.node +0 -0
- package/nedb.linux-x64-gnu.node +0 -0
- package/nedb.win32-x64-msvc.node +0 -0
- package/nedbd-v2-darwin-arm64 +0 -0
- package/nedbd-v2-darwin-x64 +0 -0
- package/nedbd-v2-linux-x64 +0 -0
- package/nedbd-v2-win-x64.exe +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,8 +8,9 @@ Replay-protected · idempotent · relational · filterable · sortable · search
|
|
|
8
8
|
One Rust core → ships to **PyPI** and **npm** from a single source.
|
|
9
9
|
|
|
10
10
|
[](https://pypi.org/project/nedb-engine/)
|
|
11
|
+
[](https://crates.io/crates/nedb-engine)
|
|
11
12
|
[](https://www.npmjs.com/package/nedb-engine)
|
|
12
|
-
[](https://github.com/Eth-Interchained/nedb/actions)
|
|
13
14
|
[](https://pypi.org/project/nedb-engine-client/)
|
|
14
15
|
[](https://www.npmjs.com/package/nedb-engine-client)
|
|
15
16
|
|
|
@@ -19,11 +20,11 @@ One Rust core → ships to **PyPI** and **npm** from a single source.
|
|
|
19
20
|
|
|
20
21
|
---
|
|
21
22
|
|
|
22
|
-
## NEDB v2.
|
|
23
|
+
## NEDB v2.2.31 — Production Stable
|
|
23
24
|
|
|
24
|
-
**Current stable: 2.
|
|
25
|
+
**Current stable: 2.2.31** — Cross-platform native wheels shipping `nedbd-v2` binary inside `pip install nedb-engine`. Linux + Windows wheels built on GitHub Actions; macOS arm64 + x86_64 wheels built on Codemagic (M2 Mac Minis). All four platforms publish from one `v*` tag.
|
|
25
26
|
|
|
26
|
-
NEDB v2 replaces the append-only log (AOF) with a **content-addressed Merkle DAG**. Every document version is an immutable, BLAKE2b-verified object. Nothing is ever overwritten. As of **v2.
|
|
27
|
+
NEDB v2 replaces the append-only log (AOF) with a **content-addressed Merkle DAG**. Every document version is an immutable, BLAKE2b-verified object. Nothing is ever overwritten. As of **v2.2.31**, restarts after the first open are **O(1) warm starts** (driven by a `MANIFEST` of `seq` + Merkle head), the **cold scan is deferred** so the daemon accepts connections immediately, and a new **`GET /events` SSE endpoint** streams scan progress + per-write events live.
|
|
27
28
|
|
|
28
29
|
```bash
|
|
29
30
|
# Run the v2 DAG engine — ships inside pip install nedb-engine
|
|
@@ -32,9 +33,9 @@ nedbd --dag --data ./data
|
|
|
32
33
|
NEDBD_DAG=1 NEDB_TMK=<32-byte-hex> nedbd --data ./data
|
|
33
34
|
|
|
34
35
|
curl http://127.0.0.1:7070/health
|
|
35
|
-
# {"ok":true,"version":"2.
|
|
36
|
+
# {"ok":true,"version":"2.2.31","service":"nedbd","engine":"dag","startup_ready":true,"encrypted":true}
|
|
36
37
|
|
|
37
|
-
# Tail the live event stream (new in v2.
|
|
38
|
+
# Tail the live event stream (new in v2.2.31)
|
|
38
39
|
curl http://127.0.0.1:7070/events
|
|
39
40
|
# event: scan data: {"objects":730000,"of":1310703,"rate":21043,"eta_s":28}
|
|
40
41
|
# event: ready data: {"seq":1310703,"head":"b2:9c14e07a…"}
|
|
@@ -58,7 +59,7 @@ curl http://127.0.0.1:7070/events
|
|
|
58
59
|
|
|
59
60
|
**v1 AOF engine is still shipped and unchanged** — `nedbd` (no flag) runs v1.
|
|
60
61
|
|
|
61
|
-
**Production status:** [vision.interchained.org](https://vision.interchained.org) is live on v2.
|
|
62
|
+
**Production status:** [vision.interchained.org](https://vision.interchained.org) is live on v2.2.31 — **1,310,703 sequences** indexed in the Vision database, AES-256-GCM encrypted at rest, at block height **620,989**.
|
|
62
63
|
|
|
63
64
|
---
|
|
64
65
|
|
|
@@ -223,11 +224,11 @@ nedbd --dag --data ./data # v2 DAG engine (or NEDBD_DAG=1)
|
|
|
223
224
|
NEDBD_RESP2_PORT=6380 nedbd # also speak RESP2 (redis-cli compatible)
|
|
224
225
|
nedbd --log-level 2 # 0=errors 1=requests 2=deploy 3=verbose
|
|
225
226
|
|
|
226
|
-
# Live event stream (new in v2.
|
|
227
|
+
# Live event stream (new in v2.2.31) — SSE: scan progress, ready, per-write head
|
|
227
228
|
curl http://127.0.0.1:7070/events
|
|
228
229
|
```
|
|
229
230
|
|
|
230
|
-
### Startup modes (v2.
|
|
231
|
+
### Startup modes (v2.2.31)
|
|
231
232
|
|
|
232
233
|
- **Warm start** — every restart after the first open reads the `MANIFEST` file and restores `seq` + Merkle `head` in **O(1)**. No scan, no replay, independent of dataset size. Boots in milliseconds.
|
|
233
234
|
- **Cold start** — first open of an existing dataset spawns the integrity scan in a background thread *and accepts connections immediately*. Reads serve instantly from the content-addressed DAG; writes return `HTTP 503 startup in progress` until the `startup_ready` gate flips. Progress (objects, rate, ETA) streams over `GET /events`.
|
|
@@ -237,7 +238,7 @@ curl http://127.0.0.1:7070/events
|
|
|
237
238
|
| Variable | Default | Description |
|
|
238
239
|
|---|---|---|
|
|
239
240
|
| `NEDBD_DAG` | `0` | Set `1` to launch the v2 DAG engine (`nedbd-v2`). Same as `--dag`. |
|
|
240
|
-
| `NEDBD_HOST` | `127.0.0.1` | Bind address. **v2.
|
|
241
|
+
| `NEDBD_HOST` | `127.0.0.1` | Bind address. **v2.2.31** defaults to loopback (was `0.0.0.0`) — security hardening fix. Set explicitly to `0.0.0.0` to expose. |
|
|
241
242
|
| `NEDBD_PORT` | `7070` | HTTP bind port. |
|
|
242
243
|
| `NEDBD_TOKEN` | unset | Optional bearer token; required on every `/v1/*` request when set. |
|
|
243
244
|
| `NEDB_TMK` | unset | 32-byte hex AES-256-GCM at-rest encryption key. |
|
|
@@ -300,7 +301,7 @@ db.query('FROM policy AS OF 200 VALID AS OF "2024-02-15"')
|
|
|
300
301
|
|
|
301
302
|
## Performance
|
|
302
303
|
|
|
303
|
-
**v2 DAG Rust server (v2.
|
|
304
|
+
**v2 DAG Rust server (v2.2.31, Intel iMac — 10k writes / 100k reads / 30k objects, AES-256-GCM on):**
|
|
304
305
|
|
|
305
306
|
| Operation | Throughput | p50 | p99 |
|
|
306
307
|
|---|---|---|---|
|
package/nedb.darwin-arm64.node
CHANGED
|
Binary file
|
package/nedb.darwin-x64.node
CHANGED
|
Binary file
|
package/nedb.linux-x64-gnu.node
CHANGED
|
Binary file
|
package/nedb.win32-x64-msvc.node
CHANGED
|
Binary file
|
package/nedbd-v2-darwin-arm64
CHANGED
|
Binary file
|
package/nedbd-v2-darwin-x64
CHANGED
|
Binary file
|
package/nedbd-v2-linux-x64
CHANGED
|
Binary file
|
package/nedbd-v2-win-x64.exe
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nedb-engine",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.32",
|
|
4
4
|
"description": "NEDB — hash-chained, time-traveling, bi-temporal embedded database with Rust native core. SQL, Redis, MongoDB adapters. Causal Write Provenance. RESP2 wire protocol.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|