Configuration Values

cargo-maelstrom supports the following configuration values:

ValueTypeDescriptionDefault
brokerstringaddress of brokerstandalone mode
log-levelstringminimum log level"info"
quietbooleandon't output per-test informationfalse
timeoutstringoverride timeout value testsdon't override
cache-sizestringtarget cache disk space usage"1 GB"
inline-limitstringmaximum amount of captured stdout and stderr"1 MB"
slotsnumberjob slots available1 per CPU
featuresstringcomma-separated list of features to activateCargo's default
all-featuresbooleanactivate all available featuresCargo's default
no-default-featuresbooleando not activate the default featureCargo's default
profilestringbuild artifacts with the specified profileCargo's default
targetstringbuild for the target tripleCargo's default
target-dirstringdirectory for all generated artifactsCargo's default
manifest-pathstringpath to Cargo.tomlCargo's default
frozenbooleanrequire Cargo.lock and cache are up to dateCargo's default
lockedbooleanrequire Cargo.lock is up to dateCargo's default
offlinebooleanrun without Cargo accessing the networkCargo's default

broker

The broker configuration value specifies the socket address of the broker. This configuration value is optional. If not provided, cargo-maelstrom will run in standalone mode.

Here are some example value socket addresses:

  • broker.example.org:1234
  • 192.0.2.3:1234
  • [2001:db8::3]:1234

log-level

See here.

cargo-maelstrom always prints log messages to stdout.

quiet

The quiet configuration values, if set to true, causes cargo-maelstrom to be more more succinct with its output. If cargo-maelstrom is outputting to a terminal, it will display a single-line progress bar indicating all test state, then print a summary at the end. If not outputting to a terminal, it will only print a summary at the end.

timeout

The optional timeout configuration value provides the timeout value to use for all tests. This will override any value set in maelstrom-test.toml.

cache-size

This is a local-worker setting. See here for more.

inline-limit

This is a local-worker setting. See here for more.

slots

This is a local-worker setting. See here for more.

Cargo Settings

cargo-maelstrom shells out to cargo to get metadata about tests and to build the test artifacts. For the former, it uses cargo metadata. For the latter, it uses cargo test --no-run.

cargo-maelstrom supports a number of command-line options that are passed through directly to cargo. It does not inspect these values at all.

Command-Line OptionCargo GroupingPassed To
featuresfeature selectiontest and metadata
all-featuresfeature selectiontest and metadata
no-default-featuresfeature selectiontest and metadata
profilecompilationtest
targetcompilationtest
target-diroutputtest
manifest-pathmanifesttest and metadata
frozenmanifesttest and metadata
lockedmanifesttest and metadata
offlinemanifesttest and metadata

cargo-maelstrom doesn't accept multiple instances of the --features command-line option. Instead, combine the features into a single, comma-separated argument like this: --features=feat1,feat2,feat3.

cargo-maelstrom doesn't accept the --release alias. Use --profile=release instead.