Enhanced Streams

Enhanced Streams Service Schema

Download the Enhanced Streams proto and generate a typed gRPC client.

Download the Enhanced Streams proto.

Full service

syntax = "proto3";package nln.stream.v1; service StreamService {  rpc Subscribe(SubscribeRequest) returns (stream SubscribeResponse);  rpc ListTopics(ListTopicsRequest) returns (ListTopicsResponse);} message SubscribeRequest {  string topic = 1;  OutputFormat format = 2;} enum OutputFormat {  PROTO = 0;  JSON = 1;} message SubscribeResponse {  string topic = 1;  int64 partition = 2;  int64 offset = 3;  int64 timestamp_ms = 4;  bytes payload = 5;} message ListTopicsRequest {} message ListTopicsResponse {  repeated TopicInfo topics = 1;} message TopicInfo {  string name = 1;  string description = 2;  string proto_message_type = 3;}

Generate JavaScript bindings

Dynamic loading avoids a generation step:

npm install @grpc/grpc-js @grpc/proto-loader
import grpc from "@grpc/grpc-js"import protoLoader from "@grpc/proto-loader" const definition = protoLoader.loadSync("enhanced-streams.proto", {  keepCase: false,  longs: String,  enums: String,  defaults: true,  oneofs: true,}) const nln = grpc.loadPackageDefinition(definition).nln.stream.v1

Format values

  • PROTO = 0
  • JSON = 1

Start with JSON. Move to protobuf payload decoding only after you receive the matching message schema from NoLimitNodes.