A set of stabilized interfaces for cchat implementations, joining the backend and frontend together.
diamondburned
cd018ef8f9
This commit adds the ID type, which is a type alias to a string. This change does not break any APIs and is done purely for documentation purposes. This commit also adds backlog interfaces to add support for services capable of storing and showing chat history. A subtle behavior change with the above change would be that MessageContainer implementations are now required to add a mechanism to invalidate old containers when needed. For example, the MessagePrepender passed into MessagesBefore must be invalidated by the frontend when the channel in view is changed. This prevents stray messages from old channels coming in. There are many ways to invalidate a container, but the easiest way would be to attach an optionally atomic boolean into the store and completely separate the store from the view (aka widget). |
||
---|---|---|
services | ||
text | ||
utils/split | ||
.editorconfig | ||
LICENSE | ||
README.md | ||
cchat.go | ||
cchat_frontend.go | ||
go.mod | ||
go.sum |
README.md
cchat
A set of stabilized interfaces for cchat implementations, joining the backend and frontend together.
Refer to the GoDoc for interfaces and documentations.
Known implementations
The following sections contain known cchat implementations. PRs are welcomed for more implementations to be added here.
Backend
- diamondburned/cchat-mock
- A small subset of the cchat backend implementation mocked with fake data for testing.
- diamondburned/cchat-discord
- A Discord backend implementing cchat interfaces.
Frontend
- diamondburned/cchat-gtk
- A GTK+3 implementation of a cchat frontend.