@lossless.org/nosqldb 10.3.0 → 10.5.0
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/dist_rust/rustdb_linux_amd64 +0 -0
- package/dist_rust/rustdb_linux_amd64.tsrust-build.json +5 -5
- package/dist_rust/rustdb_linux_amd64_musl +0 -0
- package/dist_rust/rustdb_linux_amd64_musl.tsrust-build.json +5 -5
- package/dist_rust/rustdb_linux_arm64 +0 -0
- package/dist_rust/rustdb_linux_arm64.tsrust-build.json +5 -5
- package/dist_rust/rustdb_linux_arm64_musl +0 -0
- package/dist_rust/rustdb_linux_arm64_musl.tsrust-build.json +5 -5
- package/dist_rust/rustdb_macos_amd64 +0 -0
- package/dist_rust/rustdb_macos_amd64.tsrust-build.json +5 -5
- package/dist_rust/rustdb_macos_arm64 +0 -0
- package/dist_rust/rustdb_macos_arm64.tsrust-build.json +5 -5
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/package.json +2 -2
- package/readme.md +89 -5
- package/ts/00_commitinfo_data.ts +1 -1
|
Binary file
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "a2f4612af93f0ab25d3eb96a5b00757592425c4ff59077f80a9f8a11e9944c4a",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.5.0",
|
|
7
|
+
"gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "1.13.
|
|
9
|
+
"builtAt": "2026-09-22T16:54:01.963Z",
|
|
10
|
+
"tsrustVersion": "1.13.2",
|
|
11
11
|
"binary": "rustdb",
|
|
12
12
|
"target": "linux_amd64"
|
|
13
13
|
}
|
|
Binary file
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "8529bfaf78fdfce93d8c858abf4a4c8c57f7fb3cd2b2ecf3b2de818a6fbd64d7",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.5.0",
|
|
7
|
+
"gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "1.13.
|
|
9
|
+
"builtAt": "2026-09-22T16:54:02.755Z",
|
|
10
|
+
"tsrustVersion": "1.13.2",
|
|
11
11
|
"binary": "rustdb",
|
|
12
12
|
"target": "linux_amd64_musl"
|
|
13
13
|
}
|
|
Binary file
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "e0acfecaca84a85b9aa9883ac66ca9c61bfe57e07c4623b6727318be70a82574",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.5.0",
|
|
7
|
+
"gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "1.13.
|
|
9
|
+
"builtAt": "2026-09-22T16:54:02.361Z",
|
|
10
|
+
"tsrustVersion": "1.13.2",
|
|
11
11
|
"binary": "rustdb",
|
|
12
12
|
"target": "linux_arm64"
|
|
13
13
|
}
|
|
Binary file
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "70ccdb65bea25865b0b115917e46b568f92aff570a1563c1fd0b0a6d9c529844",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.5.0",
|
|
7
|
+
"gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "1.13.
|
|
9
|
+
"builtAt": "2026-09-22T16:54:03.157Z",
|
|
10
|
+
"tsrustVersion": "1.13.2",
|
|
11
11
|
"binary": "rustdb",
|
|
12
12
|
"target": "linux_arm64_musl"
|
|
13
13
|
}
|
|
Binary file
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "5c9f76a4d3cc2e6c251a46850d1decf6a931abd1dcadf3d4a4f845d5875d2b58",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.5.0",
|
|
7
|
+
"gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "1.13.
|
|
9
|
+
"builtAt": "2026-09-22T16:40:00.585Z",
|
|
10
|
+
"tsrustVersion": "1.13.2",
|
|
11
11
|
"binary": "rustdb",
|
|
12
12
|
"target": "macos_amd64"
|
|
13
13
|
}
|
|
Binary file
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "942950f7ecdbbbfbd361c2ffa5b55d2d90649874eeff3a3bb8e74c277eceeab6",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.5.0",
|
|
7
|
+
"gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "1.13.
|
|
9
|
+
"builtAt": "2026-09-22T16:40:01.298Z",
|
|
10
|
+
"tsrustVersion": "1.13.2",
|
|
11
11
|
"binary": "rustdb",
|
|
12
12
|
"target": "macos_arm64"
|
|
13
13
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@lossless.org/nosqldb',
|
|
6
|
-
version: '10.
|
|
6
|
+
version: '10.5.0',
|
|
7
7
|
description: 'A MongoDB-compatible embedded database server with wire protocol support, backed by a high-performance Rust engine.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHFIQUFxSDtDQUNuSSxDQUFBIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lossless.org/nosqldb",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.5.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A MongoDB-compatible embedded database server with wire protocol support, backed by a high-performance Rust engine.",
|
|
6
6
|
"exports": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"@design.estate/dees-element": "^2.2.4",
|
|
17
17
|
"@git.zone/tsbuild": "^4.5.0",
|
|
18
18
|
"@git.zone/tsbundle": "^2.13.0",
|
|
19
|
-
"@git.zone/tsrust": "^1.13.
|
|
19
|
+
"@git.zone/tsrust": "^1.13.2",
|
|
20
20
|
"@git.zone/tstest": "^6.1.1",
|
|
21
21
|
"@lossless.org/client": "0.1.1",
|
|
22
22
|
"@types/node": "26.5.1",
|
package/readme.md
CHANGED
|
@@ -1325,6 +1325,12 @@ await collection.findOneAndReplace({ _id: id }, { name: 'Replaced' }, { returnDo
|
|
|
1325
1325
|
{ $currentDate: { lastModified: true } }
|
|
1326
1326
|
```
|
|
1327
1327
|
|
|
1328
|
+
Aggregation-pipeline updates are supported wherever the MongoDB driver accepts
|
|
1329
|
+
them (`updateOne`, `updateMany`, `findOneAndUpdate`, and upserts): the update
|
|
1330
|
+
may be an array of `$addFields`, `$set`, `$project`, `$unset`, `$replaceRoot`
|
|
1331
|
+
or `$replaceWith` stages, and any other stage is refused by name. The pipeline
|
|
1332
|
+
must produce exactly one document and cannot change `_id`.
|
|
1333
|
+
|
|
1328
1334
|
### Aggregation Pipeline
|
|
1329
1335
|
|
|
1330
1336
|
```typescript
|
|
@@ -1339,6 +1345,12 @@ const results = await collection.aggregate([
|
|
|
1339
1345
|
|
|
1340
1346
|
**Supported stages:** `$match`, `$project`, `$group`, `$sort`, `$limit`, `$skip`, `$unwind`, `$lookup`, `$addFields`, `$count`, `$facet`, `$replaceRoot`, `$set`, `$unionWith`, `$out`, `$merge`
|
|
1341
1347
|
|
|
1348
|
+
**Supported expression operators:** `$eq`, `$and`, `$literal`, `$map`,
|
|
1349
|
+
`$objectToArray`, `$setEquals`, plus `$field` paths, `$$variable` references
|
|
1350
|
+
including `$$ROOT`, and documents or arrays of those. Every other operator is
|
|
1351
|
+
refused by name with `TypeMismatch` (code 14) before any document is read; the
|
|
1352
|
+
engine never treats an operator it cannot execute as a literal value.
|
|
1353
|
+
|
|
1342
1354
|
`$lookup` supports the equality form and a bounded correlated pipeline form with
|
|
1343
1355
|
`let`, an optional `$match` using `$expr`/`$and`/`$eq`, and an optional following
|
|
1344
1356
|
`$limit`. Correlated string equality predicates can use a full-key or subset
|
|
@@ -1358,6 +1370,19 @@ is what lets `countDocuments(filter)` run against collections larger than it.
|
|
|
1358
1370
|
|
|
1359
1371
|
**Group accumulators:** `$sum`, `$avg`, `$min`, `$max`, `$first`, `$last`, `$push`, `$addToSet`, `$count`
|
|
1360
1372
|
|
|
1373
|
+
`$group._id` accepts a literal (`null`, a number, a string), a `$field`
|
|
1374
|
+
reference, or a document of expressions: `{ _id: { owner: '$owner', repo:
|
|
1375
|
+
'$repo' } }` groups by the evaluated pair, one group per distinct composite
|
|
1376
|
+
key. Inside a composite `_id`, a member whose field is absent evaluates to
|
|
1377
|
+
`null` and stays part of the key, where MongoDB omits the member instead.
|
|
1378
|
+
Accumulator operands accept the same expression forms. A field reference
|
|
1379
|
+
resolves per document, and a missing field is not a value: `$sum`, `$avg`,
|
|
1380
|
+
`$min`, `$max`, `$push` and `$addToSet` skip it, while `$first` and `$last`
|
|
1381
|
+
record `null` for it. Every field beside `_id` must hold an accumulator
|
|
1382
|
+
document naming exactly one accumulator, such as `{ $sum: 1 }`, and an operator
|
|
1383
|
+
outside the two lists above is refused with `TypeMismatch` (code 14) when the
|
|
1384
|
+
stage is parsed.
|
|
1385
|
+
|
|
1361
1386
|
### Indexes
|
|
1362
1387
|
|
|
1363
1388
|
```typescript
|
|
@@ -1430,9 +1455,11 @@ Without a limit, exact counts continue to EOF. Hints, deadlines and empty-result
|
|
|
1430
1455
|
shapes remain supported; signed BSON count overflow and resource exhaustion
|
|
1431
1456
|
reject explicitly. Exact counts never substitute estimates, and transaction
|
|
1432
1457
|
counts retain the snapshot admission limits described below.
|
|
1433
|
-
Grouping accumulates one group at a time after an external sort
|
|
1434
|
-
|
|
1435
|
-
|
|
1458
|
+
Grouping accumulates one group at a time after an external sort over the group
|
|
1459
|
+
key; only keys with no field reference and no operator stream directly into a
|
|
1460
|
+
single group. Composite document keys sort and group like any other key. Group
|
|
1461
|
+
key and accumulator semantics follow the supported expression operators listed
|
|
1462
|
+
above; this does not add the complete MongoDB aggregation language.
|
|
1436
1463
|
Unwind retains one input while expanding arrays across batches. Lookup scans
|
|
1437
1464
|
bounded foreign pages or indexed candidates, then assembles one byte-bounded
|
|
1438
1465
|
result document. Unindexed joins can still require repeated foreign scans.
|
|
@@ -1625,7 +1652,7 @@ const names = await collection.distinct('name');
|
|
|
1625
1652
|
| **Indexes** | `createIndexes`, `dropIndexes`, `listIndexes` |
|
|
1626
1653
|
| **Sessions** | `startSession`, `endSessions`, `killSessions` |
|
|
1627
1654
|
| **Transactions** | `startTransaction`, `commitTransaction`, `abortTransaction` through driver sessions |
|
|
1628
|
-
| **Admin** | `ping`, `listDatabases`, `listCollections`, `drop`, `dropDatabase`, `create`, `serverStatus`, `dbStats`, `collStats`, `connectionStatus`, `renameCollection` |
|
|
1655
|
+
| **Admin** | `ping`, `buildInfo`/`buildinfo`, `listDatabases`, `listCollections`, `drop`, `dropDatabase`, `create`, `serverStatus`, `dbStats`, `collStats`, `connectionStatus`, `renameCollection` |
|
|
1629
1656
|
|
|
1630
1657
|
Advertises MongoDB wire protocol versions 0–21. The documented command surface is tested with the official `mongodb` Node.js driver version 7.5.x.
|
|
1631
1658
|
|
|
@@ -1659,6 +1686,63 @@ socket read. Large unread pipelines remain charged and are compacted only at
|
|
|
1659
1686
|
geometric utilization thresholds; the budget is an encoded-input bound rather
|
|
1660
1687
|
than a claim about exact allocator heap usage.
|
|
1661
1688
|
|
|
1689
|
+
### Identifying the Engine
|
|
1690
|
+
|
|
1691
|
+
NoSQLDB speaks the MongoDB wire protocol, so it must also state plainly what it
|
|
1692
|
+
is. Every `hello`, `ismaster` and `isMaster` reply carries a self-contained
|
|
1693
|
+
`nosqldb` document, and so does `buildInfo`/`buildinfo`:
|
|
1694
|
+
|
|
1695
|
+
```json
|
|
1696
|
+
{
|
|
1697
|
+
"product": "NoSQLDB",
|
|
1698
|
+
"vendor": "lossless.org",
|
|
1699
|
+
"version": "<the released package version>",
|
|
1700
|
+
"storageEngine": "native",
|
|
1701
|
+
"mongodbCompatibility": "7.0.0",
|
|
1702
|
+
"minWireVersion": 0,
|
|
1703
|
+
"maxWireVersion": 21
|
|
1704
|
+
}
|
|
1705
|
+
```
|
|
1706
|
+
|
|
1707
|
+
`version` is the released `@lossless.org/nosqldb` version the running binary was
|
|
1708
|
+
built from: the Rust build compiles it in from the package manifest, so the
|
|
1709
|
+
answer belongs to the shipped artifact and cannot drift from it.
|
|
1710
|
+
`mongodbCompatibility` is the MongoDB release whose wire protocol and command
|
|
1711
|
+
semantics this engine implements — a compatibility statement, never a claim to
|
|
1712
|
+
be that build.
|
|
1713
|
+
|
|
1714
|
+
The handshake carries the identity unconditionally, before authentication, so a
|
|
1715
|
+
client can derive its backend from the connection it already has. `buildInfo` is
|
|
1716
|
+
available to **every authenticated connection**, including a `readWrite`-only
|
|
1717
|
+
tenant user and an allocation read grant; it requires no `clusterMonitor` role
|
|
1718
|
+
and creates no session state. `buildInfo` answers from build metadata alone and
|
|
1719
|
+
therefore still answers on a fenced or closed runtime, while `hello` fails
|
|
1720
|
+
closed. It answers in MongoDB's shape so existing tooling keeps working:
|
|
1721
|
+
|
|
1722
|
+
```json
|
|
1723
|
+
{
|
|
1724
|
+
"version": "7.0.0",
|
|
1725
|
+
"versionArray": [7, 0, 0, 0],
|
|
1726
|
+
"gitVersion": "<source commit, or \"unknown\" when the build had no Git metadata>",
|
|
1727
|
+
"modules": [],
|
|
1728
|
+
"javascriptEngine": "none",
|
|
1729
|
+
"bits": 64,
|
|
1730
|
+
"debug": false,
|
|
1731
|
+
"maxBsonObjectSize": 16777216,
|
|
1732
|
+
"storageEngines": ["native"],
|
|
1733
|
+
"nosqldb": { "...": "the identity above" },
|
|
1734
|
+
"ok": 1
|
|
1735
|
+
}
|
|
1736
|
+
```
|
|
1737
|
+
|
|
1738
|
+
`buildInfo.version` states the implemented compatibility level, exactly like
|
|
1739
|
+
`serverStatus.version`; the engine's own version is in `nosqldb.version`. A
|
|
1740
|
+
commit is never fabricated: `gitVersion` is either the exact source commit of
|
|
1741
|
+
the build or the literal `unknown`. `serverStatus` keeps every field it already
|
|
1742
|
+
reported, including `version` and `process: "rustdb"`, and now reports the same
|
|
1743
|
+
`nosqldb` identity beside them — but it remains a `clusterMonitor` command, so
|
|
1744
|
+
least-privilege connections use `hello` or `buildInfo`.
|
|
1745
|
+
|
|
1662
1746
|
### Read and Write Concerns and Wire Deadlines
|
|
1663
1747
|
|
|
1664
1748
|
NoSQLDB serves every database from exactly one voting node and states its
|
|
@@ -1715,7 +1799,7 @@ replication.
|
|
|
1715
1799
|
### Unsupported Administrative Commands
|
|
1716
1800
|
|
|
1717
1801
|
NoSQLDB returns `CommandNotFound` (code 59) for the wire commands `validate`,
|
|
1718
|
-
legacy `authenticate`, `
|
|
1802
|
+
legacy `authenticate`, `hostInfo`,
|
|
1719
1803
|
`whatsmyuri`, `getLog`, `getCmdLineOpts`, `getParameter`, `setFreeMonitoring`,
|
|
1720
1804
|
`currentOp`, `killOp`, `top`, `profile`, `compact`, `reIndex`, `fsync`, and
|
|
1721
1805
|
`connPoolSync`. These commands previously had placeholder success responses but
|
package/ts/00_commitinfo_data.ts
CHANGED