Missing ability to convert akka.protobuf.ByteString into akka.util.ByteString
#18,738 建立於 2015年10月19日
倉庫指標
- 星標
- (13,277 顆星)
- PR 合併指標
- (平均合併 8天 19小時) (30 天內合併 10 個 PR)
描述
We're implementing an akka persistence query plugin. It needs to look inside stored events that are serialized using akka's built-in serialization, in this case the protobuf representation of akka.persistence.serialization.MessageFormats.PersistentMessage. For ease of use, we're re-using that class to unmarshal the persistent events.
PersistentMessage.payload is an instance of akka.protobuf.ByteString, which contains the serialized event itself. The contents depends on how the user has configured akka-serialization: it might be java serialization, a custom probuf version, or something else entirely.
One of the use cases of our plugin is to allow remote views for events. To that end, we actually want to expose the contents of the events directly. Hence, we don't need to read the contents; we just want to serve it up to HTTP (as chunks).
However, akka-http expects akka.util.ByteString, not akka.protobuf.ByteString. Even worse is that with current APIs, it's not possible to convert one into the other without copying the bytes. It would be very convenient to be allowed to coerce protobuf.ByteString into util.ByteString, while re-using the underlying byte array / byte buffer.