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.

SparkStatusNotes
4.0RecommendedLatest tested target.
3.5SupportedTested in CI.
3.4PartialProto messages added after 3.4 (some catalog APIs, for example) are rejected by the server’s analyzer.
< 3.4Not supportedSpark Connect did not exist before 3.4.
Node.jsStatusNotes
24.xTested in CI
22 LTSTested in CIMinimum supported version.
20 LTSNot supportedEnd of maintenance upstream.
18 LTSNot supportedMissing 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.

PackageRuntime dependencies
@spark-connect-js/coreNone
@spark-connect-js/node@grpc/grpc-js, apache-arrow, @bufbuild/protobuf
@spark-connect-js/connect@bufbuild/protobuf