Expand description
The protocol between the server and backends.
§Example Session
P: {"backend_name": "Example", "backend_version": [0, 0, 1], "protocol_version": [0, 1, 0]}
S: {"sequence_number": 0, "body": {"type": "RoomLookup", "value": "#general"}}
P: {"sequence_number": 0, "body": {"type": "RoomID", "value": "#general"}}
S: {"sequence_number": 1, "body": {"type": "RoomJoin", "value": "#general"}}
P: {"sequence_number": 1, "body": {"type": "Success", "value": null}}
S: {"sequence_number": 2, "body": {"type": "MessageSend", "value": {"recipient": "#general", "attachments": [], "content": {"type": "Text", "value: "Hello, world!"}, "extra": null}}}
P: {"sequence_number": 2, "body": {"type": "MessageID", "value": "test"}}TODO:
- Work out how emotes should work
- EmoteID? Store emotes by hash?
- Users
Modules§
- serde
- Serde serialization modules.
Structs§
- Init
Info - Backend sends this to the server when it starts.
- Message
- A message sent from a user to another user or a room.
- Message
Attachment - MIME-typed data attached to a message.
- MessageID
- A name for a message on a service. This should uniquely identify the message, even if it gets edited.
- NewMessage
- A message sent from a user to another user or a room.
- NewRoom
- A request to create a new room with the given properties.
- Request
- A request as sent to the backend.
- Response
- A response as sent from the backend.
- Response
Error - An error with a request.
- Room
- The information corresponding to a room.
- RoomID
- A name for a room on a service. This should uniquely identify a room through renames if possible.
- UserID
- A name for a user on a service. This should uniquely identify a user through renames if possible.
- Version
- The version of the backend or protocol.
Enums§
- Message
Content - The contents of a message.
- Request
Body - A request made to a server.
- Response
Body - The response to a request.
- Response
OrUpdate - A Response or Update.
- RoomID
OrUserID - A RoomID or UserID.
- Update
- Information sent from the backend to the server.