[package]
name = "fusevm"
version = "0.11.0"
edition = "2021"
description = "Language-agnostic bytecode VM with fused superinstructions and a 3-tier Cranelift JIT (linear, block, tracing with side-exits and frame materialization)"
license = "MIT"
authors = ["MenkeTechnologies"]
repository = "https://github.com/MenkeTechnologies/fusevm"
documentation = "https://docs.rs/fusevm"
readme = "README.md"
keywords = ["bytecode", "vm", "jit", "interpreter", "fusevm"]
categories = ["compilers"]

[dependencies]
serde = { version = "1", features = ["derive", "rc"] }
tracing = "0.1"
glob = "0.3"
cranelift-jit = { version = "0.130", optional = true }
cranelift-codegen = { version = "0.130", optional = true }
cranelift-frontend = { version = "0.130", optional = true }
cranelift-native = { version = "0.130", optional = true }
cranelift-module = { version = "0.130", optional = true }

[features]
default = []
jit = ["cranelift-jit", "cranelift-codegen", "cranelift-frontend", "cranelift-native", "cranelift-module"]

[dev-dependencies]
serde_json = "1"
bincode = "1"
criterion = { version = "0.5", features = ["html_reports"] }

[[bench]]
name = "vm_bench"
harness = false

[[bench]]
name = "jit_vs_interp"
harness = false
required-features = ["jit"]

[[bench]]
name = "classic"
harness = false

[[bench]]
name = "jit_crossover"
harness = false
required-features = ["jit"]
