Arkrissym / Discord.CPP

Discord.CPP is a C++ library for interaction with the Discord API.
MIT License
58 stars 8 forks source link
discord discord-api discord-cpp discord-library

Discord.CPP Build Status Code Quality

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)