protobuf definitions for hyper-real-time chat
at main 114 lines 2.0 kB view raw
1syntax = "proto3"; 2package lrc.v1; 3option go_package = "github.com/rachel-mp4/lrcproto/gen/go/lrcpb;lrcpb"; 4 5message Event { 6 oneof msg { 7 Ping ping = 1; 8 Pong pong = 2; 9 Init init = 3; 10 Pub pub = 4; 11 Insert insert = 5; 12 Delete delete = 6; 13 Mute mute = 7; 14 Unmute unmute = 8; 15 Set set = 9; 16 Get get = 10; 17 Kick kick = 11; 18 Hug hug = 12; 19 Ban ban = 13; 20 Unban unban = 14; 21 EditBatch editbatch = 15; 22 MediaInit mediainit = 17; 23 MediaPub mediapub = 18; 24 } 25 optional uint32 id = 16; 26} 27 28message Ping {} 29 30message Pong {} 31 32message Init { 33 optional uint32 id = 1; 34 optional string nick = 2; 35 optional string externalID = 3; 36 optional uint32 color = 4; 37 optional bool echoed = 5; 38 optional bytes nonce = 6; 39} 40 41message Pub { optional uint32 id = 1; } 42 43message Insert { 44 optional uint32 id = 1; 45 string body = 2; 46 uint32 utf16Index = 3; 47} 48 49message Delete { 50 optional uint32 id = 1; 51 uint32 utf16Start = 2; 52 uint32 utf16End = 3; 53} 54 55message Mute { uint32 id = 1; } 56 57message Unmute { uint32 id = 1; } 58 59message Set { 60 optional string nick = 1; 61 optional string externalID = 2; 62 optional uint32 color = 3; 63} 64 65message Get { 66 optional string topic = 1; 67 optional uint32 connected = 2; 68} 69 70message Sudo { 71 string externalID = 1; 72 string secret = 2; 73} 74 75message Kick { 76 Sudo privileges = 1; 77 uint32 id = 2; 78} 79 80message Hug { uint32 id = 1; } 81 82message Ban { 83 Sudo privileges = 1; 84 uint32 id = 2; 85} 86 87message Unban { 88 Sudo privileges = 1; 89 uint32 id = 2; 90} 91 92message Edit { 93 oneof edit { 94 Insert insert = 1; 95 Delete delete = 2; 96 } 97} 98 99message EditBatch { repeated Edit edits = 1; } 100 101message MediaInit { 102 optional uint32 id = 1; 103 optional string nick = 2; 104 optional string externalID = 3; 105 optional uint32 color = 4; 106 optional bool echoed = 5; 107 optional bytes nonce = 6; 108} 109 110message MediaPub { 111 optional uint32 id = 1; 112 optional string contentAddress = 2; 113 optional string alt = 3; 114}