@qvac/ggml-rpc-server 0.1.0 → 0.2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.0] - 2026-10-06
4
+
5
+ ### Changed
6
+
7
+ - `@qvac/fabric` dependency bumped `^0.19.0` -> `^0.20.0`, which carries
8
+ `qvac-fabric` `10549.5.0` -> `11018.0.0`, the rebase onto upstream llama.cpp
9
+ b11018. This package consumes the shared runtime via npm rather than building
10
+ the vcpkg port, so the range bump is what picks up the new fabric. A caret on
11
+ a `0.x` version locks the minor, so `^0.19.0` would not have resolved `0.20.0`
12
+ on its own. The RPC protocol stays at 109, so servers and clients on
13
+ fabric 10549.3.0 and later still connect, and servers now keep backend
14
+ tensor extras. No API change.
15
+ - The server lifecycle moved into `rpc-server-core`, which now has C++ unit
16
+ tests, and the package gained desktop integration tests
17
+ ([#4769](https://github.com/tetherto/qvac/pull/4769)).
18
+ - Mobile apps must move `@qvac/fabric` and `@qvac/fabric-android-arm64` or
19
+ `@qvac/fabric-ios` to `0.20.0` together.
20
+
21
+ ## [0.1.1] - 2026-09-30
22
+
23
+ ### Changed
24
+
25
+ - `@qvac/fabric` dependency bumped `^0.18.1` -> `^0.19.0`, and the mobile
26
+ `@qvac/fabric-android-arm64` and `@qvac/fabric-ios` pins `0.18.1` ->
27
+ `0.19.0`. This carries `qvac-fabric` `10549.4.0` -> `10549.5.0`, whose RPC
28
+ change matters here: idle RDMA and tensor-dispatch threads now sleep instead
29
+ of spinning, so an idle server no longer keeps cores busy. A caret on a `0.x`
30
+ version locks the minor, so `^0.18.1` would not have resolved `0.19.0` on
31
+ its own. No API change.
32
+
3
33
  ## 0.1.0
4
34
 
5
35
  - Add the managed `ggml-rpc-server` API as an in-process Bare addon backed by
package/README.md CHANGED
@@ -97,3 +97,16 @@ console.log(server.rdmaCapable)
97
97
 
98
98
  Without `expectRdma`, the server starts either way and reports the backend's
99
99
  capability in `rdmaCapable`.
100
+
101
+ ## Testing
102
+
103
+ ```bash
104
+ npm run test:unit # JS unit tests against a mocked binding
105
+ npm run test:cpp # C++ unit tests (GoogleTest)
106
+ npm run test:integration # desktop integration tests against prebuilds/
107
+ ```
108
+
109
+ On a PR, `on-pr-nx.yml` runs the C++ tests with the `run-cpp-addon-tests` label
110
+ and the desktop integration tests with the `run-desktop-addon-tests` label. Their
111
+ platforms and runner setup live in the `test:cpp` and `test:integration`
112
+ targets of `project.json`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qvac/ggml-rpc-server",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Managed ggml RPC server for QVAC LLM inference",
5
5
  "addon": true,
6
6
  "scripts": {
@@ -13,11 +13,15 @@
13
13
  "lint:js": "prettier --check \"**/*.{js,cjs,mjs}\" && lunte",
14
14
  "lint:ts": "eslint \"src/**/*.ts\" --max-warnings=0",
15
15
  "lint:ts:fix": "eslint \"src/**/*.ts\" --fix",
16
- "lint-cpp": "clang-tidy -p build addon/binding.cpp",
16
+ "lint-cpp": "clang-tidy -p build addon/binding.cpp addon/rpc-server-core.cpp",
17
17
  "format": "prettier --write \"**/*.{js,cjs,mjs}\"",
18
18
  "test": "npm run build:ts && npm run test:node",
19
19
  "test:node": "node --test test/node/*.test.cjs",
20
20
  "test:unit": "npm run test:node",
21
+ "test:integration": "bare test/integration/rpc-server.test.js",
22
+ "test:cpp:build": "bare-make generate -D BUILD_TESTING=ON && bare-make build --target addon-test",
23
+ "test:cpp:run": "node scripts/run-cpp-tests.js",
24
+ "test:cpp": "npm run test:cpp:build && npm run test:cpp:run",
21
25
  "test:types": "npm run typecheck && npm run check:generated",
22
26
  "test:dts": "npm run test:types"
23
27
  },
@@ -41,9 +45,10 @@
41
45
  "bugs": "https://github.com/tetherto/qvac/issues",
42
46
  "homepage": "https://github.com/tetherto/qvac/tree/main/packages/ggml-rpc-server#readme",
43
47
  "devDependencies": {
44
- "@qvac/fabric-android-arm64": "0.18.1",
45
- "@qvac/fabric-ios": "0.18.1",
48
+ "@qvac/fabric-android-arm64": "0.20.0",
49
+ "@qvac/fabric-ios": "0.20.0",
46
50
  "@types/node": "^24.2.1",
51
+ "brittle": "^3.17.0",
47
52
  "cmake-bare": "^1.7.5",
48
53
  "cmake-npm": "^1.1.0",
49
54
  "cmake-vcpkg": "^1.1.0",
@@ -57,7 +62,7 @@
57
62
  "typescript-eslint": "^8.63.0"
58
63
  },
59
64
  "dependencies": {
60
- "@qvac/fabric": "^0.18.1",
65
+ "@qvac/fabric": "^0.20.0",
61
66
  "bare-net": "^2.3.2",
62
67
  "bare-path": "^3.0.0"
63
68
  },
@@ -7,15 +7,24 @@
7
7
  ],
8
8
  "current_versions": [
9
9
  {
10
- "version": "0.1"
10
+ "version": "0.2"
11
11
  }
12
12
  ],
13
13
  "exported_symbols": [
14
14
  {
15
15
  "text": {
16
16
  "global": [
17
+ "__ZN10rpc_server23rpcBackendHasRdmaMarkerERKNSt3__14__fs10filesystem4pathE",
18
+ "__ZN10rpc_server12ServerRunner4stopEv",
19
+ "__ZN10rpc_server13selectDevicesERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE",
17
20
  "_bare_register_module_v0",
18
- "_bare_get_module_name_v0"
21
+ "__ZN10rpc_server12ServerRunnerC1EP23ggml_backend_rpc_serverNS_12RpcServerApiE",
22
+ "__ZN10rpc_server12ServerRunnerD2Ev",
23
+ "__ZN10rpc_server19resolveRpcServerApiEv",
24
+ "_bare_get_module_name_v0",
25
+ "__ZN10rpc_server21defaultCacheDirectoryEv",
26
+ "__ZN10rpc_server12ServerRunnerC2EP23ggml_backend_rpc_serverNS_12RpcServerApiE",
27
+ "__ZN10rpc_server12ServerRunnerD1Ev"
19
28
  ]
20
29
  }
21
30
  }
@@ -7,15 +7,24 @@
7
7
  ],
8
8
  "current_versions": [
9
9
  {
10
- "version": "0.1"
10
+ "version": "0.2"
11
11
  }
12
12
  ],
13
13
  "exported_symbols": [
14
14
  {
15
15
  "text": {
16
16
  "global": [
17
+ "__ZN10rpc_server23rpcBackendHasRdmaMarkerERKNSt3__14__fs10filesystem4pathE",
18
+ "__ZN10rpc_server12ServerRunner4stopEv",
19
+ "__ZN10rpc_server13selectDevicesERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE",
17
20
  "_bare_register_module_v0",
18
- "_bare_get_module_name_v0"
21
+ "__ZN10rpc_server12ServerRunnerC1EP23ggml_backend_rpc_serverNS_12RpcServerApiE",
22
+ "__ZN10rpc_server12ServerRunnerD2Ev",
23
+ "__ZN10rpc_server19resolveRpcServerApiEv",
24
+ "_bare_get_module_name_v0",
25
+ "__ZN10rpc_server21defaultCacheDirectoryEv",
26
+ "__ZN10rpc_server12ServerRunnerC2EP23ggml_backend_rpc_serverNS_12RpcServerApiE",
27
+ "__ZN10rpc_server12ServerRunnerD1Ev"
19
28
  ]
20
29
  }
21
30
  }
@@ -7,15 +7,24 @@
7
7
  ],
8
8
  "current_versions": [
9
9
  {
10
- "version": "0.1"
10
+ "version": "0.2"
11
11
  }
12
12
  ],
13
13
  "exported_symbols": [
14
14
  {
15
15
  "text": {
16
16
  "global": [
17
+ "__ZN10rpc_server23rpcBackendHasRdmaMarkerERKNSt3__14__fs10filesystem4pathE",
18
+ "__ZN10rpc_server12ServerRunner4stopEv",
19
+ "__ZN10rpc_server13selectDevicesERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE",
17
20
  "_bare_register_module_v0",
18
- "_bare_get_module_name_v0"
21
+ "__ZN10rpc_server12ServerRunnerC1EP23ggml_backend_rpc_serverNS_12RpcServerApiE",
22
+ "__ZN10rpc_server12ServerRunnerD2Ev",
23
+ "__ZN10rpc_server19resolveRpcServerApiEv",
24
+ "_bare_get_module_name_v0",
25
+ "__ZN10rpc_server21defaultCacheDirectoryEv",
26
+ "__ZN10rpc_server12ServerRunnerC2EP23ggml_backend_rpc_serverNS_12RpcServerApiE",
27
+ "__ZN10rpc_server12ServerRunnerD1Ev"
19
28
  ]
20
29
  }
21
30
  }
@@ -34,7 +43,7 @@
34
43
  ],
35
44
  "target_info": [
36
45
  {
37
- "min_deployment": "15",
46
+ "min_deployment": "14",
38
47
  "target": "arm64-ios"
39
48
  }
40
49
  ]
@@ -7,15 +7,24 @@
7
7
  ],
