datum-core 0.6.0

Rust stream-processing library mirroring Akka/Pekko Streams Typed, built on Ractor actors
Documentation
syntax = "proto3";

package datum.streamref;

// StreamRefs protocol messages mirror Akka's StreamRefMessages.proto, with
// ActorRef{path} endpoint naming replaced by a stream_ref_id scoped to one
// transport connection. This file is checked in as documentation only; Datum
// hand-writes matching prost structs and does not run protoc at build time.

message StreamRefFrame {
  bytes stream_ref_id = 1;

  oneof message {
    OnSubscribeHandshake on_subscribe_handshake = 2;
    CumulativeDemand cumulative_demand = 3;
    SequencedOnNext sequenced_on_next = 4;
    RemoteStreamCompleted remote_stream_completed = 5;
    RemoteStreamFailure remote_stream_failure = 6;
    Ack ack = 7;
  }
}

message SourceRef {
  bytes stream_ref_id = 1;
}

message SinkRef {
  bytes stream_ref_id = 1;
}

message Payload {
  bytes enclosed_message = 1;
}

message OnSubscribeHandshake {}

message CumulativeDemand {
  uint64 seq_nr = 1;
}

message SequencedOnNext {
  uint64 seq_nr = 1;
  Payload payload = 2;
}

message RemoteStreamCompleted {
  uint64 seq_nr = 1;
}

message RemoteStreamFailure {
  bytes cause = 1;
}

message Ack {}