Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.ditto.live/llms.txt

Use this file to discover all available pages before exploring further.

Development Requirements

RequirementMinimum Version
Rust Toolchain1.91.0 (for SDK v5.0.x)
C++ StandardC++17

Platforms

PlatformSupportVersions
Linux (x64)Ubuntu 20.04 LTS and later
Linux (AArch64)Ubuntu 22.04 LTS and later
macOS (ARM64)12 and later

Transports

Some platforms do not support all of the types of transports that Ditto provides in general. Here is a table of which platforms support which transports, which you can use to help plan out your application.
PlatformBLE 5.0+AWDLWi-Fi AwareLANWebSockets
Linux (x64)
Linux (AArch64)
macOS

Rust Toolchain Requirements

The Ditto Rust SDK is slightly different from most Rust libraries because it has strict requirements on the Rust toolchain version that must be used to compile it. We’re working to relax this requirement, but for now what you need to know is that when you import a given Ditto SDK version, you must use the exact matching Rust toolchain version as shown below:
Ditto SDK versionRust Toolchain version
”=5.0.x”1.91.0
Here, we recommend using the “=x.y.z” notation for semantic versions of the SDK so that cargo doesn’t try to automatically upgrade your minor version. Since each version of the SDK must be matched exactly to the toolchain it was compiled with, auto-upgrades of minor versions could actually break your build. Additionally, we recommend specifying the versions of both the dittolive-ditto and dittolive-ditto-sys packages, like this:
Cargo.toml
[dependencies]
dittolive-ditto = "=5.0.0"
dittolive-ditto-sys = "=5.0.0"

Selecting a Toolchain for your project

The easiest way to choose a specific toolchain version for a project is to create a file called rust-toolchain in your project directory (next to the Cargo.toml). For example, when using the 5.0.0 SDK, set the 1.91.0 toolchain like this:
./rust-toolchain
1.91.0
You can confirm that this works by running rustup show in your project directory, which should show details about your active toolchain, like this:
shell
 rustup show

# ...

active toolchain
----------------

1.91.0-aarch64-apple-darwin (overridden by '/path/to/your/project/rust-toolchain')
rustc 1.91.0 (f8297e351 2025-10-28)

Target Triple Details

When deploying Ditto Rust applications, you need to consider three key compatibility points:
  • The Target triple of the device where the app will be deployed
  • The Ditto SDK version the app depends on
  • The Rust toolchain version used to compile the app
Compilers use terms known as “target triples” to describe the architecture, operating system, and additional details about a system to compile programs for. The following targets are officially supported by the Ditto Rust SDK:
ArchitectureOperating SystemTarget Triples
Intel Core (x86_64)Linuxx86_64-unknown-linux-gnu
ARM 64-bit (aarch64)macOS (12+)aarch64-apple-darwin
Linuxaarch64-unknown-linux-gnu

Checking the target triple

Before getting started with development, it’s nice to check for certain that the device you’re working with actually has the target triple you think it should. Fortunately, Rust provides an easy way to check what the exact target triple for a device is. This easy method requires installing Rust on the target machine (the one where the app will be deployed), then running the command rustc -vV to check the compiler version information. For example, from an M1 Macbook Pro, we see an output like this:
shell
 rustc -vV
rustc 1.91.0 (f8297e351 2025-10-28)
binary: rustc
commit-hash: f8297e351a40c1439a467bbbb6879088047f50b3
commit-date: 2025-10-28
host: aarch64-apple-darwin
release: 1.91.0
LLVM version: 21.1.2
Here, the field labeled “host” describes the target triple of the machine where we ran this command, in this case our target triple is aarch64-apple-darwin.