-
Notifications
You must be signed in to change notification settings - Fork 3
kithara apple
Documentation reviewed from source revision 19ca073f2. This records the documented contract at that revision; it is not a new runtime validation. API and usage · All crates.
kithara-apple is the canonical owner of the Apple framework ABI shared by Kithara crates.
- Raw AudioToolbox structs, type aliases, constants, and extern declarations live in
audio_toolbox::sys(the only publicly re-exported raw surface). Accelerate's raw externs stay private inaccelerate::ffi. - Safe RAII wrappers for
AudioConverter,AudioFile,AudioBufferList, and POD byte copies (ApplePod,pod_from_prefix,pod_to_vec,pod_write_to_slice) live underaudio_toolbox. - Foundation and Objective-C binding crates are re-exported through
foundation(ns,objc,block,urlsession). Consumers enablekithara-applefeatures instead of declaringblock2,objc2, orobjc2-foundationthemselves. - Codec decisions, gapless policy, HTTP semantics, stream read semantics, and resampler algorithms must not move into this crate.
Each module needs both its feature and an Apple target (target_os = "macos" or "ios"); on any other target the crate compiles to nothing, so downstream crates need no cfg of their own beyond the feature.
-
audio-toolboxexposesaudio_toolbox. -
accelerateexposesaccelerate. -
foundationexposes the Objective-C/Foundation binding surface needed by Apple platform adapters such as theNSURLSessionHTTP backend; it is the only feature that pulls optional dependencies.
This crate is the canonical unsafe owner for shared Apple framework ABI. Unsafe is confined to the modules that directly bridge Apple C APIs and is justified at the call site. Callers should not need local Apple FFI declarations for shared AudioToolbox, Accelerate, or Foundation dependencies, and downstream crates keep their own unsafe policy strict except for leaf adapter glue that must implement Apple callback protocols.
Accelerate is an implementation support layer, not a resampler backend. The public helpers expose bounded vector operations — copy_f32, clear_f32, ramp_f32, linear_interpolate_f32, quadratic_interpolate_f32, and BiquadFilter; higher-level crates (currently kithara-resampler's glide engine) decide when those operations are useful.