Skip to main content

Installing the C++ SDK

Linux

To install the C++ SDK:
1
Fetch and extract the Ditto package. (Downloading and Unpacking Ditto)
2
Configure your app to link to the Ditto library. (Linking to Ditto)

Downloading and Unpacking Ditto

Download Ditto.tar.gz and unpack an archive containing the libditto.a static library and Ditto header:
curl -O https://software.ditto.live/cpp-linux-x86_64/Ditto/4.14.1/dist/Ditto.tar.gz && tar xvfz Ditto.tar.gz

Linking to Ditto

Add -lditto as a compilation step in the main.cpp source file:
For instructions on adding cross-platform Bluetooth Low Energy (LE) capabilities, see Bluetooth on Linux.BlueZ is the official Bluetooth protocol stack implementation for Linux systems to communicate with other Bluetooth-enabled platforms.
# This command assumes:
# You have unzipped the Ditto.tar.gz in a relative directory ./sdk/
# Your main code entry point is in ./src/main.cpp

g++ -std=c++17 ./src/main.cpp -I ./sdk -lditto -ldl -lrt -pthread -L ./sdk -o dist/main;

 # Once executed, your output will be available at: ./dist/main

Importing and Initializing Ditto

From the source code of your app, using #include <Ditto.h>, use the ditto namespace, and provide your access credentials:
C++

const auto identity = ditto::Identity::OnlinePlayground(
    std::move(app_id),
    std::move(online_playground_token),
    enable_cloud_sync,                  // This is required to be set to false to use the correct URLs
    std::move(custom_url)
);

ditto->update_transport_config([&](ditto::TransportConfig &config) {
    config.enable_all_peer_to_peer();
    config.connect.websocket_urls.insert(websocket_url);
});
// Required for compatibility with DQL.
ditto->disable_sync_with_v3();

// Disable DQL strict mode so that collection definitions are not required in DQL queries
ditto->get_store().execute("ALTER SYSTEM SET DQL_STRICT_MODE = false");

ditto->start_sync();