Mirror of https://github.com/ssbc/go-ssb-room/ to add Docker image builds with Drone
ea9b22cfa7
Currently an RPC endpoint which lists only the connected members is available. A list of all members, even those who are offline, is available only using the web dashboard. This pull request adds an RPC endpoint which lists all members of the room. This new endpoint can be used to augment SSB clients with extra information about the rooms. For example friends who are room members can be displayed in room-related settings or information about shared rooms can be displayed in user profiles. The new endpoint is a source endpoint called ["room", "members"]. Source endpoint was selected to make it possible to return multiple smaller responses instead of one large response - an async endpoint could struggle to return the list of all members in case of larger rooms. Each response carries a list of member objects. Currently the implementation naively returns one member per response message but that can be adjusted in the future. Currently the request takes no arguments but extra options could be added in the future. Currently member objects only have one property: their id. This can be extended in the future. |
||
---|---|---|
.github/workflows | ||
.reuse | ||
LICENSES | ||
cmd | ||
docs | ||
internal | ||
muxrpc | ||
roomdb | ||
roomsrv | ||
roomstate | ||
web | ||
.dockerignore | ||
.env_example | ||
.gitignore | ||
.goreleaser.yml | ||
Dockerfile | ||
LICENSE | ||
README.md | ||
docker-compose.yml | ||
errors.go | ||
go.mod | ||
go.sum | ||
go.sum.license | ||
start.sh |
README.md
Go-SSB Room
This repository implements the Room (v1+v2) server spec, in Go.
It includes:
- secret-handshake+boxstream network transport, sometimes referred to as SHS, using secretstream
- muxrpc handlers for tunneling connections
- a fully embedded HTTP server & HTML frontend, for administering the room
⭐ Features
- Rooms v1 (
tunnel.connect
,tunnel.endpoints
, etc.) - User management (allow- & denylisting + moderator & administrator roles), all administered via the web dashboard
- Multiple privacy modes
- Sign-in with SSB
- HTTP Invites
- Alias management
For a comprehensive introduction to rooms 2.0, 🎥 watch this video. For a description of MuxRPC APIs see https://github.com/ssbc/rooms2
🚀 Deployment
If you want to deploy a room server yourself, follow our deployment.md docs.
🔧 Development
For an in-depth codebase walkthrough, see the development.md file in the docs
folder of this repository.
🧑🤝🧑 Authors
License
MIT