[package]
edition = "2024"
name = "beamr"
version = "0.6.4"
authors = [
"Tom Whiting <tom@ablative.com.au>",
"Josh Bearup <Joshuabearup1@gmail.com>",
]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A Rust runtime with the BEAM's execution model, targeting Gleam"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/tomWhiting/beamr"
resolver = "2"
[features]
default = [
"std",
"threads",
"net",
"fs",
"jit",
"embedded",
]
embedded = [
"std",
"dep:zstd",
]
fs = [
"std",
"dep:libc",
"dep:rustix",
]
jit = [
"std",
"threads",
"dep:cranelift-codegen",
"dep:cranelift-frontend",
"dep:cranelift-jit",
"dep:cranelift-module",
"dep:cranelift-native",
]
json = [
"dep:base64",
"dep:serde_json",
]
net = [
"std",
"dep:libc",
"dep:rustix",
"dep:tokio",
]
std = []
telemetry = [
"std",
"dep:opentelemetry",
]
test-support = []
threads = [
"std",
"dep:crossbeam-channel",
"dep:crossbeam-deque",
"dep:crossbeam-queue",
"dep:io-uring",
"dep:num_cpus",
"dep:tokio",
]
[lib]
name = "beamr"
path = "src/lib.rs"
[[test]]
name = "bignum_edges"
path = "tests/bignum_edges.rs"
[[test]]
name = "bs_create_bin"
path = "tests/bs_create_bin.rs"
[[test]]
name = "capability_policy"
path = "tests/capability_policy.rs"
[[test]]
name = "caught_exception_exit"
path = "tests/caught_exception_exit.rs"
[[test]]
name = "differential"
path = "tests/differential.rs"
[[test]]
name = "dirty_scheduler"
path = "tests/dirty_scheduler.rs"
[[test]]
name = "distribution_e2e"
path = "tests/distribution_e2e.rs"
[[test]]
name = "embedded_loading"
path = "tests/embedded_loading.rs"
[[test]]
name = "gc_integration"
path = "tests/gc_integration.rs"
[[test]]
name = "gleam_gate_e2e"
path = "tests/gleam_gate_e2e.rs"
[[test]]
name = "hot_code_loading"
path = "tests/hot_code_loading.rs"
[[test]]
name = "is_function2_guard"
path = "tests/is_function2_guard.rs"
[[test]]
name = "is_function_bif"
path = "tests/is_function_bif.rs"
[[test]]
name = "memory_stability"
path = "tests/memory_stability.rs"
[[test]]
name = "namespace_isolation"
path = "tests/namespace_isolation.rs"
[[test]]
name = "nif_private_data"
path = "tests/nif_private_data.rs"
[[test]]
name = "no_box_leak"
path = "tests/no_box_leak.rs"
[[test]]
name = "otp_integration"
path = "tests/otp_integration.rs"
[[test]]
name = "otp_loading"
path = "tests/otp_loading.rs"
[[test]]
name = "otp_zero_unresolved"
path = "tests/otp_zero_unresolved.rs"
[[test]]
name = "proof_of_life"
path = "tests/proof_of_life.rs"
[[test]]
name = "recv_after_timeout"
path = "tests/recv_after_timeout.rs"
[[test]]
name = "recv_marker"
path = "tests/recv_marker.rs"
[[test]]
name = "sample_workflow_e2e"
path = "tests/sample_workflow_e2e.rs"
[[test]]
name = "stdlib_loading"
path = "tests/stdlib_loading.rs"
[[test]]
name = "supervision_integration"
path = "tests/supervision_integration.rs"
[[test]]
name = "suspend_reexec"
path = "tests/suspend_reexec.rs"
[[test]]
name = "suspend_result_binary"
path = "tests/suspend_result_binary.rs"
[[test]]
name = "suspend_wakeup"
path = "tests/suspend_wakeup.rs"
[[test]]
name = "tagged_tuple_patterns"
path = "tests/tagged_tuple_patterns.rs"
[[bench]]
name = "jit_comparison"
path = "benches/jit_comparison.rs"
harness = false
required-features = [
"jit",
"threads",
]
[[bench]]
name = "jit_comparison_extended"
path = "benches/jit_comparison_extended.rs"
harness = false
required-features = [
"jit",
"threads",
]
[dependencies.base64]
version = "0.22.1"
optional = true
[dependencies.cranelift-codegen]
version = "0.131.2"
optional = true
[dependencies.cranelift-frontend]
version = "0.131.2"
optional = true
[dependencies.cranelift-jit]
version = "0.131.2"
optional = true
[dependencies.cranelift-module]
version = "0.131.2"
optional = true
[dependencies.cranelift-native]
version = "0.131.2"
optional = true
[dependencies.crossbeam-channel]
version = "0.5.15"
optional = true
[dependencies.crossbeam-deque]
version = "0.8.6"
optional = true
[dependencies.crossbeam-queue]
version = "0.3.12"
optional = true
[dependencies.dashmap]
version = "6.1.0"
[dependencies.flate2]
version = "1.1.9"
[dependencies.gleam-types]
version = "0.4.3"
[dependencies.libc]
version = "0.2.186"
optional = true
[dependencies.md5]
version = "0.8.0"
[dependencies.num_cpus]
version = "1.17.0"
optional = true
[dependencies.opentelemetry]
version = "0.32.0"
optional = true
[dependencies.rand]
version = "0.10.1"
[dependencies.rustix]
version = "1.1.4"
features = [
"fs",
"net",
]
optional = true
[dependencies.serde_json]
version = "1.0.150"
optional = true
[dependencies.tokio]
version = "1.52.3"
features = [
"net",
"io-util",
"time",
"rt",
"rt-multi-thread",
"macros",
"sync",
]
optional = true
[dependencies.unicode-segmentation]
version = "1.12"
[dependencies.zstd]
version = "0.13.3"
optional = true
[dev-dependencies.criterion]
version = "0.8.2"
[dev-dependencies.opentelemetry_sdk]
version = "0.32.1"
[dev-dependencies.proptest]
version = "1.11.0"
[build-dependencies.zstd]
version = "0.13.3"
[target.'cfg(target_os = "linux")'.dependencies.io-uring]
version = "0.7"
optional = true