@lossless.org/nosqldb 10.7.2 → 10.7.3
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 +4 -4
- package/readme.md +65 -12
- 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": "bbfa10bcaa43f0beda9e67ce1046a99de9500a810d6d104056541d21f51680e3",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.7.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.3",
|
|
7
|
+
"gitCommit": "a347f08fa79361afadb09c24d6aff50baffcc0cf",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "
|
|
9
|
+
"builtAt": "2026-09-29T20:22:27.258Z",
|
|
10
|
+
"tsrustVersion": "2.0.0",
|
|
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": "e0edf0d9bf8937b71802fa115f3ecca7d5d438fa896e873349ac863962298a64",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.7.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.3",
|
|
7
|
+
"gitCommit": "a347f08fa79361afadb09c24d6aff50baffcc0cf",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "
|
|
9
|
+
"builtAt": "2026-09-29T20:22:28.300Z",
|
|
10
|
+
"tsrustVersion": "2.0.0",
|
|
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": "5fa2b96061374c185072cf2943aee1c54b13c8a6977e19ac7e1107c1ba684eb6",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.7.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.3",
|
|
7
|
+
"gitCommit": "a347f08fa79361afadb09c24d6aff50baffcc0cf",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "
|
|
9
|
+
"builtAt": "2026-09-29T20:22:27.716Z",
|
|
10
|
+
"tsrustVersion": "2.0.0",
|
|
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": "9c78460d631be6354936553d68ec1932fc9ed8b749763248fe42efa3c977bdb8",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.7.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.3",
|
|
7
|
+
"gitCommit": "a347f08fa79361afadb09c24d6aff50baffcc0cf",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "
|
|
9
|
+
"builtAt": "2026-09-29T20:22:28.746Z",
|
|
10
|
+
"tsrustVersion": "2.0.0",
|
|
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": "49f654b34560f807c5413cdde1cbc809c04f598e05c4df3a8441a95a26eed6b3",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.7.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.3",
|
|
7
|
+
"gitCommit": "a347f08fa79361afadb09c24d6aff50baffcc0cf",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "
|
|
9
|
+
"builtAt": "2026-09-29T20:05:09.004Z",
|
|
10
|
+
"tsrustVersion": "2.0.0",
|
|
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": "4f2a3863d25386e79e33b6eb53a28cccaadba5282cb94af643097c09c724438d",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.7.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.3",
|
|
7
|
+
"gitCommit": "a347f08fa79361afadb09c24d6aff50baffcc0cf",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
10
|
-
"tsrustVersion": "
|
|
9
|
+
"builtAt": "2026-09-29T20:05:09.730Z",
|
|
10
|
+
"tsrustVersion": "2.0.0",
|
|
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.7.
|
|
6
|
+
version: '10.7.3',
|
|
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.7.
|
|
3
|
+
"version": "10.7.3",
|
|
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": {
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
"@api.global/typedserver": "^8.4.6",
|
|
16
16
|
"@design.estate/dees-element": "^2.2.4",
|
|
17
17
|
"@git.zone/tsbuild": "^5.0.0",
|
|
18
|
-
"@git.zone/tsbundle": "^
|
|
19
|
-
"@git.zone/tsrust": "^
|
|
20
|
-
"@git.zone/tstest": "^6.3.
|
|
18
|
+
"@git.zone/tsbundle": "^3.1.0",
|
|
19
|
+
"@git.zone/tsrust": "^2.0.0",
|
|
20
|
+
"@git.zone/tstest": "^6.3.2",
|
|
21
21
|
"@lossless.org/client": "0.1.1",
|
|
22
22
|
"@types/node": "26.6.2",
|
|
23
23
|
"mongodb": "^7.5.0"
|
package/readme.md
CHANGED
|
@@ -592,13 +592,20 @@ unique index key wins, and the later writer is told at its own statement.
|
|
|
592
592
|
finish. Writes to other documents are not delayed. A multi-document write
|
|
593
593
|
outside a transaction stays all-or-nothing: it publishes nothing until it can
|
|
594
594
|
publish every document.
|
|
595
|
-
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
is not
|
|
600
|
-
|
|
601
|
-
|
|
595
|
+
- A transaction open for longer than 60 seconds is aborted, as by MongoDB's
|
|
596
|
+
transaction reaper: its staged writes are discarded and its cursors, write
|
|
597
|
+
claims, transaction capacity and database gates are released. The server
|
|
598
|
+
checks idle sessions once a second; a statement still executing when the
|
|
599
|
+
limit passes is not interrupted, and the transaction aborts when that
|
|
600
|
+
statement has finished (MongoDB instead interrupts that statement with
|
|
601
|
+
`TransactionExceededLifetimeLimitSeconds` (290)). Its later statements, `commitTransaction` and
|
|
602
|
+
`abortTransaction` report `NoSuchTransaction` (251); statements and
|
|
603
|
+
`commitTransaction` carry `TransientTransactionError`, so `withTransaction`
|
|
604
|
+
retries from the start. Before that abort, the next writer that needs one of
|
|
605
|
+
its documents aborts it too rather than wait. The limit is fixed at
|
|
606
|
+
MongoDB's default `transactionLifetimeLimitSeconds` and is not configurable.
|
|
607
|
+
Ending or expiring the session, and stopping the server, release a
|
|
608
|
+
transaction's writes as well.
|
|
602
609
|
- TTL expiry is not a contending writer. It leaves out the documents an open
|
|
603
610
|
transaction has written, deletes the other expired documents of the index
|
|
604
611
|
and moves past the held ones. A later pass over the index expires those
|
|
@@ -1545,7 +1552,12 @@ NoSQLDB supports ascending and descending index keys with `name`, `unique`,
|
|
|
1545
1552
|
`sparse`, `partialFilterExpression` and `expireAfterSeconds` options. It
|
|
1546
1553
|
accepts `background` as a validated no-op and index version `v: 2`.
|
|
1547
1554
|
Unsupported options, including `collation` and `hidden`, are rejected before
|
|
1548
|
-
any index in the request is created.
|
|
1555
|
+
any index in the request is created. A legacy `ns` field is accepted only when
|
|
1556
|
+
it names the target namespace. With `ignoreUnknownIndexOptions: true`,
|
|
1557
|
+
`createIndexes` removes the fields MongoDB 7 does not know as index options
|
|
1558
|
+
(and plugin-specific fields such as `weights` or `bits` on an ascending or
|
|
1559
|
+
descending key) before validation, as MongoDB does; options MongoDB knows but
|
|
1560
|
+
NoSQLDB does not implement are still rejected. Native maintenance expires eligible BSON
|
|
1549
1561
|
dates and date arrays in bounded batches, preserving publication holds and
|
|
1550
1562
|
active snapshots.
|
|
1551
1563
|
|
|
@@ -1754,6 +1766,23 @@ time-series collections, clustered indexes, encrypted fields, and all general
|
|
|
1754
1766
|
view pipelines remain unsupported and are rejected before the database or
|
|
1755
1767
|
namespace is created.
|
|
1756
1768
|
|
|
1769
|
+
`create` accepts an `idIndex` only when it describes the primary index every
|
|
1770
|
+
collection gets: key `{ _id: 1 }`, name `_id_`, optionally `v: 2` and an `ns`
|
|
1771
|
+
naming the new collection. Any other `idIndex` is `InvalidOptions` (72).
|
|
1772
|
+
|
|
1773
|
+
**Importing from MongoDB.** `mongorestore` (MongoDB Database Tools 100.x)
|
|
1774
|
+
restores a `mongodump` of ordinary collections with its default flags: the
|
|
1775
|
+
documents, validators and supported indexes (unique, compound, sparse,
|
|
1776
|
+
partial and TTL). It sends this `idIndex` with every `create` and
|
|
1777
|
+
`createIndexes` with each index's `ns` and `ignoreUnknownIndexOptions: true`,
|
|
1778
|
+
and it builds several collections' indexes in parallel, which queue on the
|
|
1779
|
+
database (see "Database waits" below). Exclude the `admin` and `config`
|
|
1780
|
+
namespaces (`--nsExclude 'admin.*' --nsExclude 'config.*'`) and create users
|
|
1781
|
+
through NoSQLDB's authentication options. Collections or indexes that use
|
|
1782
|
+
unsupported features (collation, text, geospatial, hashed or wildcard
|
|
1783
|
+
indexes, capped or time-series collections) fail the restore with the
|
|
1784
|
+
refusing command's error instead of being restored differently.
|
|
1785
|
+
|
|
1757
1786
|
### Collection Validators
|
|
1758
1787
|
|
|
1759
1788
|
`create` and `collMod` accept MongoDB's `validator`, `validationLevel`
|
|
@@ -1914,6 +1943,9 @@ const estimated = await collection.estimatedDocumentCount();
|
|
|
1914
1943
|
const names = await collection.distinct('name');
|
|
1915
1944
|
```
|
|
1916
1945
|
|
|
1946
|
+
The `count` command answers `n` as a 32-bit integer when the count fits and as
|
|
1947
|
+
a 64-bit integer above that, as MongoDB does.
|
|
1948
|
+
|
|
1917
1949
|
---
|
|
1918
1950
|
|
|
1919
1951
|
## Wire Protocol Commands
|
|
@@ -2051,8 +2083,7 @@ fields:
|
|
|
2051
2083
|
waits, before `find`, `count`, and `distinct` materialize documents, between
|
|
2052
2084
|
documents in `insert` and `delete` batches, and immediately before a
|
|
2053
2085
|
transaction commit is handed to storage; expiry fails with `MaxTimeMSExpired`
|
|
2054
|
-
(code 50).
|
|
2055
|
-
single storage step or an in-progress `update` batch runs to completion
|
|
2086
|
+
(code 50). A single storage step or an in-progress `update` batch runs to completion
|
|
2056
2087
|
before the next check, so a write that expires after its first documents
|
|
2057
2088
|
were published reports the expiry while those documents remain durable,
|
|
2058
2089
|
exactly like an interrupted MongoDB batch. The official driver transmits a
|
|
@@ -2064,6 +2095,28 @@ fields:
|
|
|
2064
2095
|
transaction. `getMore` rejects `maxTimeMS` with `BadValue` because NoSQLDB
|
|
2065
2096
|
has no awaitData cursors, and a literal `maxCommitTimeMS` field is rejected
|
|
2066
2097
|
with `InvalidOptions`.
|
|
2098
|
+
- **Database waits.** DDL (`create`, `createIndexes`, `drop`, `dropIndexes`,
|
|
2099
|
+
`collMod`, `dropDatabase`, `renameCollection`, `$out`/`$merge`) holds its
|
|
2100
|
+
database exclusively; other commands on that database wait for it, as they
|
|
2101
|
+
wait for a MongoDB collection or database lock. A command outside a
|
|
2102
|
+
transaction waits first in, first out for as long as it may run: until
|
|
2103
|
+
`maxTimeMS` (`MaxTimeMSExpired`, code 50), until its client disconnects or
|
|
2104
|
+
shuts down its sending side (the wait ends with `ClientDisconnect`, code
|
|
2105
|
+
279, which a client that still reads receives before the connection closes)
|
|
2106
|
+
or until the server shuts down (`InterruptedAtShutdown`, code 91). A DDL
|
|
2107
|
+
command likewise waits for the open transactions on its database to commit
|
|
2108
|
+
or abort, and every command on that database that arrives after the DDL
|
|
2109
|
+
queues behind it, including reads of other collections. An open
|
|
2110
|
+
transaction therefore delays DDL and the commands behind it at most until
|
|
2111
|
+
the transaction lifetime limit (60 seconds, MongoDB's
|
|
2112
|
+
`transactionLifetimeLimitSeconds`) aborts it.
|
|
2113
|
+
A transaction statement that needs a further database keeps a fixed
|
|
2114
|
+
five-second limit and then fails with `IllegalOperation` (code 20,
|
|
2115
|
+
`EFENCE_BUSY: …`), so a transaction never waits without bound while it
|
|
2116
|
+
holds its databases; like any failed statement, it aborts the transaction
|
|
2117
|
+
and releases its databases. The service operations (export,
|
|
2118
|
+
import, tenant and publication fencing) keep the same limit and report
|
|
2119
|
+
`EFENCE_BUSY`.
|
|
2067
2120
|
|
|
2068
2121
|
Callers may therefore rely on a successful NoSQLDB response as a durable,
|
|
2069
2122
|
single-node acknowledgement. They must not read it as a replica-backed
|
|
@@ -2199,7 +2252,7 @@ The native distribution terms and qualified library requirements are recorded in
|
|
|
2199
2252
|
extract and install these files independently of its compiled JavaScript bundle;
|
|
2200
2253
|
NoSQLDB does not download engines at startup.
|
|
2201
2254
|
|
|
2202
|
-
|
|
2255
|
+
A plain `tsrust` build, as run by `pnpm build` and before `pnpm test`, compiles only the configured targets of the host's own architecture (its GNU and musl engines on Linux); `tsrust --configured-targets` builds the host's complete partition from `targetsByHost`. The development suite checks the packaged engines of the host architecture. Releases use `tsrust matrix` to coordinate both partitions after the version commit exists, then publish only after native verification passes and every exact-commit binary has executed and passed strict provenance assembly.
|
|
2203
2256
|
|
|
2204
2257
|
The release coordinator needs Git, Node.js, pnpm and SSH access to the configured macOS builder. The local Linux amd64 builder needs `aarch64-linux-gnu-gcc`, `x86_64-linux-musl-gcc` and `aarch64-linux-musl-gcc` and a registered Linux arm64 `binfmt` interpreter. Linux file storage requires kernel 5.6 or newer with `openat2` enabled. Cross-architecture file qualification requires a full-system Linux guest or a native host. A linux-user executable probe does not qualify secure filesystem syscalls such as `openat2`. The built-package acceptance script `test/verify-alpine.mjs` exercises authenticated nested document persistence and restart through Node and Deno on Alpine; run it on both Linux architectures before publication. The Apple Silicon builder needs Rosetta. The matrix qualifies macOS first and then Linux; both partitions must pass before artifact assembly. Set these environment variables to authorized builders and their dedicated temporary roots:
|
|
2205
2258
|
|
|
@@ -2212,7 +2265,7 @@ export NOSQLDB_RELEASE_MACOS_TEMP_ROOT="/absolute/dedicated/nosqldb-release"
|
|
|
2212
2265
|
|
|
2213
2266
|
1. Builds the TypeScript package and debug UI bundle from the version commit.
|
|
2214
2267
|
2. Transfers an exact Git bundle into isolated local Linux and SSH macOS worker workspaces and installs each frozen lockfile.
|
|
2215
|
-
3. Runs the configured `release:verify-native` command on each worker: the full Rust workspace, TypeScript test checks, public API suite, and explicit-engine authentication/ownership/rehearsal tests through the worker's other packaged architecture. Tests use short, private disposable filesystem roots under `/var/tmp` on Linux and canonical `/tmp` on macOS. Linux builders must provide `/var/tmp` on a native-supported durable filesystem; tmpfs is rejected. Failures retain diagnostics and prevent assembly.
|
|
2268
|
+
3. Runs the configured `release:verify-native` command on each worker: the full Rust workspace, TypeScript test checks, a `tsrust --configured-targets` build of the worker's partition, the public API suite with the packaged-engine checks for both architectures, and explicit-engine authentication/ownership/rehearsal tests through the worker's other packaged architecture. Tests use short, private disposable filesystem roots under `/var/tmp` on Linux and canonical `/tmp` on macOS. Linux builders must provide `/var/tmp` on a native-supported durable filesystem; tmpfs is rejected. Failures retain diagnostics and prevent assembly.
|
|
2216
2269
|
4. Builds and executes GNU and musl Linux amd64/arm64 plus macOS arm64/amd64 binaries on their assigned workers.
|
|
2217
2270
|
5. Retrieves bounded artifact sets and transactionally publishes the complete provenance-checked matrix into `dist_rust/`.
|
|
2218
2271
|
|
package/ts/00_commitinfo_data.ts
CHANGED