Discord.CPP
Discord.CPP or Discord.C++ is a C++ library for interaction with the Discord API.
Documentation
Doxygen-generated documentation is available here.
Dependencies
The communication with Discord is build around boost-beast(using certify to handle certificates) and nlohman-json. \
Libsodium and libopus are needed to encrypt voice data.
Features
The library is still in an early state of development, so many features are missing but will be added somewhere in the future.
However below is an overview of features based on Discord's library comparision table.
REST API
Channel management
Feature |
working? |
Create |
No |
Delete |
Yes |
DM |
Yes |
History |
Yes |
Info |
Read-only |
Permission |
No |
Invites
Feature |
working? |
Create |
No |
Delete |
No |
Info |
No |
Join |
No |
Message management
Feature |
working? |
Send |
Yes |
Send File |
No |
Edit |
Yes |
Delete |
Yes |
Role management
Feature |
working? |
Create |
No |
Delete |
No |
Edit |
No |
Info |
No |
Server management
Feature |
working? |
Create |
No |
Delete |
Yes |
Edit |
No |
Info |
Yes |
Kick |
Yes |
Ban |
Yes |
Unban |
Yes |
Ban List |
No |
Change owner |
No |
User management
Feature |
working? |
Manage Nicknames |
No |
Move Users in Voicechannels |
No |
Mute/Defean Users |
No |
Other
Feature |
working? |
Edit Profile |
No |
Send typing |
No |
Gateway
Sharding
Feature |
working? |
Manual sharding |
Yes |
Auto sharding |
Yes |
Channel Events
Event |
handled? |
Create |
Yes |
Delete |
Yes |
Update |
Yes |
Message Events
Event |
handled? |
Receive |
Yes |
Delete |
No |
Update |
No |
Role Events
Event |
handled? |
Create |
No |
Delete |
No |
Update |
No |
Presence
Feature |
working? |
Receive |
No |
Send |
Yes |
Server Events
Event |
handled? |
Create |
Yes |
Delete |
Yes |
Update |
Yes |
Ban |
Yes |
Unban |
Yes |
User Events
Event |
handled? |
Join |
Yes |
Leave |
Yes |
Typing |
Yes |
Voice
Feature |
working? |
Receive |
No |
Send |
Yes |
Multi-Server |
Yes(not tested yet) |
State Update |
Partial(only the bot user) |