Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
relay
command
Command relay is the Go port of the Relay (The Lounge fork) backend.
|
Command relay is the Go port of the Relay (The Lounge fork) backend. |
|
internal
|
|
|
auth
Package auth implements local password auth, sessions, WebAuthn, and OIDC login.
|
Package auth implements local password auth, sessions, WebAuthn, and OIDC login. |
|
changelog
Package changelog polls for new releases and notifies connected clients.
|
Package changelog polls for new releases and notifies connected clients. |
|
clientcert
Package clientcert generates and manages per-network client TLS certificates for SASL EXTERNAL.
|
Package clientcert generates and manages per-network client TLS certificates for SASL EXTERNAL. |
|
config
Package config loads and layers the server configuration (embedded defaults, config.yaml, admin-overrides.json, CLI overrides).
|
Package config loads and layers the server configuration (embedded defaults, config.yaml, admin-overrides.json, CLI overrides). |
|
emailverifier
Package emailverifier implements email-verified self-registration.
|
Package emailverifier implements email-verified self-registration. |
|
encryption
Package encryption implements Relay's versioned IRC message encryption format.
|
Package encryption implements Relay's versioned IRC message encryption format. |
|
httpapi
Package httpapi is Stage 13's HTTP surface: the Go equivalent of the Express half of server/server.ts (everything that isn't the WebSocket route itself, which internal/session already owns).
|
Package httpapi is Stage 13's HTTP surface: the Go equivalent of the Express half of server/server.ts (everything that isn't the WebSocket route itself, which internal/session already owns). |
|
identd
Package identd implements the RFC1413 identd server and oidentd config generation.
|
Package identd implements the RFC1413 identd server and oidentd config generation. |
|
incommands
Package incommands ports server/plugins/inputs/*.ts: the client-initiated slash commands (/join, /msg, /nick, etc).
|
Package incommands ports server/plugins/inputs/*.ts: the client-initiated slash commands (/join, /msg, /nick, etc). |
|
integration
Package integration provides end-to-end test harnesses that boot a real server and drive it over WebSocket.
|
Package integration provides end-to-end test harnesses that boot a real server and drive it over WebSocket. |
|
ircbridge
Package ircbridge wraps the external irc.Connection with multi-subscriber fan-out for the bouncer's per-network event stream.
|
Package ircbridge wraps the external irc.Connection with multi-subscriber fan-out for the bouncer's per-network event stream. |
|
irchandlers
Package irchandlers ports server/plugins/irc-events/*.ts: the reactive logic that turns events off an ircbridge.Bridge into Network/Chan/User state changes, constructed Msg values pushed through Chan.PushMessage, and any additional hub broadcasts a Node handler emits directly via `client.emit(...)`.
|
Package irchandlers ports server/plugins/irc-events/*.ts: the reactive logic that turns events off an ircbridge.Bridge into Network/Chan/User state changes, constructed Msg values pushed through Chan.PushMessage, and any additional hub broadcasts a Node handler emits directly via `client.emit(...)`. |
|
model
Package model defines the Network, Chan, Msg, User, and Prefix domain types.
|
Package model defines the Network, Chan, Msg, User, and Prefix domain types. |
|
netguard
Package netguard provides safe outbound HTTP primitives for server-side fetches to user-controlled URLs.
|
Package netguard provides safe outbound HTTP primitives for server-side fetches to user-controlled URLs. |
|
packages
Package packages implements `relay install`/`uninstall`/`upgrade`/`outdated`: fetch-extract-verify installation of theme packages, with no transitive dependency resolution (there is no Go equivalent of npm's dependency graph, and per the migration plan's decision, no equivalent of Node's generic onServerStart plugin API either - Go has no safe, portable way to dynamically load arbitrary third-party code the way Node's import() does, so an "installed package" here is always a theme).
|
Package packages implements `relay install`/`uninstall`/`upgrade`/`outdated`: fetch-extract-verify installation of theme packages, with no transitive dependency resolution (there is no Go equivalent of npm's dependency graph, and per the migration plan's decision, no equivalent of Node's generic onServerStart plugin API either - Go has no safe, portable way to dynamically load arbitrary third-party code the way Node's import() does, so an "installed package" here is always a theme). |
|
partyline
Package partyline implements the server-side synthetic cross-account chat feature (partyline.ts): a virtual, IRC-less "network" every local account gets, whose one channel fans messages/reactions out to every other local account instead of an IRC server.
|
Package partyline implements the server-side synthetic cross-account chat feature (partyline.ts): a virtual, IRC-less "network" every local account gets, whose one channel fans messages/reactions out to every other local account instead of an IRC server. |
|
pathutil
Package pathutil holds small filesystem-path helpers shared across internal packages that otherwise have no reason to depend on each other.
|
Package pathutil holds small filesystem-path helpers shared across internal packages that otherwise have no reason to depend on each other. |
|
prefetchstore
Package prefetchstore ports storage.ts: a generic, content-hash-deduped file store.
|
Package prefetchstore ports storage.ts: a generic, content-hash-deduped file store. |
|
publicmode
Package publicmode centralizes the public-mode security gates shared across subsystems.
|
Package publicmode centralizes the public-mode security gates shared across subsystems. |
|
session
Package session is Stage 11's socket-event contract wiring: the Go equivalent of server/client.ts plus the per-connection portion of server/server.ts (everything from `sockets.on("connect", ...)` down to the individual `socket.on(...)` handler bodies).
|
Package session is Stage 11's socket-event contract wiring: the Go equivalent of server/client.ts plus the per-connection portion of server/server.ts (everything from `sockets.on("connect", ...)` down to the individual `socket.on(...)` handler bodies). |
|
shortlinks
Package shortlinks implements the embedded link-shortener service.
|
Package shortlinks implements the embedded link-shortener service. |
|
store
Package store defines the shared shape internal/store/sqlite, internal/store/postgres, and internal/store/textlog implement, mirroring server/plugins/ messageStorage/types.d.ts's MessageStorage/SearchableMessageStorage interfaces.
|
Package store defines the shared shape internal/store/sqlite, internal/store/postgres, and internal/store/textlog implement, mirroring server/plugins/ messageStorage/types.d.ts's MessageStorage/SearchableMessageStorage interfaces. |
|
store/cleaner
Package cleaner implements the background message-retention cleanup job.
|
Package cleaner implements the background message-retention cleanup job. |
|
store/postgres
Package postgres implements shared PostgreSQL-backed message storage.
|
Package postgres implements shared PostgreSQL-backed message storage. |
|
store/sqlite
Package sqlite implements sqlite-backed message storage and migrations.
|
Package sqlite implements sqlite-backed message storage and migrations. |
|
store/textlog
Package textlog implements write-only human-readable per-channel log files.
|
Package textlog implements write-only human-readable per-channel log files. |
|
sts
Package sts persists IRCv3 Strict Transport Security policies.
|
Package sts persists IRCv3 Strict Transport Security policies. |
|
themes
Package themes implements theme discovery, installation, and custom theme uploads.
|
Package themes implements theme discovery, installation, and custom theme uploads. |
|
uploads
Package uploads implements token-authenticated file upload handling.
|
Package uploads implements token-authenticated file upload handling. |
|
version
Package version holds the Go backend's own release version, mirroring scripts/version.js's pkg.version (package.json is the Node build's source of truth; this package is the Go build's).
|
Package version holds the Go backend's own release version, mirroring scripts/version.js's pkg.version (package.json is the Node build's source of truth; this package is the Go build's). |
|
webpush
Package webpush implements VAPID-based web push notification delivery.
|
Package webpush implements VAPID-based web push notification delivery. |
|
wsproto
Package wsproto implements the custom WebSocket envelope protocol that replaces Socket.IO.
|
Package wsproto implements the custom WebSocket envelope protocol that replaces Socket.IO. |
Click to show internal directories.
Click to hide internal directories.