@@ -7,11 +7,16 @@ message RPC {
77 repeated Message publish = 2 ;
88
99 message SubOpts {
10- optional bool subscribe = 1 ; // subscribe or unsubcribe
10+ optional bool subscribe = 1 ; // subscribe or unsubscribe
1111 optional string topicid = 2 ;
12+ // signals to receiver that sender prefers partial messages
13+ optional bool requestsPartial = 3 ;
14+ // signals to receiver that sender supports sending partial messages
15+ optional bool supportsSendingPartial = 4 ;
1216 }
1317
1418 optional ControlMessage control = 3 ;
19+ optional PartialMessagesExtension partial = 10 ;
1520}
1621
1722message Message {
@@ -29,6 +34,7 @@ message ControlMessage {
2934 repeated ControlGraft graft = 3 ;
3035 repeated ControlPrune prune = 4 ;
3136 repeated ControlIDontWant idontwant = 5 ;
37+ optional ControlExtensions extensions = 6 ;
3238}
3339
3440message ControlIHave {
@@ -54,11 +60,22 @@ message ControlIDontWant {
5460 repeated bytes messageIDs = 1 ;
5561}
5662
63+ message ControlExtensions {
64+ optional bool partialMessages = 10 ;
65+ }
66+
5767message PeerInfo {
5868 optional bytes peerID = 1 ;
5969 optional bytes signedPeerRecord = 2 ;
6070}
6171
72+ message PartialMessagesExtension {
73+ optional string topicID = 1 ;
74+ optional bytes groupID = 2 ;
75+ optional bytes partialMessage = 3 ;
76+ optional bytes partsMetadata = 4 ;
77+ }
78+
6279message TopicDescriptor {
6380 optional string name = 1 ;
6481 optional AuthOpts auth = 2 ;
0 commit comments