syntax = "proto3"; package gabrielsimmerdotcom.gossip; message Ping {} message PingRequest { string peer = 1; } enum Status { PEER_UNKNOWN = 0; PEER_ALIVE = 1; PEER_SUSPECT = 2; PEER_CONFIRM = 3; } // { "127.0.0.1:1337", confirm } message Membership { string peer = 1; Status status = 2; int64 inc = 3; } message NewCache { string key = 1; string content = 2; string content_type = 3; } message Cache { string key = 1; string content = 2; string content_type = 3; int64 timestamp = 4; } message Payload { string peer = 1; oneof msg { Cache cache = 2; Ping ping = 3; Ack ack = 4; Membership membership = 5; NewCache new_cache = 6; } } message Ack { }