0.2.27 • Published 1 month ago

@streamdal/node-sdk v0.2.27

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

Streamdal Node SDK

Release Pull Request Discord

Node SDK for Streamdal.

For more details, see the main streamdal repo.


Getting started

Optionally copy example.env -> .env and specify any custom env vars.

To use the sdk in your node app:

npm install @streamdal/node-sdk

Then construct an instance of Streamdal from "@streamdal/node-sdk" and use that to process your data:

const config: StreamdalConfigs = {
  streamdalUrl: "localhost:8082",
  streamdalToken: "1234",
  serviceName: "test-service-name",
  pipelineTimeout: "100",
  stepTimeout: "10",
  dryRun: "false",
};

const audience: Audience = {
  serviceName: "test-service-name",
  componentName: "kafka",
  operationType: OperationType.CONSUMER,
  operationName: "test-kafka-consumer",
};

export const example = async () => {
  const streamdal = await registerStreamdal(config);
  const result = await streamdal.process({
    audience,
    data: new TextEncoder().encode(JSON.stringify(exampleData)),
  });

  console.log("streamdal response");
  console.dir(result, {depth: 20});
};

See ./examples for runnable examples that can be used as a starters.

Documentation

See https://docs.streamdal.com

Wasm

In order to run pipelines with a minimal amount of overhead, the Streamdal node sdk ships and executes pipeline rules as WASM. If you are using Node version < 20.* you'll need to enable WASM functionality in your node app by supplying the flag, see:

node --experimental-wasi-unstable-preview1 ./build/sandbox/index.js

More info: Node WASM Modules

Development

To do development on the node-sdk, you can run it locally:

npm install npm run sandbox

See ./src/sandbox/index.ts for an entry point for local dev.

Optionally install and run the Streamdal server

Release

Any push or merge to the main branch with any changes in /sdks/node/* will automatically tag and release a new console version with sdks/node/vX.Y.Z.

(1) If you'd like to skip running the release action on push/merge to main, include norelease anywhere in the commit message.

(2) The package.json file will will also be bumped as part of the release to reflect the new version.

0.2.27

1 month ago

0.2.26

1 month ago

0.2.25

1 month ago

0.2.24

1 month ago

0.2.23

2 months ago

0.2.22

2 months ago

0.2.21

2 months ago

0.2.20

2 months ago

0.2.19

2 months ago

0.2.18

2 months ago

0.2.17

2 months ago

0.2.16

3 months ago

0.2.15

3 months ago

0.2.14

3 months ago

0.2.13

3 months ago

0.2.12

3 months ago

0.2.11

3 months ago

0.2.10

3 months ago

0.2.9

3 months ago

0.2.7

3 months ago

0.2.6

3 months ago

0.2.8

3 months ago

0.2.5

3 months ago

0.2.4

3 months ago

0.2.3

3 months ago

0.2.2

3 months ago

0.1.29

4 months ago

0.1.28

4 months ago

0.1.27

4 months ago

0.1.26

4 months ago

0.1.24

4 months ago

0.1.23

5 months ago

0.1.22

5 months ago

0.1.20

5 months ago

0.1.21

5 months ago

0.1.18

5 months ago

0.1.19

5 months ago

0.1.17

5 months ago

0.1.16

7 months ago

0.1.15

7 months ago

0.1.14

7 months ago

0.1.13

7 months ago

0.1.12

7 months ago

0.1.11

7 months ago

0.1.10

7 months ago

0.1.9

7 months ago

0.1.7

7 months ago