Skip to content

darui3018823/dgo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,674 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dgo (discordgo Hard Fork)

Go Reference CI

⚠️ Hard Fork Notice

This project (dgo) is a hard fork of bwmarrin/discordgo. It has been renamed and reorganized to serve as an independent library with modern features and critical voice encryption fixes.

Purpose

This fork addresses Discord's voice encryption protocol changes (XChaCha20-Poly1305) and modernizes the codebase with updated linting, CI, and module structure.

Key Changes

  • Renamed to dgo: The package and module name are now dgo.
  • Discord API v10: Updated to the latest Discord API version.
  • Context Support: OpenWithContext and cancellable rate limit waiting.
  • Structured Logging: Uses log/slog for modern, structured logging.
  • Improved Rate Limiter: Supports X-RateLimit-Bucket headers and context cancellation.
  • Modern Go: Requires Go 1.21+, uses io.ReadAll instead of deprecated ioutil.
  • Voice Encryption: Includes critical patches for aead_xchacha20_poly1305_rtpsize.

dgo is a Go package that provides low level bindings to the Discord chat client API.

Contributions and feedback are welcome! Please open an issue or pull request on GitHub.

For general Go discussion, please join the Discord Gophers chat server. For dgo-specific issues, please use GitHub Issues.

Getting Started

Installing

go get github.com/darui3018823/dgo

Usage

Import the package into your project.

import "github.com/darui3018823/dgo"

Construct a new Discord client which can be used to access the variety of Discord API functions and to set callback functions for Discord events.

discord, err := dgo.New("Bot " + "authentication token")

See Documentation and Examples below for more detailed information.

Documentation

  • Go Reference

Contributing

  • First open an issue describing the bug or enhancement so it can be discussed.
  • Try to match current naming conventions as closely as possible.
  • Create a Pull Request with your changes against the master branch.

List of Discord APIs

See this chart for a feature comparison and list of other Discord API libraries.

Special Thanks

Chris Rhodes - For the DiscordGo logo and tons of PRs.

About

(Golang) Go bindings for Discord

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%