This PR implements endpoints for the Pub/Sub bi-directional stream, with a few limitations at the moment:
ACKing messages is done within the API and not exposed to the user for now, I haven't found a good way to expose it in an idiomatic manner to the user yet
The streaming method returns a future stream using futures::stream::unfold which does not leave room for proper error handling (the stream can send error messages, always terminating the connection AFAIK), and changing the item type to be Result seems a bit overkill to me. But right now, the stream can fail silently, abruptly finishing the stream.
I had to update the protobuf definitions as well, and I moved to a submodule instead to easily keep them up to date here. I'll revert if that's unwanted.
I needed this feature as part of a high-throughput system, and as such this PR is being battle-tested right now! 😄
This PR implements endpoints for the Pub/Sub bi-directional stream, with a few limitations at the moment:
futures::stream::unfold
which does not leave room for proper error handling (the stream can send error messages, always terminating the connection AFAIK), and changing the item type to be Result seems a bit overkill to me. But right now, the stream can fail silently, abruptly finishing the stream.I had to update the protobuf definitions as well, and I moved to a submodule instead to easily keep them up to date here. I'll revert if that's unwanted.
I needed this feature as part of a high-throughput system, and as such this PR is being battle-tested right now! 😄
closes #57