Crux - Umbrella Repository
This repository is responsible for generating the umbrella documentation available here: https://crux.randomly.space
Handles Discord's sharded gateway api, including reconnecting, zombie connections, and ratelimiting.
Forwards normalized packets as maps with atom keys via gen_stage producers. (One per shard)
Handles Discord's RESTful bot api, including queues, rate limits, and retries.
Crux.Structs directly. (Blocks calling process when rate limited)
Provides Elixir Structs for Discord's api objects, as well as helper structs.
Provides caches to add, fetch, update, and remove
Also provides a behaviour to implement custom caches which may override the default ones. (For example using redis instead of ets)