Cargo Features

[dependencies]
ibc-types-core-client = { version = "0.15.0", default-features = false, features = ["std", "parity-scale-codec", "borsh", "with_serde", "upgrade_client", "mocks", "mocks-no-std"] }
default = std

The std feature is set by default whenever ibc-types-core-client is added without default-features = false somewhere in the dependency tree.

std default

Enables clock and std of tendermint and std of bytes, displaydoc, ibc-proto, ibc-types-identifier, ibc-types-timestamp, ics23, num-traits, prost, serde, serde_json, sha2, and subtle-encoding

serde:

Provide impls for common standard library types like Vec<T> and HashMap<K, V>.
Requires a dependency on the Rust standard library.

parity-scale-codec

Enables parity-scale-codec and scale-info

borsh

Enables borsh ^0.10.0

with_serde = serde, serde_derive, serde_json

This feature is required for token transfer (ICS-20)

Enables serde of ibc-proto

upgrade_client

This feature guards the unfinished implementation of the UpgradeClient handler.

mocks = cfg-if

This feature grants access to development-time mocking libraries, such as MockContext or MockHeader. Depends on the testgen suite for generating Tendermint light blocks.

Enables clock of tendermint

mocks-no-std = cfg-if

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.

cfg-if mocks? mocks-no-std?
serde std with_serde?
serde_derive with_serde?
serde_json std with_serde?