9 releases (breaking)
Uses old Rust 2015
0.8.1 | Jan 2, 2021 |
---|---|
0.8.0 | Mar 25, 2017 |
0.7.0 | Nov 4, 2016 |
0.6.0 | Jun 30, 2016 |
0.1.0 | Nov 27, 2015 |
#1780 in Web programming
211 downloads per month
Used in dishub
210KB
4.5K
SLoC
discord-rs
Note: the current crates.io version of discord-rs requires an old version of OpenSSL and will likely not compile for you. Use a Git dependency instead:
[dependencies] discord = { git = "https://github.com/SpaceManiac/discord-rs" }
discord-rs is a Rust client library for the Discord chat client's API.
The Discord API can be divided into three main components: the RESTful API to which calls can be made to take actions, a websocket-based permanent connection over which state updates are received, and the voice calling system.
Log in to Discord with Discord::new
, new_cache
, or from_bot_token
as
appropriate. The resulting value can be used to make REST API calls to post
messages and manipulate Discord state. Calling connect()
will open a
websocket connection, through which events can be received. These two channels
are enough to write a simple chatbot which can read and respond to messages.
For more in-depth tracking of Discord state, a State
can be seeded with
the ReadyEvent
obtained when opening a Connection
and kept updated with
the events received over it.
To join voice servers, call Connection::voice
to get a VoiceConnection
and use connect
to join a channel, then play
and stop
to control
playback. Manipulating deaf/mute state and receiving audio are also possible.
For further details, browse the source or read the documentation. For examples, browse the examples directory.
Installation
On Windows, discord-rs currently requires a GNU-like environment. For details, read the installation guide.
On all platforms, discord-rs has several system dependencies, which should be installed as appropriate:
pkg-config
openssl
libsodium
(if using voice)opus
(if using voice)ffmpeg
(if using ffmpeg features)youtube-dl
(if using youtube-dl features)
Dependencies
~9–14MB
~253K SLoC