| [[https://opensource.org/licenses/MIT][https://img.shields.io/badge/License-MIT-yellow.svg]] | | [[https://github.com/RustAudio/rust-jack/actions][https://github.com/RustAudio/rust-jack/workflows/Rust/badge.svg]] | | [[https://crates.io/crates/jack][https://img.shields.io/crates/v/jack.svg]] | | [[https://docs.rs/jack][https://docs.rs/jack/badge.svg]] |
** Overview :PROPERTIES: :CUSTOM_ID: Overview-9s7h6d81ktj0 :END:
Rust bindings for the JACK Audio Connection Kit. These bindings work on every operating system that JACK does.
The JACK server is usually started by the user or system. Clients can request that the JACK server is started on demand when they connect, but this can be disabled by the user and is the recommended configuration.
Refer to the documentation for details about the API, building, and packaging. Also take a look at the =examples= directory for usage.
** Testing :PROPERTIES: :CUSTOM_ID: Testing-7y451e81ktj0 :END:
Testing requires setting up a dummy server and running the tests using a single thread.
./dummy_jack_server.sh &
RUST_TEST_THREADS=1 cargo test
Note: We use a single thread for tests since too many client instantiations in short periods of time cause the JACK server to become flaky.
*** Possible Issues :PROPERTIES: :CUSTOM_ID: TestingPossibleIssues-8u551e81ktj0 :END:
If the tests are failing, a possible gotcha may be timing issues.
Another case is that libjack may be broken on your setup. Try switching between libjack and libjack2 (they have the same API and libjack2 isn't necessarily newer than libjack), or using a different version.