polkavm 0.17.0

A fast and secure RISC-V based virtual machine
Documentation
[package]
name = "polkavm"
version.workspace = true
authors.workspace = true
license.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
readme = "../../README.md"
documentation = "https://docs.rs/polkavm"
description = "A fast and secure RISC-V based virtual machine"

[dependencies]
log = { workspace = true }
polkavm-assembler = { workspace = true, features = ["alloc"] }
polkavm-common = { workspace = true, features = ["alloc", "logging", "regmap", "unique-id"] }
schnellru = { workspace = true, optional = true }

[target.'cfg(all(not(miri), target_arch = "x86_64", target_os = "linux"))'.dependencies]
polkavm-linux-raw = { workspace = true, features = ["std"] }

[target.'cfg(all(not(miri), target_arch = "x86_64", any(target_os = "macos", target_os = "freebsd")))'.dependencies]
libc = { workspace = true }

[dev-dependencies]
env_logger = { workspace = true }
polkavm-common = { workspace = true, features = ["export-internals-for-testing"] }
polkavm-linker = { workspace = true }
image = { workspace = true, features = ["tga"] }
ruzstd = { workspace = true }
paste = { workspace = true }

[lints]
workspace = true

[features]
default = ["std"]
std = ["ruzstd/std"]

# Whether to enable a module cache.
module-cache = ["dep:schnellru", "polkavm-common/blake3"]

# Whether to enable a cross-platform, generic sandbox for the recompiler backend.
#
# This is required on non-Linux systems to use the recompiler. On Linux it is unnecessary.
# This sandbox is EXPERIMENTAL and is not meant for production use.
generic-sandbox = []

# Internal feature for testing. DO NOT USE.
export-internals-for-testing = []