Cargo Features

[dependencies]
second-music-system = { version = "0.1.0", default-features = false, features = ["switchyard", "tokio", "ffi-expose-issuer"] }
default = switchyard

The switchyard feature is set by default whenever second-music-system is added without default-features = false somewhere in the dependency tree.

switchyard default

Exposes an implementation of TaskRuntime for Switchyard, and the convenient Engine::new() function that uses Switchyard behind the scenes. Use this unless you KNOW you don't want it.

Enables num_cpus

If the "switchyard" feature is enabled, we use this crate to decide how many threads we should spawn for background loading (if the caller didn't request a specific number).

and switchyard

If the "switchyard" feature is enabled, we use this crate to spawn and schedule threads for background loading and (some day) decoding.

tokio

Exposes an implementation of TaskRuntime for Tokio. Use this if you have a Tokio runtime in your game already, and you want SMS to make use of it.

Enables tokio

If the "tokio" feature is enabled, we provide an implementation of our Runtime trait that interfaces with Tokio runtimes. (There should be nothing stopping you from making such an implementation yourself. This is just more convenient.)

ffi-expose-issuer

Exposes the EngineCommandIssuer trait. You should only use/need this if you are creating an FFI binding.