C++ wrapper for the Mastodon and Pleroma APIs.
Go to file
tastytea ec41063488
continuous-integration/drone/push Build is passing Details
Add get_new_events().
A more comfortable way to consume stream events.
2020-01-09 12:24:29 +01:00
cmake Add curl as dependency to CMake config and pkg-config recipe. 2020-01-04 11:46:10 +01:00
examples Add get_new_events(). 2020-01-09 12:24:29 +01:00
include Add get_new_events(). 2020-01-09 12:24:29 +01:00
pkg-config Add curl as dependency to CMake config and pkg-config recipe. 2020-01-04 11:46:10 +01:00
src Add get_new_events(). 2020-01-09 12:24:29 +01:00
tests Renamed “Request” to “Connection”. 2020-01-05 09:38:13 +01:00
.drone.yml CI: Compile exmaples. 2020-01-07 09:16:30 +01:00
.editorconfig Add skeleton. 2020-01-03 08:32:03 +01:00
.gitignore Expand git ignores. 2020-01-03 10:20:09 +01:00
CMakeLists.txt Explicitly set NDEBUG for non-debug builds. 2020-01-05 12:45:50 +01:00
CODE_OF_CONDUCT.adoc Add contributing guidelines and COC. 2020-01-03 06:30:29 +01:00
CONTRIBUTING.adoc Add contributing guidelines and COC. 2020-01-03 06:30:29 +01:00
Doxyfile Add documentation. 2020-01-03 11:27:32 +01:00
LICENSE Add license. 2020-01-03 06:29:45 +01:00
README.adoc Fix curl URI. 2020-01-08 22:48:10 +01:00
build_doc.sh Add documentation. 2020-01-03 11:27:32 +01:00

README.adoc

mastodonpp

mastodonpp is a C++ wrapper for the Mastodon API. It replaces mastodon-cpp.

We aim to create a library that is comfortable, yet minimal. All API endpoints from Mastodon and Pleroma are stored in enum classes, to counteract typos and make your life easier. The network-facing code is built on libcurl, a mature and stable library that is available on virtually every operating system. The library does not parse the responses itself, but returns to you the raw data, because we know everyone has their favorite JSON library and we dont want to impose our choice on you!

Features

This is still a work in progress; here is a rough overview of the features:

  • ❏ Requests

    • GET requests.

    • ✓ Streaming GET requests.

    • POST requests.

    • PATCH requests.

    • PUT requests.

    • DELETE requests.

  • ✓ Report maximum allowed character per post.

  • ❏ Comfortable access to pagination headers.

  • ❏ Comfortable function to register a new “app” (get an access token).

Usage

Have a look at the reference.

Example

#include "mastodonpp.hpp"
#include <iostream>

int main()
{
    mastodonpp::Instance instance{"example.com", {}};
    mastodonpp::Connection connection{instance};
    auto answer{connection.get(mastodonpp::API::v1::instance)};
    if (answer)
    {
        std::cout << answer << std::endl;
    }
}

More examples are included in the reference.

Install

From source

Dependencies

  • Tested OS: Linux

  • C++ compiler (tested: GCC 7/8/9, clang 6/7)

  • CMake (at least: 3.9)

  • libcurl (at least: 7.32)

  • Optional

    • Documentation: Doxygen (tested: 1.8)

    • Tests: Catch (tested: 2.5 / 1.2)

Get sourcecode

Release

Download the current release at schlomp.space.

Development version
git clone https://schlomp.space/tastytea/mastodonpp.git

Compile

mkdir -p build && cd build
cmake ..
cmake --build . -- -j$(nproc --ignore=1)
CMake options:
  • -DCMAKE_BUILD_TYPE=Debug for a debug build.

  • -DWITH_TESTS=YES if you want to compile the tests.

  • -DWITH_EXAMPLES=YES if you want to compile the examples.