Native SDK bundles (JOE-2225)¶
First-class C/C++ SDK archives for Tier A platforms. Downstream hosts should download a verified release archive, not assemble libraries from a Cargo workspace.
Package¶
# STT/cleanup-only staticlib (matches CI native examples)
./scripts/package_native_sdk.sh --features none --out-dir dist/native-sdk
Produces aurum-sdk-<version>-<triple>.tar.gz and .sha256.
Archive layout¶
aurum-sdk-<ver>-<triple>/
include/aurum.h
lib/libaurum_ffi.a # or platform static/import lib
cmake/AurumConfig.cmake
pkg-config/aurum.pc # Unix
examples/job_cleanup.c
examples/engine_raii.cpp
BUILD.md
SDK_MANIFEST.json
share/doc/...
Qualify a downloaded artifact¶
Checks: no path traversal/symlinks, manifest digests, ABI constants, CMake package content (system link deps), C11 (and C++17) compile/link/run using only bundle paths, optional CMake consumer (Aurum::aurum_ffi), and pkg-config on Unix. On Windows, MSVC cl is used when available; otherwise layout + CMake package validation still run. Fails if the header mentions remote provider surfaces.
Install / upgrade / uninstall¶
- Verify archive SHA-256 against release
SHA256SUMS/ cosign evidence. - Extract to a versioned prefix (side-by-side versions supported).
- Point
CMAKE_PREFIX_PATHor-I/-Lat that prefix. - Uninstall by deleting the prefix; model caches under the user cache dir are not removed.
Contracts¶
- ABI v2 only (
AURUM_ABI_VERSION/ min = 2). - Remote providers remain unavailable through C.
- Models/packs are not bundled; first-run verified download uses the engine cache.
- FFmpeg is not bundled.
- Dynamic library search paths must not include untrusted directories.
Release evidence¶
SDK archives should be listed in release SHA256SUMS, provenance, and SBOM inventory alongside CLI binaries when published from the release workflow.