Cargo Features

[dependencies]
bitcoincash = { version = "0.29.2", default-features = false, features = ["rand", "serde", "secp-lowmemory", "secp-recovery", "std", "no-std", "base64", "bitcoinconsensus"] }
default = secp-recovery, std

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

rand

Enables rand-std of secp256k1 ^0.24.0

serde = actual-serde

Enables serde of bitcoin_hashes ^0.11.0 and secp256k1 ^0.24.0

Affects amount::serde

secp-lowmemory

Enables lowmemory of secp256k1 ^0.24.0

secp-recovery default

Enables recovery of secp256k1 ^0.24.0

std default

At least one of std, no-std must be enabled.

The no-std feature doesn't disable std - you need to turn off the std feature for that by disabling default.
Instead no-std enables additional features required for this crate to be usable without std.
As a result, both can be enabled without conflict.

Enables std of bech32 ^0.9.0, bitcoin_hashes ^0.11.0, and secp256k1 ^0.24.0

Affects network::address, network::message, network::message_blockdata, network::message_bloom, network::message_compact_blocks, network::message_network, network::message_filter

no-std = hashbrown

Enables alloc of bitcoin_hashes ^0.11.0, core2 ^0.3.0, and secp256k1 ^0.24.0

secp256k1:

allow use of Secp256k1::new and related API that requires an allocator

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.

core2 no-std?

Enables core2 ^0.3.0

base64 implicit feature

Enables base64 ^0.13.0

base64:

encodes and decodes base64 as bytes or utf8

bitcoinconsensus implicit feature

Enables bitcoinconsensus

bitcoinconsensus:

Bitcoin's libbitcoinconsensus with Rust binding

actual-serde serde?

Enables serde

Do NOT use this as a feature! Use the serde feature instead.

hashbrown no-std?

Enables hashbrown ^0.8