Expand description
Serenity is a Rust library for the Discord API.
View the examples on how to make and structure a bot.
Serenity supports bot user authentication via the use of Client::builder.
Once logged in, you may add handlers to your client to dispatch Events,
such as EventHandler::message. This will cause your handler to be called
when a Event::MessageCreate is received. Each handler is given a
Context, giving information about the event. See the
client’s module-level documentation.
The Shard is transparently handled by the library, removing
unnecessary complexity. Sharded connections are automatically handled for
you. See the gateway’s documentation for more information.
A Cache is also provided for you. This will be updated automatically for
you as data is received from the Discord API via events. When calling a
method on a Context, the cache will first be searched for relevant data
to avoid unnecessary HTTP requests to the Discord API. For more information,
see the cache’s module-level documentation.
Note that, although this documentation will try to be as up-to-date and accurate as possible, Discord hosts official documentation. If you need to be sure that some information piece is sanctioned by Discord, refer to their own documentation.
Full Examples
Full examples, detailing and explaining usage of the basic functionality of the
library, can be found in the examples directory.
Installation
Add the following to your Cargo.toml file:
[dependencies]
serenity = "0.11"Re-exports
Modules
builderA set of builders used to make using methods on certain structs simpler to use.
clientThe Client contains information about a single bot’s token, as well
as event handlers. Dispatching events to configured handlers and starting
the shards’ connections are handled directly via the client. In addition,
the http module and Cache are also automatically handled by the
Client module for you.
collectorCollectors will receive events from the contextual shard, check if the filter lets them pass, and collects if the receive, collect, or time limits are not reached yet.
A set of constants used by the library.
frameworkThe framework is a customizable method of separating commands.
gatewayThe gateway module contains the pieces - primarily the Shard -
responsible for maintaining a WebSocket connection with Discord.
httpThe HTTP module which provides functions for performing requests to endpoints in Discord’s API.
This module exports different types for JSON interactions. It encapsulates the differences between serde_json and simd-json to allow ignoring those in the rest of the codebase.
Mappings of objects received from the API, with optional helper methods for ease of use.
A set of exports which can be helpful to use.
utilsA set of utilities to help with common use cases that are not required to fully use the library.
Structs
clientEnums
Traits
An extension trait for Futures that provides a variety of convenient
adapters.
Type Definitions
The common result type between most library functions.