@databricks/zerobus-ingest-sdk 1.0.2 → 1.1.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/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "zerobus-sdk-ts"
3
- version = "1.0.2"
3
+ version = "1.1.0"
4
4
  authors = ["Databricks"]
5
5
  edition = "2021"
6
6
  license = "Apache-2.0"
@@ -11,44 +11,44 @@ repository = "https://github.com/databricks/zerobus-sdk"
11
11
  crate-type = ["cdylib"]
12
12
 
13
13
  [dependencies]
14
- # NAPI-RS for Node.js bindings
15
- napi = { version = "2", features = ["async", "tokio_rt", "serde-json"] }
14
+ # NAPI-RS for Node.js bindings. `napi6` enables `BigInt::get_i64()` for the
15
+ # lossless bigint i64 path used by `waitForOffset`.
16
+ napi = { version = "2", features = ["async", "tokio_rt", "serde-json", "napi6"] }
16
17
  napi-derive = "2"
17
18
 
18
- # The Rust SDK we're wrapping
19
- databricks-zerobus-ingest-sdk = "1.0.0"
19
+ # Rust SDK 2.0.1 brings Arrow Flight Beta and the `ingest_ipc_batch` IPC
20
+ # entry point used by `ingestBatch`. CI overlays `[patch.crates-io]` to
21
+ # swap in the in-tree Rust SDK when `use_local_sdk` is set (see
22
+ # ci-typescript.yml).
23
+ databricks-zerobus-ingest-sdk = "2.0.1"
20
24
 
21
- # Async runtime (same as the Rust SDK)
22
- tokio = { version = "1.42", features = ["macros", "rt-multi-thread"] }
25
+ # Match the Rust SDK 2.0 workspace versions.
26
+ tokio = { version = "1.52", features = ["macros", "rt-multi-thread"] }
23
27
 
24
- # Protobuf support
25
- prost = "0.13.3"
26
- prost-types = "0.13.3"
28
+ prost = "0.14"
29
+ prost-types = "0.14"
27
30
 
28
- # Serialization
29
31
  serde = { version = "1.0", features = ["derive"] }
30
32
  serde_json = "1.0"
31
33
 
32
- # Error handling
33
34
  thiserror = "1.0"
34
-
35
- # Base64 encoding/decoding
36
35
  base64 = "0.21"
37
-
38
- # Async trait support
39
36
  async-trait = "0.1"
37
+ # `Bytes` is the input type for the Rust SDK's `ingest_ipc_batch` entry.
38
+ bytes = "1"
40
39
 
41
- # Arrow dependencies (only used when arrow-flight feature is enabled)
42
- arrow-array = { version = "56.2.0", optional = true }
43
- arrow-schema = { version = "56.2.0", optional = true }
44
- arrow-ipc = { version = "56.2.0", features = ["lz4", "zstd"], optional = true }
40
+ # Arrow dependencies (only used when arrow-flight feature is enabled).
41
+ # 58.2 matches the Rust SDK 2.0 workspace.
42
+ arrow-array = { version = "58.2", optional = true }
43
+ arrow-schema = { version = "58.2", optional = true }
44
+ arrow-ipc = { version = "58.2", features = ["lz4", "zstd"], optional = true }
45
45
 
46
46
  [build-dependencies]
47
47
  napi-build = "2"
48
48
 
49
49
  [features]
50
50
  default = []
