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.
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 ↗