Cargo Features

[dependencies]
holochain = { version = "0.5.0-dev.6", default-features = false, features = ["tx5", "metrics_influxive", "test_utils", "fuzzing", "slow_tests", "glacial_tests", "build_wasms", "only_check_wasms", "sqlite-encrypted", "sqlite", "wasmer_debug_memory", "wasmer_sys", "wasmer_wamr", "chc", "unstable-dpki", "unstable-warrants", "unstable-sharding", "sweettest", "deepkey-wasm-cache", "instrument", "unstable-functions", "unstable-countersigning"] }
default = metrics_influxive, sqlite-encrypted, tx5, wasmer_sys

These default features are set whenever holochain is added without default-features = false somewhere in the dependency tree.

tx5 default = tx5-go-pion-turn
metrics_influxive default

Use the "Influxive" opentelemetry metrics binding to write metrics to an InfluxDB time series database.

Enables influxive of holochain_metrics

test_utils sweettest? = arbitrary, async-once-cell, contrafact, deepkey-wasm-cache, diff, fixt, get_if_addrs, holochain_test_wasm_common, holochain_wasm_test_utils, kitsune_p2p_bootstrap, matches, sbd-server, tx5-go-pion-turn, unwrap_to

Exposes additional functionality only needed for integration tests.
This feature should be turned off for production builds.

Enables mock_network of holochain_p2p, fixt of kitsune_p2p_bin_data, fixt and test_utils of kitsune_p2p_types, test_utils of ghost_actor ^0.3.0-alpha.6, hdk, holochain_cascade, and holochain_conductor_services, test_utils of holochain_sqlite, holochain_state, holochain_types, holochain_zome_types, and kitsune_p2p

Affects holochain::fixt

fuzzing
slow_tests

Wasm ribosome tests take > 60 seconds - let's only run them in CI

glacial_tests

What's slower than slow? We may choose to not run these tests in CI to speed things up.

build_wasms

Includes the wasm build script, which we don't need when not building wasms

Enables build of holochain_wasm_test_utils

only_check_wasms

Enables only_check of holochain_wasm_test_utils

sqlite-encrypted default

Enables at-rest encryption of the SQLite database.
Incompatible with "sqlite".

Enables bundled-sqlcipher-vendored-openssl of rusqlite, sqlite-encrypted of holo_hash, holochain_cascade, holochain_conductor_api, holochain_keystore, holochain_p2p, holochain_sqlite, holochain_state, holochain_types, holochain_zome_types, kitsune_p2p, kitsune_p2p_block, kitsune_p2p_bootstrap, and kitsune_p2p_types

sqlite sweettest?

Compile SQLite from source rather than depending on a library.
Incompatible with "sqlite-encrypted"

Enables bundled of rusqlite, sqlite of holo_hash, holochain_cascade, holochain_conductor_api, holochain_keystore, holochain_p2p, holochain_sqlite, holochain_state, holochain_types, holochain_zome_types, kitsune_p2p, kitsune_p2p_block, kitsune_p2p_bootstrap, and kitsune_p2p_types

wasmer_debug_memory

Extremely verbose wasm memory read/write logging

Enables debug_memory of holochain_wasmer_host

wasmer_sys default

Enable wasm compiler
Incompatible with "wasmer_wamr"

Enables wasmer =4.3.6 and wasmer-middlewares =4.3.6, wasmer_sys of holochain_wasmer_host

wasmer_wamr

Enable wasm interpreter (experimental)
Incompatible with "wasmer_sys"

Enables wasmer_wamr of holochain_wasmer_host and wamr of hc-wasmer

Temporarily include a fork of wasmer from the git branch 'wamr', until it is officially released in wasmer v5

chc = bytes, reqwest

Enable chain head coordination

Enables http of holochain_chc, chc of holochain_conductor_api

Affects conductor::chc

unstable-dpki

Enable unstable DPKI feature.

Enables unstable-dpki of holochain_conductor_api

unstable-warrants

Enables unstable warrants feature.

Enables unstable-warrants of holochain_cascade and holochain_state

unstable-sharding

Enable sharding for networks. This is currently considered an unstable feature and with the feature disabled you will only be able to configure nodes that have a full or empty arc.

Enables unstable-sharding of kitsune_p2p and kitsune_p2p_types

sweettest = sqlite, test_utils
deepkey-wasm-cache test_utils?
instrument

Enables tracing instrumentation
(we experience segfaults in some tests if there is too much instrumentation)

unstable-functions

Enables unstable-functions of hdk, holochain_wasm_test_utils, and holochain_zome_types

Affects tests::agent_lineage

unstable-countersigning

Enables unstable-countersigning of hdk, holochain_conductor_api, and holochain_zome_types

Affects api_cell::CellConductorReadHandleT.accept_countersigning_session

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.

reminder - do not use workspace deps

fixt test_utils?

Enables fixt

Dependencies for test_utils / other optional deps

contrafact test_utils?
diff test_utils?
hdk test_utils? unstable-countersigning? unstable-functions?
matches test_utils?
holochain_wasm_test_utils build_wasms? only_check_wasms? test_utils? unstable-functions?
holochain_test_wasm_common test_utils?
kitsune_p2p_bootstrap sqlite? sqlite-encrypted test_utils?
unwrap_to test_utils?
sbd-server test_utils?
tx5-go-pion-turn test_utils? tx5
async-once-cell test_utils?
get_if_addrs test_utils?
bytes chc?

Enables bytes

chc deps

reqwest chc?
arbitrary test_utils?