51
- # Arrow Flight is experimental/unsupported - enable with: npm run build:arrow
51
+ # Arrow Flight is in Beta - enable with: npm run build:arrow
52
52
  arrow-flight = [
53
53
  "databricks-zerobus-ingest-sdk/arrow-flight",
54
54
  "dep:arrow-array",
package/LICENSE CHANGED
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright [yyyy] [name of copyright owner]
189
+ Copyright (2025) Databricks, Inc.
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
package/README.md CHANGED
@@ -28,7 +28,7 @@ The Databricks Zerobus Ingest SDK for TypeScript provides a high-performance cli
28
28
  - **High-throughput ingestion**: Optimized for high-volume data ingestion with native Rust implementation
29
29
  - **Automatic recovery**: Built-in retry and recovery mechanisms for transient failures
30
30
  - **Flexible configuration**: Customizable stream behavior and timeouts
31
- - **Multiple serialization formats**: Support for JSON and Protocol Buffers
31
+ - **Multiple serialization formats**: Support for JSON, Protocol Buffers, and Arrow Flight (Beta) with optional LZ4 / ZSTD compression
32
32
  - **Type widening**: Accept high-level types (plain objects, protobuf messages) or low-level types (strings, buffers) - automatically handles serialization
33
33
  - **Batch ingestion**: Ingest multiple records with a single acknowledgment for higher throughput
34
34
  - **OAuth 2.0 authentication**: Secure authentication with client credentials
@@ -137,8 +137,6 @@ source $HOME/.cargo/env
137
137
 
138
138
  #### Installation Steps
139
139
 
140
- **Note for macOS users**: Pre-built binaries are not available. The package will automatically build from source during `npm install`. Ensure you have Rust toolchain and Xcode Command Line Tools installed (see prerequisites above).
141
-
142
140
  1. Clone the repository:
143
141
  ```bash
144
142
  git clone https://github.com/databricks/zerobus-sdk.git
@@ -1127,14 +1125,15 @@ The SDK supports all platforms where Node.js and Rust are available.
1127
1125
  Pre-built native binaries are available for:
1128
1126
 
1129
1127
  - **Linux**: x64, ARM64
1128
+ - **macOS**: x64, ARM64
1130
1129
  - **Windows**: x64
1131
1130
 
1132
1131
  ### Build from Source
1133
1132
 
1134
- **macOS users**: Pre-built binaries are not available for macOS. The package will automatically build from source during `npm install`, which requires:
1133
+ Other platforms (e.g. Linux musl, FreeBSD) need to build from source during `npm install`, which requires:
1135
1134
 
1136
1135
  - **Rust toolchain** (1.70+): Install via `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`
1137
- - **Xcode Command Line Tools**: Install via `xcode-select --install`
1136
+ - Platform C/C++ build tools (Xcode CLT on macOS, build-essential on Debian/Ubuntu, etc.)
1138
1137
 
1139
1138
  The build process happens automatically during installation and typically takes 2-3 minutes.
1140
1139
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@databricks/zerobus-ingest-sdk",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "TypeScript/Node.js SDK for streaming data ingestion into Databricks Delta tables using Zerobus",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -63,17 +63,18 @@
63
63
  "example:json:batch": "tsx examples/json/batch.ts",
64
64
  "example:proto:single": "tsx examples/proto/single.ts",
65
65
  "example:proto:batch": "tsx examples/proto/batch.ts",
66
- "example:arrow:single": "tsx examples/arrow/single.ts",
67
- "example:arrow:batch": "tsx examples/arrow/batch.ts"
66
+ "example:arrow": "tsx examples/arrow/batch.ts"
68
67
  },
69
68
  "optionalDependencies": {
70
- "@databricks/zerobus-ingest-sdk-linux-x64-gnu": "1.0.2",
71
- "@databricks/zerobus-ingest-sdk-linux-arm64-gnu": "1.0.2",
72
- "@databricks/zerobus-ingest-sdk-win32-x64-msvc": "1.0.2"
69
+ "@databricks/zerobus-ingest-sdk-linux-x64-gnu": "1.1.0",
70
+ "@databricks/zerobus-ingest-sdk-linux-arm64-gnu": "1.1.0",
71
+ "@databricks/zerobus-ingest-sdk-win32-x64-msvc": "1.1.0",
72
+ "@databricks/zerobus-ingest-sdk-darwin-x64": "1.1.0",
73
+ "@databricks/zerobus-ingest-sdk-darwin-arm64": "1.1.0"
73
74
  },
74
75
  "peerDependencies": {
75
76
  "protobufjs": "^7.0.0",
76
- "apache-arrow": "^56.0.0"
77
+ "apache-arrow": "^18.0.0"
77
78
  },
78
79
  "peerDependenciesMeta": {
79
80
  "protobufjs": {