@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.lock +196 -107
- package/Cargo.toml +21 -21
- package/LICENSE +1 -1
- package/README.md +4 -5
- package/package.json +8 -7
- package/src/lib.rs +313 -265
package/Cargo.toml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "zerobus-sdk-ts"
|
|
3
|
-
version = "1.0
|
|
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
|
-
|
|
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
|
-
#
|
|
19
|
-
|
|
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
|
-
#
|
|
22
|
-
tokio = { version = "1.
|
|
25
|
+
# Match the Rust SDK 2.0 workspace versions.
|
|
26
|
+
tokio = { version = "1.52", features = ["macros", "rt-multi-thread"] }
|
|
23
27
|
|
|
24
|
-
|
|
25
|
-
prost = "0.
|
|
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
|
-
|
|
43
|
-
arrow-
|
|
44
|
-
arrow-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
-
|
|
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
|
|
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
|
|
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
|
|
71
|
-
"@databricks/zerobus-ingest-sdk-linux-arm64-gnu": "1.0
|
|
72
|
-
"@databricks/zerobus-ingest-sdk-win32-x64-msvc": "1.0
|
|
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": "^
|
|
77
|
+
"apache-arrow": "^18.0.0"
|
|
77
78
|
},
|
|
78
79
|
"peerDependenciesMeta": {
|
|
79
80
|
"protobufjs": {
|