Cargo Features

[dependencies]
all-is-cubes-desktop = { version = "0.9.0", default-features = false, features = ["record", "import", "terminal", "audio", "rerun"] }
default = audio, import, record, terminal

Each of these features is default, and exists primarily to be disabled for faster development builds.

record default

Producing image or video recording, or any exported/saved data.

Enables all-is-cubes-mesh, png, serde of euclid and all-formats and export of all-is-cubes-port

TODO: make all file access an optional feature

Affects command_options::determine_record_format, all-is-cubes-desktop::record, startup::InnerMainParams.recording

import default

Importing non-native data formats.

Enables all-formats of all-is-cubes-port

terminal default

Required for --graphics=terminal and --graphics=print; rendering scenes to colored text and interactive terminal sessions.

Enables ratatui and unicode-width

Affects all-is-cubes-desktop::terminal

audio default

Game audio output support.

Enables kira ^0.9.4

rerun

Adds rerun logging support. Intended mainly for development of All is Cubes itself.

Enables rerun of all-is-cubes and all-is-cubes-gpu and all-is-cubes-mesh and re_sdk ^0.21.0

re_sdk:

re_sdk is a data-logging and visualization tool; we are currently using it _only_ for development of All is Cubes itself.

Affects glue::Renderer.log_to_rerun

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

TODO: Define a feature with which to turn off windowing & GPU support.

euclid record