plaza_lobby
License: Mozilla Public License 2.0 (MPL-2.0) · Status: Experimental
Rooms on a single server for plaza: creating them, listing them, authorizing joins and reaping finished ones. Each room is a StateController running as its own task in the same process.
How to use it: README.USAGE.md. Full surface: API_REFERENCE.md.
Install
[]
= "0"
= "0"
What it gives you
| Problem | Piece |
|---|---|
| Building a room of your own game, which the crate cannot know how to do | RoomFactory, InProcessRoomHandle |
| Creating, listing, joining and reaping rooms around it | InMemoryLobbyManager |
| Client-facing message shapes for all of that | the op_payloads module, re-exported at the crate root |
| Gating a room behind a code or a password | RoomSettings::password_hash plus a verifier you supply |
| Sending a connection to a room whose schedule it can actually meet | rooms_playable_at, routing::best_for |
| Pairing players who would rather not choose a room | MatchQueue |
| Holding a seat between admission and arrival | RoomHandle::reserve_seat / withdraw_seat from the lobby, SeatReservations in the room |
| Resolving a connecting player without trusting a URL | TicketStore, MapTicketRegistry, CachedTicketRegistry |
Scope
Single server. Rooms are in-process tasks and nothing here coordinates across machines; that remains an application concern.
Status
Experimental. The API changes.