How sinisterrectus/discordia works
Discordia is a Lua library for building Discord bots: applications use its event-driven Client, which communicates asynchronously with Discord over REST and WebSockets and exposes a high-level object interface. The tree also shows voice support, including connections and audio streams. Relationships are limited to the README’s documented capabilities and the tree’s module names; source excerpts were unavailable, so internal call wiring is not asserted.
Main entry points: Client.lua Client · VoiceConnection.lua Voice connection · EventHandler.lua Event handling · API.lua REST API
Components 18
Client and events
- Client
libs/client/Client.lua - Event handling
libs/client/EventHandler.lua
Discord interface
Objects and state
- Resolver
libs/client/Resolver.lua - Discord objects
libs/containers - Message
libs/containers/Message.lua - Iterables and caches
libs/iterables
Voice and audio
- Voice manager
libs/voice/VoiceManager.lua - Voice connection
libs/voice/VoiceConnection.lua - Voice socket
libs/voice/VoiceSocket.lua - Audio streams
libs/voice/streams - Opus support
libs/voice/opus.lua - Sodium support
libs/voice/sodium.lua
Other components
- Bot application
- Discord service
Connections 19
- Bot application → Client: uses
- Client → Discord service: REST communication
- Client → Discord service: WebSocket communication
- Bot application → Event handling: registers handlers
- Event handling → Bot application: dispatches events
- Bot application → REST API: requests API actions
- REST API → Discord service: HTTP requests
- Client → WebSocket: WebSocket I/O
- Client → Shard: supports sharding
- Bot application → Discord objects: uses objects
- Bot application → Message: reads messages
- Client → Resolver: resolves objects
- Client → Iterables and caches: uses collections
- Client → Voice manager: voice support
- Voice manager → Voice connection: manages connections
- Voice connection → Voice socket: voice transport
- Voice connection → Audio streams: processes audio
- Audio streams → Opus support: codec support
- Voice socket → Sodium support: crypto support