respire_core_sdk 1.0.0

Safe Rust binding to the separately distributed Respire Core SDK
docs.rs failed to build respire_core_sdk-1.0.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

Core SDK binding

Safe Rust caller for the Core static library. Consumers link a target-specific binary SDK through the C ABI.

flowchart LR
  App[Application] --> Binding[Safe Rust binding]
  Binding --> C[C ABI: opaque handle and bytes]
  C --> Core[Memory engine]
  Core --> Results[Results / opaque local artifacts]
ABI operation Responsibility
rs_core_abi_version Report the ABI epoch
rs_core_create Create a thread-confined opaque handle
rs_core_call Execute a versioned business request
rs_core_buffer_free Release Core-allocated output
rs_core_destroy Release the handle

Business calls prepare a profile's local index, query memories, return maintenance results and check model health. Local index references remain opaque. Errors stay explicit. The binding owns buffer/handle cleanup, and handles cannot cross threads.

Build check Requirement
SDK location RESPIRE_CORE_SDK_DIR
Integrity Pinned manifest SHA-256 and individual file SHA-256
Platform and Rust Exact Cargo target, compiler release and commit
ABI 0x00010000, request schema 1
Panic and CRT unwind; dynamic MSVC CRT on Windows, static CRT on musl
Runtime SDK libraries copied beside executable and test binaries

build.rs validates the contract and links native libraries. This crate includes its own SDK lock and preparation script; it does not depend on a CLI checkout. With Node.js 22 or later, prepare an SDK from the crate directory:

node prepare-sdk.mjs x86_64-pc-windows-msvc /absolute/path/to/sdk
export RESPIRE_CORE_SDK_DIR=/absolute/path/to/sdk
cargo build

On PowerShell, set $env:RESPIRE_CORE_SDK_DIR instead of using export. If a target has no download URL, supply an already prepared matching SDK at that directory. The lock defines supported artifacts and download URLs. Flat release assets are supported: url identifies a standalone manifest and archive_url identifies an SDK .tar.gz, pinned by archive_sha256. Archives must use ustar format and contain ordinary files/directories only. Downloads are verified in a temporary directory before publishing the complete SDK at the requested destination. Existing local SDKs are validated without download. Consumers must package the manifest's runtime/ libraries and notices/ files alongside the executable. The CLI provides scripts/stage-core-runtime.mjs for this step. The wrapper license applies to the wrapper only; native SDK and model files retain their separate distribution terms and notices.