8
8
  "current_versions": [
9
9
  {
10
- "version": "0.1"
10
+ "version": "0.2"
11
11
  }
12
12
  ],
13
13
  "exported_symbols": [
14
14
  {
15
15
  "text": {
16
16
  "global": [
17
+ "__ZN10rpc_server23rpcBackendHasRdmaMarkerERKNSt3__14__fs10filesystem4pathE",
18
+ "__ZN10rpc_server12ServerRunner4stopEv",
19
+ "__ZN10rpc_server13selectDevicesERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE",
17
20
  "_bare_register_module_v0",
18
- "_bare_get_module_name_v0"
21
+ "__ZN10rpc_server12ServerRunnerC1EP23ggml_backend_rpc_serverNS_12RpcServerApiE",
22
+ "__ZN10rpc_server12ServerRunnerD2Ev",
23
+ "__ZN10rpc_server19resolveRpcServerApiEv",
24
+ "_bare_get_module_name_v0",
25
+ "__ZN10rpc_server21defaultCacheDirectoryEv",
26
+ "__ZN10rpc_server12ServerRunnerC2EP23ggml_backend_rpc_serverNS_12RpcServerApiE",
27
+ "__ZN10rpc_server12ServerRunnerD1Ev"
19
28
  ]
20
29
  }
21
30
  }
@@ -34,7 +43,7 @@
34
43
  ],
