Repository navigation
Releases
Releases · dogmatiq/protobuf
Version 0.7.0
Added
- Added Go
AsMultiEnvelopes()and TypeScriptasMultiEnvelopes()to group consecutive envelopes with equivalent headers into multi-envelopes while preserving message order.
Changed
- [BC] TypeScript
getExtension()andgetBaggage()now throw when the requested value is absent. UsetryGetExtension()andtryGetBaggage()for the previous behavior of returningundefined. Both forms still throw when the selected value cannot be decoded. - [BC] Changed
WatchEventsto returnABORTEDinstead ofRESOURCE_EXHAUSTEDwhen a client cannot keep up, so that it can't be confused withRESOURCE_EXHAUSTEDerrors produced by gRPC itself or by proxies.
Removed
- [BC] Removed
EventStreamConsumerTooSlowand the Go helperEventStreamConsumerTooSlowError(). TheABORTEDcode alone identifies the error. - [BC] Removed
UnrecognizedEventStreamand the Go helperUnrecognizedEventStreamError().ReadEventsstill returnsNOT_FOUNDfor an unrecognized stream ID, without error details.
Version 0.6.0
Version 0.5.0
Added
- Added
MessageFilterwith explicit all-types and specific-types selections, and Go and TypeScript validation helpers. - Added
EventStreamConsumerTooSlowand the Go helperEventStreamConsumerTooSlowError()forRESOURCE_EXHAUSTEDerrors when a client cannot keep up and event stream delivery can no longer continue contiguously.
Changed
- [BC] Changed
EventStreamSegment.envelopesto contain individualEnvelopevalues instead ofMultiEnvelopevalues. - [BC] Replaced
message_type_idsinWatchEventsRequestandReadEventsRequestwith a requiredfilter. Missing filters, filters with no selection, and empty specific-type selections are invalid and result inINVALID_ARGUMENTfrom either RPC. - Clarified event matching, stream discovery and segment continuity requirements for
WatchEventsandReadEvents. - Changed
WatchEventsto returnRESOURCE_EXHAUSTEDwith an attachedEventStreamConsumerTooSlowdetail when a client cannot keep up and delivery can no longer continue contiguously.
Removed
- [BC] Removed
MultiEnvelopeand its Go and TypeScript batching, expansion and validation helpers. Use individualEnvelopevalues instead.
Fixed
- Fixed TypeScript
validateUUID()accepting negative or overflowing UUID components when their version and variant bits were otherwise valid.
Version 0.4.1
Version 0.4.0
Version 0.3.0
Added
- Added
EventStreamConsumerAPI.WatchEvents, a server-streaming method that delivers events of the requested message types as they are appended to any stream, for as long as the call is open. The first segment received for a stream tells the client that the stream exists and where the feed begins. - Added
EventStreamConsumerAPI.ReadEvents, which delivers the events of the requested message types from a single stream, from a given offset to the end of the stream, then closes. - Added
EventStreamSegment, the output of both methods. It describes the half-open range[begin_offset, end_offset)of one stream and carries the matching events within it.
Removed
- [BC] Removed
EventStreamConsumerAPI.ListEventStreams,ListEventStreamsRequest,ListEventStreamsResponseandEventStream. Streams are discovered from the segments delivered byWatchEvents. - [BC] Removed
EventStreamConsumerAPI.ConsumeEvents,ConsumeEventsRequestandConsumeEventsResponsein favor ofReadEvents. The server no longer closes a call when it believes it cannot produce new events of the requested types;ReadEventscloses when it reaches the end of the stream.
Version 0.2.0
Added
- Added
Header.Validate(),Body.Validate()andMessage.Validate()to the Goenvelopepbpackage. - Added
validateHeader(),validateBody()andvalidateMessage()to the TypeScriptenvelopepbpackage.
Changed
- [BC]
envelopepb.SetExtension()andSetBaggage()now accept any value with the relevant getter and setter methods, such as a*Headeror*Body, and accept the value to set as aproto.Message. They are no longer generic, so calls that specify type arguments explicitly must remove them. setExtension()andsetBaggage()in the TypeScriptenvelopepbpackage now accept aHeaderor aBody.
Fixed
envelopepb.SetExtension()andSetBaggage()now panic if the value is a nil pointer, as well as when it isnil.
Version 0.1.0
- Initial release.