Package-level declarations

Types

Link copied to clipboard
sealed interface LeaveReason

Why a peer is leaving a room.

Link copied to clipboard

The liveness state of an admitted member.

Link copied to clipboard
data class Member(val id: PeerId, val identity: MemberIdentity, val liveness: Liveness)

An admitted member of a Room.

Link copied to clipboard
data class MemberIdentity(val displayName: String, val sessionId: String, val deviceId: String? = null)

Stable identity for a room member, used for dedup across reconnects.

Link copied to clipboard

Per-member display names tracked with last-writer-wins semantics, backed by LWWMap.

Link copied to clipboard
sealed interface MembershipEvent

Events emitted by Room describing changes to member membership and liveness.

Link copied to clipboard
interface Room

A membership-aware session room built over a us.tractat.kuilt.core.Seam.

Link copied to clipboard

Constants and framing helpers for Room.channel channel views.

Link copied to clipboard
interface RoomFactory

Creates Rooms backed by a us.tractat.kuilt.core.Loom.

Link copied to clipboard
data class RoomFrame(val sender: PeerId, val payload: ByteArray)

A frame received from an admitted Member, tagged with their PeerId.

Link copied to clipboard
class SeamRoomFactory(loom: Loom, scope: CoroutineScope, clock: () -> Instant, heartbeatConfig: HeartbeatConfig = HeartbeatConfig()) : RoomFactory

Loom-backed implementation of RoomFactory.

Link copied to clipboard

The role this peer plays in the room.

Functions

Link copied to clipboard
fun <S : Quilted<S>> RoomReplicator(room: Room, id: String, initial: S, stateSerializer: KSerializer<S>, scope: CoroutineScope, config: QuilterConfig = QuilterConfig()): Quilter<S>

Creates a Quilter over Room.channel(id) in one call.