Skip to main content

sim_lib_stream_jack/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3//! Modeled JACK stream-host adapter (in-process simulation).
4//!
5//! Modeled tier, no native I/O. This crate is a pure-Rust, in-process MODEL of
6//! a JACK backend, not a binding to `libjack`. The workspace forbids `unsafe`
7//! and the crate carries no `-sys`/FFI dependency, so it performs no real JACK
8//! server I/O -- it serves a deterministic fake client and ports. The modeled
9//! tier is flagged by the default-on `model` feature; a native provider would
10//! live behind a separate FFI binding outside this repo.
11//!
12//! The crate keeps validation independent of a running JACK server. It models
13//! a JACK client, routable audio and MIDI ports, sample-frame transport, and
14//! the callback bridge used to drive an audio graph. A future provider can
15//! populate the same model from native JACK client and port registration.
16
17mod backend;
18mod bridge;
19mod model;
20mod runtime;
21#[cfg(test)]
22mod spike;
23
24pub use backend::{JackBackend, jack_backend_symbol, jack_transport_symbol};
25pub use bridge::{JackGraphBridge, JackMidiEvent};
26pub use model::{JackClient, JackPort, JackTiming, JackTransportState, jack_clock_symbol};
27pub use runtime::{JackLib, install_stream_jack_lib};
28
29#[cfg(test)]
30mod tests;