[package] name = "sp-io" version = "30.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" 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 = { version = "1.1.0", default-features = false } codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["bytes"] } sp-core = { path = "../core", default-features = false } sp-crypto-hashing = { path = "../crypto/hashing", default-features = false } sp-keystore = { path = "../keystore", default-features = false, optional = true } sp-std = { path = "../std", default-features = false } libsecp256k1 = { version = "0.7", optional = true } sp-state-machine = { path = "../state-machine", default-features = false, optional = true } sp-runtime-interface = { path = "../runtime-interface", default-features = false } sp-trie = { path = "../trie", default-features = false, optional = true } sp-externalities = { path = "../externalities", default-features = false } sp-tracing = { path = "../tracing", default-features = false } log = { optional = true, workspace = true, default-features = true } secp256k1 = { version = "0.28.0", features = ["global-context", "recovery"], optional = true } tracing = { version = "0.1.29", default-features = false } tracing-core = { version = "0.1.32", default-features = false } # Required for backwards compatibility reason, but only used for verifying when `UseDalekExt` is set. ed25519-dalek = { version = "2.1", default-features = false, optional = true } [target.'cfg(all(any(target_arch = "riscv32", target_arch = "riscv64"), substrate_runtime))'.dependencies] polkavm-derive = { workspace = true } [build-dependencies] rustversion = "1.0.6" [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-std/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"] # This feature adds Bandersnatch crypto primitives. # It should not be used in production since the implementation and interface may still # be subject to significant changes. bandersnatch-experimental = ["sp-keystore/bandersnatch-experimental"]