Skip to content

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 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, parts of the streaming listener bus) are rejected by the server’s analyzer.
< 3.4 Not supported Spark Connect did not exist before 3.4.
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.

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.

Type definitions ship with every package. Consuming the types from a TS project requires TypeScript 5.0 or later.

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