| Crates.io | twilight-gateway-queue |
| lib.rs | twilight-gateway-queue |
| version | 0.16.0 |
| created_at | 2020-10-07 20:07:01.664044+00 |
| updated_at | 2025-01-12 09:48:59.833257+00 |
| description | Discord Gateway connection queue implementation for the Twilight ecosystem. |
| homepage | https://twilight.rs/ |
| repository | https://github.com/twilight-rs/twilight.git |
| max_upload_size | |
| id | 297069 |
| size | 14,335 |
Rate limiting functionality for gateway IDENTIFY commands.
Discord allows bot's shards to send a limited amount of IDENTIFY commands
every 5 seconds, with a daily limit from 1000 to 2000 commands, and invalidates
all shard sessions upon exceeding it. Each identify interval may be filled by
shards' IDs modulo max_concurrency and such a set of shards is called a
bucket. See Discord Docs/Sharding.
To coordinate this, a [Queue] should process each identify request and shards
should wait for its signal to proceed before continuing and otherwise retry. The
provided [InMemoryQueue] never fails or cancels requests and is therefore a
good starting point for custom implementations. It can also be composed to
support multiple processes; see gateway-queue-http and gateway-queue for
a HTTP client and server implementation, respectively.