A flexible, performant, and thread-safe Discord API wrapper for Go, providing 100% one-to-one implementation of Discord's API.
Disgo is a Discord API wrapper (SDK client) written in Go that enables developers to build Discord bots with a complete, performant, and thread-safe implementation of Discord's API. It solves the problem of accessing Discord's features reliably and efficiently, offering automatic gateway intent calculation, selective event processing, and comprehensive rate limiting.
Go developers who want to create Discord bots with full control over API interactions, requiring high performance, concurrency safety, and scalability.
Developers choose Disgo for its 100% one-to-one implementation of the Discord API, superior performance due to Go's goroutines and channels, and extensive customization options like optional caching, sharding, and logging without using reflection.
Disgo is the next generation of Discord API Consumption. Create a Discord Bot with Go using this Discord API Wrapper (SDK Client).
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Disgo implements every Discord API feature, including all rate limits and events, providing a 100% one-to-one mapping as highlighted in the README's 'What is Disgo?' section.
Leverages Go's goroutines and channels for async handling, with code generation and field alignment to reduce memory footprint and server costs, as noted in the 'Why Go?' and CPU sections.
Offers optional caching, sharding, rate limiting, and logging that can be replaced or customized, such as using Redis for caching, detailed in the 'Caching' and 'Sharding' sections.
Ensures safe concurrent usage with data race detection and no reflection or type assertion, making it reliable for handling multiple events simultaneously, as stated in the key features.
Requires manual configuration of clients, sessions, and handlers, which can be overwhelming for developers unfamiliar with Discord's API abstractions, despite the detailed examples.
Focuses on low-level API access without built-in command frameworks or middleware, forcing developers to implement common bot patterns from scratch, adding to development time.
While comprehensive, the documentation is spread across multiple linked files (e.g., concepts folders), making it less accessible for quick troubleshooting compared to consolidated guides.