[package]
edition = "2021"
name = "linera-execution"
version = "0.15.13"
authors = ["Linera <contact@linera.io>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Persistent data and the corresponding logics used by the Linera protocol for runtime and execution of smart contracts / applications."
homepage = "https://linera.dev"
documentation = "https://docs.rs/linera-execution/latest/linera_execution/"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/linera-io/linera-protocol"
[package.metadata.cargo-machete]
ignored = ["serde_bytes"]
[features]
fs = ["tokio/fs"]
metrics = [
"prometheus",
"linera-views/metrics",
]
revm = [
"dep:revm",
"dep:revm-context",
"dep:revm-context-interface",
"dep:revm-database",
"dep:revm-handler",
"dep:revm-interpreter",
"dep:revm-primitives",
"dep:revm-state",
"dep:alloy-primitives",
"dep:alloy-sol-types",
"dep:hex",
"dep:tempfile",
"linera-base/revm",
]
test = [
"tokio/macros",
"linera-base/test",
"linera-views/test",
"proptest",
]
wasmer = [
"dep:wasmer",
"wasmer/enable-serde",
"linera-witty/wasmer",
]
wasmtime = [
"dep:wasmtime",
"linera-witty/wasmtime",
]
web = [
"linera-base/web",
"linera-views/web",
"js-sys",
"web-thread-select/web",
]
[lib]
name = "linera_execution"
path = "src/lib.rs"
[[bin]]
name = "wit-generator"
path = "src/bin/wit_generator.rs"
required-features = ["wasmer"]
[[test]]
name = "contract_runtime_apis"
path = "tests/contract_runtime_apis.rs"
[[test]]
name = "fee_consumption"
path = "tests/fee_consumption.rs"
[[test]]
name = "revm"
path = "tests/revm.rs"
[[test]]
name = "service_runtime_apis"
path = "tests/service_runtime_apis.rs"
[[test]]
name = "test_execution"
path = "tests/test_execution.rs"
[[test]]
name = "test_system_execution"
path = "tests/test_system_execution.rs"
[[test]]
name = "wasm"
path = "tests/wasm.rs"
[dependencies.allocative]
version = "0.3.4"
[dependencies.alloy-primitives]
version = "1.1.0"
features = [
"serde",
"k256",
]
optional = true
default-features = false
[dependencies.alloy-sol-types]
version = "1.1.2"
optional = true
[dependencies.anyhow]
version = "1.0.80"
[dependencies.async-graphql]
version = "=7.0.17"
[dependencies.async-trait]
version = "0.1.77"
[dependencies.bcs]
version = "0.1.6"
[dependencies.cfg-if]
version = "1.0.0"
[dependencies.clap]
version = "4"
features = [
"cargo",
"derive",
"env",
]
[dependencies.custom_debug_derive]
version = "0.6.1"
[dependencies.derive_more]
version = "1.0.0"
features = ["display"]
[dependencies.dyn-clone]
version = "1.0.17"
[dependencies.futures]
version = "0.3.30"
[dependencies.hex]
version = "0.4.3"
optional = true
[dependencies.js-sys]
version = "0.3.70"
optional = true
[dependencies.linera-base]
version = "0.15.13"
features = ["reqwest"]
[dependencies.linera-views]
version = "0.15.13"
default-features = false
[dependencies.linera-views-derive]
version = "0.15.13"
[dependencies.linera-witty]
version = "0.15.13"
features = [
"log",
"macros",
]
[dependencies.lru]
version = "0.15.0"
[dependencies.oneshot]
version = "0.1.6"
[dependencies.papaya]
version = "0.1.5"
[dependencies.prometheus]
version = "0.13.3"
optional = true
[dependencies.proptest]
version = "1.6.0"
features = ["alloc"]
optional = true
default-features = false
[dependencies.reqwest]
version = "0.11.24"
features = [
"rustls-tls",
"blocking",
"json",
"stream",
]
default-features = false
[dependencies.revm]
version = "24.0.1"
features = [
"std",
"kzg-rs",
"secp256k1",
"portable",
"serde",
"std",
"kzg-rs",
"secp256k1",
"portable",
"serde",
]
optional = true
default-features = false
[dependencies.revm-context]
version = "5.0.0"
features = [
"serde",
"serde",
]
optional = true
default-features = false
[dependencies.revm-context-interface]
version = "5.0.0"
features = [
"serde",
"serde",
]
optional = true
default-features = false
[dependencies.revm-database]
version = "4.0.1"
features = [
"serde",
"serde",
]
optional = true
default-features = false
[dependencies.revm-handler]
version = "5.0.0"
features = [
"serde",
"serde",
]
optional = true
default-features = false
[dependencies.revm-interpreter]
version = "20.0.0"
features = [
"serde",
"serde",
]
optional = true
default-features = false
[dependencies.revm-primitives]
version = "19.1.0"
features = [
"serde",
"serde",
]
optional = true
default-features = false
[dependencies.revm-state]
version = "4.0.1"
features = [
"serde",
"serde",
]
optional = true
default-features = false
[dependencies.serde]
version = "1.0.197"
features = ["derive"]
[dependencies.serde_bytes]
version = "0.11.14"
[dependencies.serde_json]
version = "1.0.114"
[dependencies.strum]
version = "0.26"
features = ["derive"]
[dependencies.tempfile]
version = "3.20.0"
optional = true
[dependencies.thiserror]
version = "1.0.65"
[dependencies.tracing]
version = "0.1.40"
features = [
"release_max_level_trace",
"log",
]
[dependencies.url]
version = "2.4"
[dependencies.wasm-instrument]
version = "0.4.0-linera.1"
features = ["sign_ext"]
package = "linera-wasm-instrument"
[dependencies.wasmtime]
version = "25.0.0"
features = [
"cranelift",
"runtime",
"std",
]
optional = true
default-features = false
[dependencies.web-thread-pool]
version = "0.1.0"
[dependencies.web-thread-select]
version = "0.2.0"
[dev-dependencies.anyhow]
version = "1.0.80"
[dev-dependencies.assert_matches]
version = "1.5.0"
[dev-dependencies.bcs]
version = "0.1.6"
[dev-dependencies.linera-base]
version = "0.15.13"
features = ["test"]
[dev-dependencies.linera-witty]
version = "0.15.13"
features = [
"log",
"macros",
"test",
]
[dev-dependencies.proptest]
version = "1.6.0"
features = ["alloc"]
default-features = false
[dev-dependencies.test-case]
version = "3.3.1"
[dev-dependencies.test-log]
version = "0.2.15"
features = [
"trace",
"trace",
]
default-features = false
[dev-dependencies.test-strategy]
version = "0.3.1"
[dev-dependencies.tokio]
version = "1.36.0"
features = [
"rt",
"test-util",
]
[dev-dependencies.tracing-subscriber]
version = "0.3.18"
features = [
"env-filter",
"fmt",
]
default-features = false
[dev-dependencies.wasmer]
version = "4.4.0-linera.7"
features = [
"singlepass",
"wat",
]
default-features = false
package = "linera-wasmer"
[build-dependencies.cfg_aliases]
version = "0.2.1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1.36.0"
features = ["rt-multi-thread"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.wasmer]
version = "4.4.0-linera.7"
features = [
"cranelift",
"singlepass",
]
optional = true
default-features = false
package = "linera-wasmer"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.wasmer-compiler-singlepass]
version = "4.4.0-linera.7"
features = [
"std",
"unwind",
"avx",
]
default-features = false
package = "linera-wasmer-compiler-singlepass"
[target.'cfg(target_arch = "wasm32")'.dependencies.tokio]
version = "1.36.0"
features = ["rt"]
[target.'cfg(target_arch = "wasm32")'.dependencies.wasmer]
version = "4.4.0-linera.7"
features = ["js-default"]
optional = true
default-features = false
package = "linera-wasmer"
[lints.clippy]
doc_link_with_quotes = "deny"
filter_map_next = "deny"
iter_filter_is_some = "deny"
large_futures = "deny"
large_stack_arrays = "deny"
large_types_passed_by_value = "deny"
macro_use_imports = "deny"
manual_instant_elapsed = "deny"
manual_is_power_of_two = "deny"
manual_is_variant_and = "deny"
map_unwrap_or = "deny"
mismatching_type_param_order = "deny"
naive_bytecount = "deny"
non_std_lazy_statics = "deny"
range_minus_one = "deny"
range_plus_one = "deny"
ref_option_ref = "deny"
str_split_at_newline = "deny"