Compatibility
In short: Node.js 22+ on the client, Spark 3.4+ (recommended: 4.0) on the server.
The client speaks the Spark Connect gRPC protocol, so what actually works against any given server depends on which protobuf messages that server’s version implements.
Spark server versions
Section titled “Spark server versions”| Spark | Status | Notes |
|---|---|---|
| 4.0 | Recommended | Latest tested target. |
| 3.5 | Supported | Tested in CI. |
| 3.4 | Partial | Proto messages added after 3.4 (some catalog APIs, for example) are rejected by the server’s analyzer. |
| < 3.4 | Not supported | Spark Connect did not exist before 3.4. |
Node.js versions
Section titled “Node.js versions”| Node.js | Status | Notes |
|---|---|---|
| 24.x | Tested in CI | |
| 22 LTS | Tested in CI | Minimum supported version. |
| 20 LTS | Not supported | End of maintenance upstream. |
| 18 LTS | Not supported | Missing globals the client relies on. |
Node 22 is the active LTS line and what CI tests. The code only formally requires globals available in Node 19+, but anything below 22 is unsupported.
Other runtimes
Section titled “Other runtimes”Node.js is the only runtime currently shipped. @spark-connect-js/core is platform-agnostic and dependency-free, so additional runtime adapters (Bun, Deno, the browser) ship as separate packages without changes to the public API. See Integrations for what’s available and what’s planned.
TypeScript
Section titled “TypeScript”Type definitions ship with every package. Consuming the types from a TS project requires TypeScript 5.0 or later.
Runtime dependencies
Section titled “Runtime dependencies”| Package | Runtime dependencies |
|---|---|
@spark-connect-js/core | None |
@spark-connect-js/node | @grpc/grpc-js, apache-arrow, @bufbuild/protobuf |
@spark-connect-js/connect | @bufbuild/protobuf |