[package] name = "sp-io" version = "38.0.0" authors.workspace = true edition.workspace = true license = "Apache-2.0" homepage = "https://substrate.io" repository.workspace = true description = "I/O for Substrate runtimes (polkadot v1.15.0)" documentation = "https://docs.rs/sp-io" readme = "README.md" build = "build.rs" [lints] workspace = true [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] [dependencies] bytes = { workspace = true } codec = { features = [ "bytes", ], workspace = true } sp-core.workspace = true sp-crypto-hashing.workspace = true sp-keystore = { optional = true, workspace = true } libsecp256k1 = { optional = true, workspace = true, default-features = true } sp-state-machine = { optional = true, workspace = true } sp-runtime-interface.workspace = true sp-trie = { optional = true, workspace = true } sp-externalities.workspace = true sp-tracing.workspace = true log = { optional = true, workspace = true, default-features = true } secp256k1 = { features = [ "global-context", "recovery", ], optional = true, workspace = true, default-features = true } tracing = { workspace = true } tracing-core = { workspace = true } # Required for backwards compatibility reason, but only used for verifying when `UseDalekExt` is set. ed25519-dalek = { optional = true, workspace = true } docify = { workspace = true } [target.'cfg(all(any(target_arch = "riscv32", target_arch = "riscv64"), substrate_runtime))'.dependencies] polkavm-derive = { workspace = true } [build-dependencies] rustversion = { workspace = true } [features] default = ["std"] std = [ "bytes/std", "codec/std", "ed25519-dalek", "ed25519-dalek?/std", "libsecp256k1", "log/std", "secp256k1", "sp-core/std", "sp-crypto-hashing/std", "sp-externalities/std", "sp-keystore/std", "sp-runtime-interface/std", "sp-state-machine/std", "sp-tracing/std", "sp-trie/std", "tracing-core/std", "tracing/std", ] with-tracing = ["sp-tracing/with-tracing"] # These two features are used for `no_std` builds for the environments which already provides # `#[panic_handler]`, `#[alloc_error_handler]` and `#[global_allocator]`. # # For the regular wasm runtime builds those are not used. disable_panic_handler = [] disable_oom = [] disable_allocator = [] # This feature flag controls the runtime's behavior when encountering # a panic or when it runs out of memory, improving the diagnostics. # # When enabled the runtime will marshal the relevant error message # to the host through the `PanicHandler::abort_on_panic` runtime interface. # This gives the caller direct programmatic access to the error message. # # When disabled the error message will only be printed out in the # logs, with the caller receiving a generic "wasm `unreachable` instruction executed" # error message. # # This has no effect if both `disable_panic_handler` and `disable_oom` # are enabled. # # WARNING: Enabling this feature flag requires the `PanicHandler::abort_on_panic` # host function to be supported by the host. Do *not* enable it for your # runtime without first upgrading your host client! improved_panic_error_reporting = [] # This feature adds BLS crypto primitives. # It should not be used in production since the implementation and interface may still # be subject to significant changes. bls-experimental = ["sp-keystore/bls-experimental"]