35
44
  "target_info": [
36
45
  {
37
- "min_deployment": "15",
46
+ "min_deployment": "14",
38
47
  "target": "arm64-ios-simulator"
39
48
  }
40
49
  ]
@@ -7,15 +7,24 @@
7
7
  ],
8
8
  "current_versions": [
9
9
  {
10
- "version": "0.1"
10
+ "version": "0.2"
11
11
  }
12
12
  ],
13
13
  "exported_symbols": [
14
14
  {
15
15
  "text": {
16
16
  "global": [
17
+ "__ZN10rpc_server23rpcBackendHasRdmaMarkerERKNSt3__14__fs10filesystem4pathE",
18
+ "__ZN10rpc_server12ServerRunner4stopEv",
19
+ "__ZN10rpc_server13selectDevicesERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE",
17
20
  "_bare_register_module_v0",
18
- "_bare_get_module_name_v0"
21
+ "__ZN10rpc_server12ServerRunnerC1EP23ggml_backend_rpc_serverNS_12RpcServerApiE",
22
+ "__ZN10rpc_server12ServerRunnerD2Ev",
23
+ "__ZN10rpc_server19resolveRpcServerApiEv",
24
+ "_bare_get_module_name_v0",
25
+ "__ZN10rpc_server21defaultCacheDirectoryEv",
26
+ "__ZN10rpc_server12ServerRunnerC2EP23ggml_backend_rpc_serverNS_12RpcServerApiE",
27
+ "__ZN10rpc_server12ServerRunnerD1Ev"
19
28
  ]
20
29
  }
21
30
  }
@@ -34,7 +43,7 @@
34
43
  ],
35
44
  "target_info": [
36
45
  {
37
- "min_deployment": "15",
46
+ "min_deployment": "14",
38
47
  "target": "x86_64-ios-simulator"
39
48
  }
40
49
  ]