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 Event
s, 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.12"
Re-exports§
Modules§
- Special module that re-exports most public items from this crate.
- builder
builder
A set of builders used to make using methods on certain structs simpler to use. - cache
cache
A cache containing data received fromShard
s. - client
client
A module forClient
and supporting types. - collector
collector
- A set of constants used by the library.
- framework
framework
The framework is a customizable method of separating commands. - gateway
gateway
The gateway module contains the pieces - primarily theShard
- responsible for maintaining a WebSocket connection with Discord. - http
http
The HTTP module which provides functions for performing requests to endpoints in Discord’s API. - interactions_
endpoint interactions_endpoint
Contains tools related to Discord’s Interactions Endpoint URL feature. - 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.
- utils
utils
A set of utilities to help with common use cases that are not required to fully use the library.
Enums§
- A common error enum returned by most of the library’s functionality within a custom
Result
.
Traits§
- An extension trait for
Future
s that provides a variety of convenient adapters.
Type Aliases§
- The common result type between most library functions.