Directories
¶
| Path | Synopsis |
|---|---|
|
Package taskflow defines the stable action and mission contracts used by game runtimes.
|
Package taskflow defines the stable action and mission contracts used by game runtimes. |
|
Package ai defines entity-aware AI strategy boundaries.
|
Package ai defines entity-aware AI strategy boundaries. |
|
Package attribute is the framework's half of the attribute system: the identifiers, the metadata, the profile contract and the container that holds a subject's layers.
|
Package attribute is the framework's half of the attribute system: the identifiers, the metadata, the profile contract and the container that holds a subject's layers. |
|
cmd
|
|
|
glsvet
command
glsvet enforces the Nest handler concurrency boundary and also flags calls to goroutine-bound framework APIs from general `go` statements.
|
glsvet enforces the Nest handler concurrency boundary and also flags calls to goroutine-bound framework APIs from general `go` statements. |
|
codegen
|
|
|
cmd/attribute
command
|
|
|
cmd/cfggen
command
|
|
|
cmd/dao
command
|
|
|
cmd/entity
command
|
|
|
cmd/errcode
command
|
|
|
cmd/eventgen
command
|
|
|
cmd/nest
command
|
|
|
cmd/project
command
|
|
|
cmd/protocol
command
|
|
|
cmd/roost
command
|
|
|
cmd/servicerpc
command
|
|
|
cmd/tablegen
command
|
|
|
cmd/webroute
command
|
|
|
internal/cfggen
cfggen generates roost-core/configdata bindings from a schema meta file — a deliberately small, Luban-like pipeline: the meta file is the single hand-written artifact, everything Go (row structs, registration, typed snapshot accessors) is generated.
|
cfggen generates roost-core/configdata bindings from a schema meta file — a deliberately small, Luban-like pipeline: the meta file is the single hand-written artifact, everything Go (row structs, registration, typed snapshot accessors) is generated. |
|
internal/dao
tool/dao generates DAO accessor code (setters, marshal/unmarshal, DaoInterface).
|
tool/dao generates DAO accessor code (setters, marshal/unmarshal, DaoInterface). |
|
internal/entity
tool/entity generates entity factory, snapshot, and wiring code.
|
tool/entity generates entity factory, snapshot, and wiring code. |
|
internal/eventgen
tool/eventgen generates event type constants, Type() methods, and handler dispatch code.
|
tool/eventgen generates event type constants, Type() methods, and handler dispatch code. |
|
internal/genutil
Package genutil holds the small helpers every generator shares.
|
Package genutil holds the small helpers every generator shares. |
|
internal/marker
Package marker is the single definition of the source-comment markers the generators read (//roost:entity, //roost:dao, //roost:register, ...).
|
Package marker is the single definition of the source-comment markers the generators read (//roost:entity, //roost:dao, //roost:register, ...). |
|
internal/nest
tool/nest generates invoke wrappers, sender functions, and explicit registration for the nest dispatch framework.
|
tool/nest generates invoke wrappers, sender functions, and explicit registration for the nest dispatch framework. |
|
internal/project
Package project discovers Go module metadata needed by code generators.
|
Package project discovers Go module metadata needed by code generators. |
|
internal/registry
Package registry scans a project for //roost:register markers and generates the single aggregate that performs every static registration.
|
Package registry scans a project for //roost:register markers and generates the single aggregate that performs every static registration. |
|
internal/roost/cmd/attributeruntime
command
Command attributeruntime prints the attribute feature's runtime file for a package name.
|
Command attributeruntime prints the attribute feature's runtime file for a package name. |
|
internal/servicerpc
Package servicerpc generates the bus transport for a service interface: wire types, handler registration, a typed client, and the capability wrappers a Mod publishes.
|
Package servicerpc generates the bus transport for a service interface: wire types, handler registration, a typed client, and the capability wrappers a Mod publishes. |
|
internal/tablegen
tool/tablegen builds Roost business config artifacts from Go table metadata.
|
tool/tablegen builds Roost business config artifacts from Go table metadata. |
|
internal/webroute
roost webroute generates HTTP route registrations from //roost:web markers.
|
roost webroute generates HTTP route registrations from //roost:web markers. |
|
Package dataengine defines the durable, infrastructure-neutral transaction model shared by Nest, WAL implementations, projectors, loaders, and codegen.
|
Package dataengine defines the durable, infrastructure-neutral transaction model shared by Nest, WAL implementations, projectors, loaders, and codegen. |
|
Package demo carries the `roost project new … -template game-demo` sources.
|
Package demo carries the `roost project new … -template game-demo` sources. |
|
Package gateway defines transport-neutral request boundary contracts.
|
Package gateway defines transport-neutral request boundary contracts. |
|
kit
|
|
|
manager
Package manager provides ManagerMod, the app.Mod that owns a service's in-memory singleton managers.
|
Package manager provides ManagerMod, the app.Mod that owns a service's in-memory singleton managers. |
|
mods
Package servicemods holds the app.ModName constants for every service in this repository, and the small helpers their Mods share.
|
Package servicemods holds the app.ModName constants for every service in this repository, and the small helpers their Mods share. |
|
nest
Package nest provides app.Mod wiring for the core Nest execution engine.
|
Package nest provides app.Mod wiring for the core Nest execution engine. |
|
service/account
Package account is the account and role directory: it maps a channel identity to an account, owns the roles under it, and issues role session tokens.
|
Package account is the account and role directory: it maps a channel identity to an account, owns the roles under it, and issues role session tokens. |
|
service/chat
Package chat is the messaging service: a sender publishes a message into a channel, and a reader pages that channel's recent history.
|
Package chat is the messaging service: a sender publishes a message into a channel, and a reader pages that channel's recent history. |
|
service/directory
Package directory is the reserve/commit/cancel primitive behind globally unique names and exclusive membership.
|
Package directory is the reserve/commit/cancel primitive behind globally unique names and exclusive membership. |
|
service/examples/split
Package split shows the two sides of a split deployment, and shows that the business code between them is the same code.
|
Package split shows the two sides of a split deployment, and shows that the business code between them is the same code. |
|
service/global
Package global is the cross-server coordination service: it owns which global group a game server belongs to, and the liveness lease each game server holds.
|
Package global is the cross-server coordination service: it owns which global group a game server belongs to, and the liveness lease each game server holds. |
|
service/integration
Package integration holds the cross-service tests that run against real backends.
|
Package integration holds the cross-service tests that run against real backends. |
|
service/mail
Package mail is the assembly half of the mail service: the Mail RPC interface, its generated transport, the Mod that reads configuration and wires Redis, and the server run loop.
|
Package mail is the assembly half of the mail service: the Mail RPC interface, its generated transport, the Mod that reads configuration and wires Redis, and the server run loop. |
|
service/match
The match domain — types, error codes, the ticket state machine, the Redis store and the Grouping policies — lives in roost-core/service/match since M-06 (ARCH-01: core implements, kit assembles).
|
The match domain — types, error codes, the ticket state machine, the Redis store and the Grouping policies — lives in roost-core/service/match since M-06 (ARCH-01: core implements, kit assembles). |
|
service/platform
Package platform is the channel-facing edge: it turns a channel credential into a session, and a payment provider's callback into exactly one delivery.
|
Package platform is the channel-facing edge: it turns a channel credential into a session, and a payment provider's callback into exactly one delivery. |
|
service/rank
Package rank is a leaderboard service: submit a score, read a page, read one owner's rank, archive a season.
|
Package rank is a leaderboard service: submit a score, read a page, read one owner's rank, archive a season. |
|
service/servicemetrics
Package servicemetrics re-exports roost-core/servicemetrics: the reporting seam every kit service takes as a collaborator.
|
Package servicemetrics re-exports roost-core/servicemetrics: the reporting seam every kit service takes as a collaborator. |
|
service/session
Package session is the assembly half of the session service: the Session RPC interface, its generated transport, the Mod and the server run loop.
|
Package session is the assembly half of the session service: the Session RPC interface, its generated transport, the Mod and the server run loop. |
|
Package lockstep binds roost-core/lockstep (deterministic input-frame synchronization) to rooms and transports: a Room owns one match's sequencer, frame history, redundant broadcast encoder and desync detector, broadcasts cut frames to attached sessions over the datagram lane (loss is healed by frame redundancy, never by retransmission), and pages catch-up frames to reconnecting sessions over the reliable lane (KCP, QUIC or the AEAD UDP transport via the replication package's senders).
|
Package lockstep binds roost-core/lockstep (deterministic input-frame synchronization) to rooms and transports: a Room owns one match's sequencer, frame history, redundant broadcast encoder and desync detector, broadcasts cut frames to attached sessions over the datagram lane (loss is healed by frame redundancy, never by retransmission), and pages catch-up frames to reconnecting sessions over the reliable lane (KCP, QUIC or the AEAD UDP transport via the replication package's senders). |
|
Package manager is the lifecycle engine for a service's in-memory singleton managers: dependency-ordered start, reverse-order stop, rollback of only the managers that actually started, and a shutdown that can abort a start still in progress.
|
Package manager is the lifecycle engine for a service's in-memory singleton managers: dependency-ordered start, reverse-order stop, rollback of only the managers that actually started, and a shutdown that can abort a start still in progress. |
|
mongotest
Package mongotest is a filter-evaluating in-memory MongoDB for tests.
|
Package mongotest is a filter-evaluating in-memory MongoDB for tests. |
|
Package nestwal provides a single-writer segmented commit log for Nest transactions.
|
Package nestwal provides a single-writer segmented commit log for Nest transactions. |
|
Package replication contains reusable transport-side building blocks for roost-core/replication.
|
Package replication contains reusable transport-side building blocks for roost-core/replication. |
|
Package robot plugs the kit's transports and lockstep client machinery into the roost-core robot framework: KCP/QUIC dialers registered through transport.RegisterDialer, and a LockstepBot that consumes redundant frame broadcasts, submits inputs, and reports keyframe hashes — the client half of the kit lockstep Room, usable both for desync regression tests and for lockstep load testing.
|
Package robot plugs the kit's transports and lockstep client machinery into the roost-core robot framework: KCP/QUIC dialers registered through transport.RegisterDialer, and a LockstepBot that consumes redundant frame broadcasts, submits inputs, and reports keyframe hashes — the client half of the kit lockstep Room, usable both for desync regression tests and for lockstep load testing. |
|
action
Package action hosts the robot's named blocking actions.
|
Package action hosts the robot's named blocking actions. |
|
loadtest
Package loadtest is the robot load-test control plane: a single-active-run state machine with profile selection, ring history, admin commands, SLO thresholds and an in-process report.
|
Package loadtest is the robot load-test control plane: a single-active-run state machine with profile selection, ring history, admin commands, SLO thresholds and an in-process report. |
|
protocol
Package protocol maps message ids to encoders and decoders.
|
Package protocol maps message ids to encoders and decoders. |
|
runner
Package runner schedules robots: goroutine-per-bot with k6-style executors.
|
Package runner schedules robots: goroutine-per-bot with k6-style executors. |
|
scenario
Package scenario is the robot's blocking behavior tree: small composable nodes driving named actions.
|
Package scenario is the robot's blocking behavior tree: small composable nodes driving named actions. |
|
session
Package session multiplexes one robot connection: request/response correlation by packet seq, one-shot push waiters, and standing push handlers, with idempotent close fan-out.
|
Package session multiplexes one robot connection: request/response correlation by packet seq, one-shot push waiters, and standing push handlers, with idempotent close fan-out. |
|
transport
Package transport is the robot client's wire layer: a Packet framing shared by TCP and WebSocket (length-prefixed, little-endian), the Conn abstraction, and pluggable dialers.
|
Package transport is the robot client's wire layer: a Packet framing shared by TCP and WebSocket (length-prefixed, little-endian), the Conn abstraction, and pluggable dialers. |
|
Package safemap provides the concurrent map implementations used by generated DAO collections and framework registries.
|
Package safemap provides the concurrent map implementations used by generated DAO collections and framework registries. |
|
Package saga provides the storage-independent orchestration state machine for durable business operations spanning multiple transaction domains.
|
Package saga provides the storage-independent orchestration state machine for durable business operations spanning multiple transaction domains. |
|
service
|
|
|
mail
Package mail is the mailbox service: envelopes with optional attachments, per-player read/claim state, and the three-phase claim that hands an attachment to a caller exactly once.
|
Package mail is the mailbox service: envelopes with optional attachments, per-player read/claim state, and the three-phase claim that hands an attachment to a caller exactly once. |
|
match
Package match is matchmaking: subjects queue for a mode, the service groups them, and a group becomes a match exactly once.
|
Package match is matchmaking: subjects queue for a mode, the service groups them, and a group becomes a match exactly once. |
|
session
Package session is the bounded-run primitive extracted from a dungeon instance service: one owner enters a run, the run has a deadline, it reaches a terminal state, and the resources it allocated are released exactly once.
|
Package session is the bounded-run primitive extracted from a dungeon instance service: one owner enters a run, the run has a deadline, it reaches a terminal state, and the resources it allocated are released exactly once. |
|
Package servicemetrics is the reporting seam every service in this repository uses.
|
Package servicemetrics is the reporting seam every service in this repository uses. |
|
Package servicerpc is the client half of service-to-service RPC over the framework bus: typed calls, etcd-backed instance selection, a transport choice between the lightweight and JetStream paths, and the stable response status convention services answer with.
|
Package servicerpc is the client half of service-to-service RPC over the framework bus: typed calls, etcd-backed instance selection, a transport choice between the lightweight and JetStream paths, and the stable response status convention services answer with. |
|
Package skill is roost-skill's stable public compiler and deterministic runtime API.
|
Package skill is roost-skill's stable public compiler and deterministic runtime API. |
|
combat
Package combat is the reusable combat content battery for roost-skill hosts: attribute sets, buff containers, and the twelve-stage damage pipeline, all in deterministic fixed-point integer math (amounts in raw units, rates in basis points where 10000 = 100%).
|
Package combat is the reusable combat content battery for roost-skill hosts: attribute sets, buff containers, and the twelve-stage damage pipeline, all in deterministic fixed-point integer math (amounts in raw units, rates in basis points where 10000 = 100%). |
|
combatcomponent
Package combatcomponent wires the combat content battery into roost-core entities: the CombatDao holds the authoritative combat state behind a dataengine.Tracker, and the CombatComponent exposes mutators that are transaction-safe inside nest handlers — every mutation records its inverse with nest.RecordUndo and marks field-level dirty bits, so a rolled-back handler leaves the entity byte-identical and persistence sees exactly what committed.
|
Package combatcomponent wires the combat content battery into roost-core entities: the CombatDao holds the authoritative combat state behind a dataengine.Tracker, and the CombatComponent exposes mutators that are transaction-safe inside nest handlers — every mutation records its inverse with nest.RecordUndo and marks field-level dirty bits, so a rolled-back handler leaves the entity byte-identical and persistence sees exactly what committed. |
|
skillcompose
Package skillcompose builds and validates authority-bound contracts for composing compiled skill programs.
|
Package skillcompose builds and validates authority-bound contracts for composing compiled skill programs. |
|
skillsync
Package skillsync projects skill runtime data onto roost-core's ordered, transport-neutral syncstream envelopes.
|
Package skillsync projects skill runtime data onto roost-core's ordered, transport-neutral syncstream envelopes. |
|
Package spatial provides game-agnostic two-dimensional integer-grid primitives without entity, scene, protocol, or gameplay dependencies.
|
Package spatial provides game-agnostic two-dimensional integer-grid primitives without entity, scene, protocol, or gameplay dependencies. |
|
Package syncstream adapts roost-core/syncstream packets to roost-kit sync transports with observer isolation, confirmed publishing, compression, fragmentation, checksums, and bounded reassembly.
|
Package syncstream adapts roost-core/syncstream packets to roost-kit sync transports with observer isolation, confirmed publishing, compression, fragmentation, checksums, and bounded reassembly. |
|
Package versionstore is the contract for state whose every mutation is version-checked, plus a Redis and an in-memory implementation.
|
Package versionstore is the contract for state whose every mutation is version-checked, plus a Redis and an in-memory implementation. |
|
Package webroute contains the runtime support used by generated HTTP routes.
|
Package webroute contains the runtime support used by generated HTTP routes. |
Click to show internal directories.
Click to hide internal directories.