{"id":15042151,"url":"https://github.com/brainboxdotcc/dpp","last_synced_at":"2025-05-14T06:12:49.163Z","repository":{"id":36999852,"uuid":"351512090","full_name":"brainboxdotcc/DPP","owner":"brainboxdotcc","description":"C++ Discord API Bot Library - D++ is Lightweight and scalable for small and huge bots!","archived":false,"fork":false,"pushed_at":"2025-04-06T20:43:19.000Z","size":46534,"stargazers_count":1167,"open_issues_count":3,"forks_count":168,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-04-11T20:59:21.895Z","etag":null,"topics":["api","api-client","api-wrapper","cpp","discord","discord-api","discord-api-v10","discord-api-wrapper","discord-bot","docker","dpp","etf","hacktoberfest","json","library","linux","osx","ssl","websocket","windows"],"latest_commit_sha":null,"homepage":"https://dpp.dev/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brainboxdotcc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://www.paypal.com/donate?hosted_button_id=ZP76Y5J24WLMU"]}},"created_at":"2021-03-25T16:56:53.000Z","updated_at":"2025-04-11T12:03:31.000Z","dependencies_parsed_at":"2024-03-07T07:46:42.284Z","dependency_job_id":"8b959b6c-e184-4b7d-b19e-e5e66edb46d3","html_url":"https://github.com/brainboxdotcc/DPP","commit_stats":{"total_commits":3321,"total_committers":117,"mean_commits":"28.384615384615383","dds":0.4667268894911172,"last_synced_commit":"2b39724765fb73135de4415cec448c77755641eb"},"previous_names":[],"tags_count":62,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainboxdotcc%2FDPP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainboxdotcc%2FDPP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainboxdotcc%2FDPP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainboxdotcc%2FDPP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brainboxdotcc","download_url":"https://codeload.github.com/brainboxdotcc/DPP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248480436,"owners_count":21110936,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-client","api-wrapper","cpp","discord","discord-api","discord-api-v10","discord-api-wrapper","discord-bot","docker","dpp","etf","hacktoberfest","json","library","linux","osx","ssl","websocket","windows"],"created_at":"2024-09-24T20:46:54.931Z","updated_at":"2025-04-11T20:59:43.336Z","avatar_url":"https://github.com/brainboxdotcc.png","language":"C++","readme":"\u003cdiv align=\"center\"\u003e\u003cimg src=\"docpages/DPP-markdown-logo.png\" alt=\"DPP\"/\u003e\n\u003ch3\u003eAn incredibly lightweight C++ Discord library\u003c/h3\u003e\n\u003cbr /\u003e\n\n[![Discord](https://img.shields.io/discord/825407338755653642?style=flat)](https://discord.gg/dpp)\n![Downloads](https://dl.dpp.dev/dlcount.php)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/39b054c38bba411d9b25b39524016c9e)](https://app.codacy.com/gh/brainboxdotcc/DPP/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade) [![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/7726/badge)](https://bestpractices.coreinfrastructure.org/projects/7726)\n[![D++ CI](https://github.com/brainboxdotcc/DPP/actions/workflows/ci.yml/badge.svg)](https://github.com/brainboxdotcc/DPP/actions/workflows/ci.yml)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/brainboxdotcc/DPP/badge)](https://securityscorecards.dev/viewer/?uri=github.com/brainboxdotcc/DPP)\n[![AUR version](https://img.shields.io/aur/version/dpp)](https://aur.archlinux.org/packages/dpp)\n[![XBPS version](https://repology.org/badge/version-for-repo/void_x86_64/dpp-discord.svg?header=xbps)](https://github.com/void-linux/void-packages/blob/master/srcpkgs/dpp/template)\n[![vcpkg version](https://img.shields.io/vcpkg/v/dpp)](https://vcpkg.io/en/package/dpp)\n[![Conan version](https://img.shields.io/conan/v/dpp)](https://conan.io/center/recipes/dpp?version=)\n[![Homebrew version](https://img.shields.io/homebrew/v/libdpp)](https://formulae.brew.sh/formula/libdpp#default)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n\u003c/div\u003e\n\n\u003chr /\u003e\n\nD++ is a lightweight and efficient library for **Discord** written in **modern C++**, covering as much of the API specification as possible with an **incredibly small memory footprint** even when caching large amounts of data.\n\n### Library Features\n\n* Support for Discord API v10\n* Really small memory footprint\n* Efficient caching system for guilds, channels, guild members, roles, users\n* Sharding and clustering (Many shards, one process: specify the number of shards, or let the library decide)\n* Highly optimised ETF (Erlang Term Format) support for very fast websocket throughput\n* [Slash Commands/Interactions support](https://dpp.dev/slashcommands.html)\n* [Voice support](https://dpp.dev/soundboard.html) (sending **and** receiving audio) with [DAVE](https://daveprotocol.com) End-To-End Encryption\n* The entire Discord API is available for use in the library\n* Stable [Windows support](https://dpp.dev/buildwindows.html)\n* Ready-made compiled packages for Windows, Raspberry Pi (ARM64/ARM7/ARMv6), Debian x86/x64, and RPM based distributions\n* Highly scalable for large amounts of guilds and users\n\nWant to help? Drop me a line or send a PR.\n\nThis library is in use on [TriviaBot](https://triviabot.co.uk/) and [Sporks bot](https://sporks.gg) and many other bots!\n\n## 📚 Documentation\n\nThe documentation is constantly evolving and improving, generated from the code comments and markdown examples using Doxygen.\n\n#### [View the D++ library documentation](https://dpp.dev/)\n\n### Example\n\nThis is a simple ping-pong example using slash commands.\n\n```cpp\n#include \u003cdpp/dpp.h\u003e\n#include \u003ccstdlib\u003e\n\nint main() {\n\tdpp::cluster bot(std::getenv(\"BOT_TOKEN\"));\n\n\tbot.on_slashcommand([](auto event) {\n\t\tif (event.command.get_command_name() == \"ping\") {\n\t\t\tevent.reply(\"Pong!\");\n\t\t}\n\t});\n\n\tbot.on_ready([\u0026bot](auto event) {\n\t\tif (dpp::run_once\u003cstruct register_bot_commands\u003e()) {\n\t\t\tbot.global_command_create(\n\t\t\t\tdpp::slashcommand(\"ping\", \"Ping pong!\", bot.me.id)\n\t\t\t);\n\t\t}\n\t});\n\n\tbot.start(dpp::st_wait);\n\treturn 0;\n}\n```\n\nYou can find more examples in our [example page](https://dpp.dev/example-programs.html).\n\n## 💻 Supported Systems\n\nWe support the following OS families, as long as they are still officially supported by their provider. **We will provide no support for operating systems past end-of-life**.\n\n### Linux\n\nThe library runs ideally on **Linux**.\n\n### Mac OS X, FreeBSD, and OpenBSD\n\nThe library is well-functional and stable on **Mac OS X**, **FreeBSD**, and **OpenBSD** too!\n\n### Raspberry Pi\n\nFor running your bot on a **Raspberry Pi**, we offer a prebuilt .deb package for ARM64, ARM6, and ARM7 so that you do not have to wait for it to compile.\n\n### Windows\n\n**Windows** is well-supported with ready-made compiled DLL and LIB files, please check out our [Windows Bot Template repository](https://github.com/brainboxdotcc/windows-bot-template). The Windows Bot repository can be cloned and integrated immediately into any Visual Studio 2019 and 2022 project in a matter of minutes.\n\n### Other OS\n\nThe library should work fine on other operating systems as well, and if you run a D++ bot on something not listed here, please let us know!\n\n## 🔰 Getting Started\n\n### Installation\n\nD++ can be easily installed using various package managers. Please refer [to our documentation](https://dpp.dev/md_docpages_01_installing.html) for installation tutorials based on your preferred package manager.\n\n### Building from Source\n\nIf you prefer to build the library from source, detailed instructions are available [here](https://dpp.dev/install-from-source.html).\n\n### FAQ\n\nFor frequently asked questions and their answers, please visit our [FAQ page](https://dpp.dev/md_docpages_01_frequently_asked_questions.html).\n\n### Nightly Builds\n\nIf you prefer to use Nightly Builds (This is only if you know what you are doing!) then you can use either our [master nightly builds](https://nightly.link/brainboxdotcc/DPP/workflows/ci/master) or our [dev nightly builds](https://nightly.link/brainboxdotcc/DPP/workflows/ci/dev).\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome. After cloning and setting up the project locally, you can just submit a PR to this repo and it will be deployed once it's accepted.\n\nPlease read the [D++ Code Style Guide](https://dpp.dev/coding-standards.html) for more information on how we format pull requests.\n\n## 💬 Get in touch\n\nIf you have various suggestions, questions or want to discuss things with our community, [Join our discord server](https://discord.gg/dpp)! Make a humorous reference to brains in your nickname to get access to a secret brain cult channel! :)\n\n[![Discord](https://img.shields.io/discord/825407338755653642?style=flat)](https://discord.gg/dpp)\n\n## 💕 Show your support\n\nWe love people's support in growing and improving. Be sure to leave a ⭐️ if you like the project and also be sure to contribute, if you're interested!\n\n## 📂 Dependencies\n\n### Build requirements\n\n* [cmake](https://cmake.org/) (version 3.13+)\n* A supported C++ compiler from the list below\n\n### Supported compilers\n\n* [g++](https://gcc.gnu.org) (version 8 or higher)\n* [clang](https://clang.llvm.org/) (version 6 or higher)\n* AppleClang (12.0 or higher)\n* Microsoft Visual Studio 2019 or 2022 (16.x/17.x)\n* [clang-cl](https://learn.microsoft.com/en-us/cpp/build/clang-support-msbuild) (version 15 or higher)\n\nOther compilers may work (either newer versions of those listed above, or different compilers entirely) but have not been tested by us.\n\n### External Dependencies (You must install these)\n\n* [OpenSSL](https://openssl.org/) (For HTTPS, will use whichever `-dev` package comes with your OS)\n* [zlib](https://zlib.net) (For websocket compression, will use whichever `-dev` package comes with your OS)\n\n#### Optional Dependencies\n\nFor **voice support** you require:\n* [libopus](https://www.opus-codec.org) (For audio encoding/decoding)\n* Note that our **windows zips** come packaged with copies of this library - you do not need to install it yourself!\n\n### Included Dependencies (Packaged with the library)\n\n* [JSON for Modern C++](https://json.nlohmann.me/) (You can bring your own nlohmann::json into D++ by setting a CMAKE flag)\n* [MLS++](https://github.com/cisco/mlspp) (This is statically compiled into the library if voice support is enabled)\n","funding_links":["https://www.paypal.com/donate?hosted_button_id=ZP76Y5J24WLMU"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrainboxdotcc%2Fdpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrainboxdotcc%2Fdpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrainboxdotcc%2Fdpp/lists"}