SDKS

One core, every platform.

Every SDK wraps the same C++20 core through its C ABI: headless rendering, a scanner, payload actions, style certification, and optional aggregate telemetry.

Docs: Overview · Payloads · SDKs · Telemetry · API

No CKey package is published to a public registry yet. Until a release is published, build from source or use the files on the downloads page, and replace VERSION with the version listed there.

Swift (iOS, macOS)

SwiftPM package from the repository URL. CKeyScanner (import CKeyScanKit) is scanning only, with no renderer and no telemetry.

// In Xcode: File › Add Package Dependencies… and enter
    // https://github.com/clearkeysolutions/ckey
    import CKey

    let symbol = try CKeySymbol.encode("https://openckey.org")
    CKey.telemetry = .off   // optional: opt out of aggregate telemetry

Read the Swift (iOS, macOS) README ↗

Web (WebAssembly)

ESM package; ckey.wasm loads from next to ckey.mjs. This site’s renderer uses it.

npm install ckey

    import { loadCKey } from "ckey";
    const ckey = await loadCKey({ telemetry: 0 }); // 0 = telemetry off
    const sym = ckey.encode("https://openckey.org", { level: "M" });
    ckey.renderToCanvas(sym, document.querySelector("canvas"), { size: 512 });

Read the Web (WebAssembly) README ↗

Android (Kotlin)

Maven artifacts org.openckey:ckey, ckey-compose, and ckey-camerax; minSdk 24.

dependencies {
        implementation("org.openckey:ckey:VERSION")
    }

    val symbol = CKeySymbol.encode("https://openckey.org")
    val bitmap = symbol.toBitmap(sizePx = 600)
    CKey.telemetry = 0   // optional: opt out

Read the Android (Kotlin) README ↗

.NET

NuGet CKey for net8.0 and netstandard2.0, with CKey.Wpf for WPF.

dotnet add package CKey

    using OpenCKey;
    CKey.Telemetry = 0;   // optional: opt out

Read the .NET README ↗

C and C++

The core itself, behind the C ABI in include/ckey/ckey.h. cmake --install provides a CMake package.

find_package(CKey REQUIRED)
    target_link_libraries(app PRIVATE CKey::core CKey::scan)
    # scanners can configure with -DCKEY_BUILD_TELEMETRY=OFF
    ckey_telemetry_set_mode(0);  /* or opt out at run time */

Read the C example ↗

Command line

The ckey tool encodes symbols to SVG, PNG, and PDF. It does not send telemetry.

brew install --formula ./ckey.rb
    ckey encode-scalable --utf8 "https://openckey.org" --out code.svg
    ckey encode-scalable --utf8 "https://openckey.org" --pdf code.pdf --size-in 2

Read the CLI source ↗

Before you ship