[package] name = "radix-engine" version = "1.3.0" edition = "2021" description = "Reference implementation of Radix Engine, from the Radix DLT project." readme = "README.md" license-file = "../LICENSE" repository = "https://github.com/radixdlt/radixdlt-scrypto" [dependencies] sbor = { workspace = true } radix-engine-interface = { workspace = true } radix-common = { workspace = true, features = ["secp256k1_sign_and_validate"]} radix-substate-store-interface = { workspace = true } radix-blueprint-schema-init = { workspace = true } radix-native-sdk = { workspace = true } radix-transactions = { workspace = true } radix-rust = { workspace = true } radix-engine-profiling = { workspace = true, optional = true } radix-engine-profiling-derive = { workspace = true } colored = { workspace = true } hex = { workspace = true } num-traits = { workspace = true } bitflags = { workspace = true } lru = { workspace = true, optional = true} moka = { workspace = true, features = ["sync"], optional = true } strum = { workspace = true, features = ["derive"] } perfcnt = { workspace = true, optional = true } paste = { workspace = true } radix-common-derive = { workspace = true } const-sha1 = { workspace = true } # Chosen because of its small size and 0 transitive dependencies inferno = { workspace = true, optional = true } tempfile = { workspace = true } walkdir = { workspace = true, optional = true } # WASM validation wasmparser = { workspace = true } syn = { workspace = true, features = ["full", "extra-traits"] } # WASM instrumentation radix-wasm-instrument = { workspace = true, features = ["ignore_custom_section"]} # WASM execution # - Wasmi is a WASM interpreter that supports WebAssembly MVP wasmi = { workspace = true } lazy_static = { workspace = true } [dev-dependencies] wabt = { workspace = true } criterion = { workspace = true, features = ["html_reports"] } wasm-benchmarks-lib = { path = "./wasm-benchmarks-lib", default-features = false } [[bench]] name = "wasm_benchmarks" harness = false [features] # You should enable either `std` or `alloc` default = ["std", "moka"] std = ["sbor/std", "radix-native-sdk/std", "radix-transactions/std", "radix-blueprint-schema-init/std", "radix-engine-interface/std", "radix-substate-store-interface/std", "radix-common-derive/std", "radix-rust/std", "radix-wasm-instrument/std", "wasmi/std" ] alloc = ["sbor/alloc", "radix-native-sdk/alloc", "radix-transactions/alloc", "radix-blueprint-schema-init/alloc", "radix-engine-interface/alloc", "radix-substate-store-interface/alloc", "radix-common-derive/alloc", "radix-rust/alloc", "lru?/hashbrown"] # Enables heap memory and CPU cycles resource tracing - available only for Linux OS on x86 arch. # Requires CAP_PERFMON capability for the process (sudo setcap cap_perfmon=eip ). cpu_ram_metrics = ["std", "perfcnt", "radix-engine-profiling/ram_metrics"] # Two features for the two possible libraries to use for caching. Moka is not WASM friendly while LRU is. One of these # two features must be enabled. moka = ["dep:moka"] lru = ["dep:lru"] resource_tracker = ["dep:radix-engine-profiling", "radix-engine-profiling/resource_tracker", "radix-engine-profiling-derive/resource_tracker", "radix-common/resource_tracker"] # System/Application Database Checker db_checker = [] # This flag is set by fuzz-tests framework and it disables cache in wasm_instrumenter/wasmi # to prevent non-determinism when fuzzing fuzzing = [ "radix-common/fuzzing", "radix-engine-interface/fuzzing", "sbor/fuzzing", "radix-transactions/fuzzing", "radix-rust/fuzzing", ] # This flag enables code parts used only for testing. Using "test" config option is not enough in cases, # when external crate is used for tests (eg. radix-engine-tests) radix_engine_tests = [] # This flag includes test utilities which may be useful in different testing libraries test_utils = ["dep:walkdir"] full_wasm_benchmarks = [] # This flag disables package size limit, memory size limit and fee limit coverage = [ "radix-common/coverage" ] # This feature flag adds the ability for flamegraphs to be generated for the costing in the receipt. flamegraph = ["dep:inferno"] # Ref: https://bheisler.github.io/criterion.rs/book/faq.html#cargo-bench-gives-unrecognized-option-errors-for-valid-command-line-options [lib] bench = false