Ship Onde into Apple apps.

The Swift package is distributed from onde-swift, while signed release assets live on onde. Test local XCFramework builds without rewriting the package manifest.

Release track

SPM resolves the published package from onde-swift and downloads the signed binary XCFramework from GitHub Releases on the main onde repository.

Local track

Set ONDE_SWIFT_USE_LOCAL=1 and point .local/OndeFramework.xcframework at a freshly built XCFramework to iterate without publishing a release.

Bindings

The Swift layer is generated with UniFFI directly from the Rust static library. cargo-swift is no longer part of the release pipeline.

Current scope

Chat-focused: OndeChatEngine, model loading, history management, and streaming callbacks. More APIs ship with the engine.

Quick Start

Install.

Add the package in Xcode or Package.swift. SPM handles resolution and downloads the signed XCFramework binary automatically.

dependencies: [
  .package(url: "https://github.com/ondeinference/onde-swift", from: "0.1.0")
],
targets: [
  .target(
    name: "YourTarget",
    dependencies: [.product(name: "Onde", package: "onde-swift")]
  )
]

Local Mode

Test Without Publishing.

Release stays the default. Iterate on the XCFramework locally with one environment variable — no package manifest edits required.

Force local modeONDE_SWIFT_USE_LOCAL=1 open -a Xcode /path/to/YourApp.xcodeproj
Wire the local XCFrameworkln -s /path/to/OndeFramework.xcframework /path/to/onde-swift/.local/OndeFramework.xcframework

Coverage

Platform Matrix.

macOS and iOS first. tvOS and visionOS are in the pipeline.

PlatformBinary slicesStatus
macOSarm64Ready
iOSarm64 device, arm64 + x86_64 simulatorReady
tvOSarm64Pending
visionOSarm64Pending