[package]
edition = "2024"
rust-version = "1.90"
name = "afterburner"
version = "0.2.2"
authors = ["Theo Bulut <info@afterburner.sh>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Afterburner - JS ~> WASM Sandboxed Execution VM"
homepage = "https://github.com/afterburner-sh/afterburner"
documentation = "https://docs.rs/afterburner"
readme = "README.md"
keywords = [
"javascript",
"wasm",
"sandbox",
"runtime",
]
categories = [
"wasm",
"development-tools",
]
license = "BUSL-1.1"
repository = "https://github.com/afterburner-sh/afterburner"
resolver = "2"
[features]
adaptive = [
"dep:afterburner-adaptive",
"wasm",
"native",
]
all-shadows = [
"shadow-bcrypt",
"shadow-argon2",
"shadow-jsonwebtoken",
"shadow-sqlite3",
"shadow-sharp",
]
bin = [
"dep:clap",
"dep:rustyline",
"dep:anyhow",
"dep:tokio",
"dep:afterburner-cloud",
"dep:semver",
"dep:libc",
"dep:crossterm",
"dep:dialoguer",
"dep:kovan-channel",
"adaptive",
"thrust",
"ts",
"afterburner-wasi/daemon",
]
daemon = [
"wasm",
"afterburner-wasi/daemon",
]
default = [
"wasm",
"native",
"thrust",
]
embed-core = ["afterburner-wasi?/embed-core"]
embed-ruby = ["afterburner-wasi?/embed-ruby"]
flow = [
"dep:afterburner-flow",
"wasm",
]
host-http = ["afterburner-wasi?/host-http"]
http3 = ["afterburner-wasi/http3"]
native = ["dep:afterburner-ignite"]
release-cli = [
"bin",
"wasm",
"native",
"adaptive",
"thrust",
"flow",
"host-http",
"ts",
"all-shadows",
"http3",
"embed-core",
"embed-ruby",
]
shadow-argon2 = ["afterburner-wasi?/shadow-argon2"]
shadow-bcrypt = ["afterburner-wasi?/shadow-bcrypt"]
shadow-jsonwebtoken = ["afterburner-wasi?/shadow-jsonwebtoken"]
shadow-sharp = ["afterburner-wasi?/shadow-sharp"]
shadow-sqlite3 = ["afterburner-wasi?/shadow-sqlite3"]
thrust = [
"dep:afterburner-thrust",
"wasm",
]
ts = [
"dep:oxc",
"dep:thiserror",
]
wasm = ["dep:afterburner-wasi"]
[lib]
name = "afterburner"
path = "src/lib.rs"
[[bin]]
name = "burn"
path = "src/bin/burn.rs"
required-features = ["bin"]
[[example]]
name = "input_framing_bench"
path = "examples/input_framing_bench.rs"
[[example]]
name = "output_framing_bench"
path = "examples/output_framing_bench.rs"
[[example]]
name = "polyglot"
path = "examples/polyglot.rs"
[[test]]
name = "b0_check"
path = "tests/b0_check.rs"
[[test]]
name = "b0_cli_vs_library"
path = "tests/b0_cli_vs_library.rs"
[[test]]
name = "b0_process_argv_env"
path = "tests/b0_process_argv_env.rs"
[[test]]
name = "b0_script_mode"
path = "tests/b0_script_mode.rs"
[[test]]
name = "b10_security"
path = "tests/b10_security.rs"
[[test]]
name = "b10_worker_threads"
path = "tests/b10_worker_threads.rs"
[[test]]
name = "b1_require_resolution"
path = "tests/b1_require_resolution.rs"
[[test]]
name = "b2_http_server"
path = "tests/b2_http_server.rs"
[[test]]
name = "b2b_multiplex"
path = "tests/b2b_multiplex.rs"
[[test]]
name = "b3_daemon_lifecycle"
path = "tests/b3_daemon_lifecycle.rs"
[[test]]
name = "b4_passthrough"
path = "tests/b4_passthrough.rs"
[[test]]
name = "b5_shim"
path = "tests/b5_shim.rs"
[[test]]
name = "b6_require_resolution"
path = "tests/b6_require_resolution.rs"
[[test]]
name = "b7_dgram"
path = "tests/b7_dgram.rs"
[[test]]
name = "b7_dns"
path = "tests/b7_dns.rs"
[[test]]
name = "b7_net"
path = "tests/b7_net.rs"
[[test]]
name = "b7_net_security"
path = "tests/b7_net_security.rs"
[[test]]
name = "b7_tls"
path = "tests/b7_tls.rs"
[[test]]
name = "b7_tls_security"
path = "tests/b7_tls_security.rs"
[[test]]
name = "b8_typescript"
path = "tests/b8_typescript.rs"
[[test]]
name = "b9_esm"
path = "tests/b9_esm.rs"
[[test]]
name = "b_abort_signal_any"
path = "tests/b_abort_signal_any.rs"
[[test]]
name = "b_async_hooks_await"
path = "tests/b_async_hooks_await.rs"
[[test]]
name = "b_async_hooks_real"
path = "tests/b_async_hooks_real.rs"
[[test]]
name = "b_async_iterator_global"
path = "tests/b_async_iterator_global.rs"
[[test]]
name = "b_async_outbound_http"
path = "tests/b_async_outbound_http.rs"
[[test]]
name = "b_atomics"
path = "tests/b_atomics.rs"
[[test]]
name = "b_atomics_wait_async"
path = "tests/b_atomics_wait_async.rs"
[[test]]
name = "b_atomics_wait_xprocess"
path = "tests/b_atomics_wait_xprocess.rs"
[[test]]
name = "b_blob_url"
path = "tests/b_blob_url.rs"
[[test]]
name = "b_buffer_extras"
path = "tests/b_buffer_extras.rs"
[[test]]
name = "b_buffer_isutf8_test_mock"
path = "tests/b_buffer_isutf8_test_mock.rs"
[[test]]
name = "b_builder_cwd"
path = "tests/b_builder_cwd.rs"
[[test]]
name = "b_burn_install_gem_e2e"
path = "tests/b_burn_install_gem_e2e.rs"
[[test]]
name = "b_burn_install_npm_e2e"
path = "tests/b_burn_install_npm_e2e.rs"
[[test]]
name = "b_callsite_api"
path = "tests/b_callsite_api.rs"
[[test]]
name = "b_child_process_async"
path = "tests/b_child_process_async.rs"
[[test]]
name = "b_child_process_wasm"
path = "tests/b_child_process_wasm.rs"
[[test]]
name = "b_cli_parity"
path = "tests/b_cli_parity.rs"
[[test]]
name = "b_cluster_multiproc"
path = "tests/b_cluster_multiproc.rs"
[[test]]
name = "b_columnar_udf"
path = "tests/b_columnar_udf.rs"
[[test]]
name = "b_compile"
path = "tests/b_compile.rs"
[[test]]
name = "b_crypto_extras"
path = "tests/b_crypto_extras.rs"
[[test]]
name = "b_crypto_extras_round5"
path = "tests/b_crypto_extras_round5.rs"
[[test]]
name = "b_crypto_random_extras"
path = "tests/b_crypto_random_extras.rs"
[[test]]
name = "b_crypto_stream_extras"
path = "tests/b_crypto_stream_extras.rs"
[[test]]
name = "b_daemon_init_bytecode"
path = "tests/b_daemon_init_bytecode.rs"
[[test]]
name = "b_debugger_breakpoint"
path = "tests/b_debugger_breakpoint.rs"
[[test]]
name = "b_dns_resolveany_execfilesync"
path = "tests/b_dns_resolveany_execfilesync.rs"
[[test]]
name = "b_events_add_abort_listener"
path = "tests/b_events_add_abort_listener.rs"
[[test]]
name = "b_events_buffer_stream_extras"
path = "tests/b_events_buffer_stream_extras.rs"
[[test]]
name = "b_eventsource"
path = "tests/b_eventsource.rs"
[[test]]
name = "b_fetch_extras"
path = "tests/b_fetch_extras.rs"
[[test]]
name = "b_filereader_sqlite_constants"
path = "tests/b_filereader_sqlite_constants.rs"
[[test]]
name = "b_fs_classes"
path = "tests/b_fs_classes.rs"
[[test]]
name = "b_fs_promises_expansion"
path = "tests/b_fs_promises_expansion.rs"
[[test]]
name = "b_http2_client"
path = "tests/b_http2_client.rs"
[[test]]
name = "b_http2_server"
path = "tests/b_http2_server.rs"
[[test]]
name = "b_http3_quic"
path = "tests/b_http3_quic.rs"
[[test]]
name = "b_http_header_validators"
path = "tests/b_http_header_validators.rs"
[[test]]
name = "b_inspector_cdp"
path = "tests/b_inspector_cdp.rs"
[[test]]
name = "b_intl_and_clone"
path = "tests/b_intl_and_clone.rs"
[[test]]
name = "b_iterator_helpers"
path = "tests/b_iterator_helpers.rs"
[[test]]
name = "b_json_rawjson_readline"
path = "tests/b_json_rawjson_readline.rs"
[[test]]
name = "b_linked_packages"
path = "tests/b_linked_packages.rs"
[[test]]
name = "b_module_internals"
path = "tests/b_module_internals.rs"
[[test]]
name = "b_node26_extras"
path = "tests/b_node26_extras.rs"
[[test]]
name = "b_node26_surface"
path = "tests/b_node26_surface.rs"
[[test]]
name = "b_node_compat_round2"
path = "tests/b_node_compat_round2.rs"
[[test]]
name = "b_node_compat_round3"
path = "tests/b_node_compat_round3.rs"
[[test]]
name = "b_node_surface_round4"
path = "tests/b_node_surface_round4.rs"
[[test]]
name = "b_node_test_runner"
path = "tests/b_node_test_runner.rs"
[[test]]
name = "b_npm_install_e2e"
path = "tests/b_npm_install_e2e.rs"
[[test]]
name = "b_npm_prereqs"
path = "tests/b_npm_prereqs.rs"
[[test]]
name = "b_os_dirs"
path = "tests/b_os_dirs.rs"
[[test]]
name = "b_os_timers_extras"
path = "tests/b_os_timers_extras.rs"
[[test]]
name = "b_performance_observer"
path = "tests/b_performance_observer.rs"
[[test]]
name = "b_performance_user_timing"
path = "tests/b_performance_user_timing.rs"
[[test]]
name = "b_pkg_deps_e2e"
path = "tests/b_pkg_deps_e2e.rs"
[[test]]
name = "b_pkg_dev"
path = "tests/b_pkg_dev.rs"
[[test]]
name = "b_process_getters"
path = "tests/b_process_getters.rs"
[[test]]
name = "b_process_lifecycle"
path = "tests/b_process_lifecycle.rs"
[[test]]
name = "b_process_report"
path = "tests/b_process_report.rs"
[[test]]
name = "b_process_stdio"
path = "tests/b_process_stdio.rs"
[[test]]
name = "b_random_bytes_inspect_custom"
path = "tests/b_random_bytes_inspect_custom.rs"
[[test]]
name = "b_raw_input"
path = "tests/b_raw_input.rs"
[[test]]
name = "b_raw_output"
path = "tests/b_raw_output.rs"
[[test]]
name = "b_registry_deps_runtime_e2e"
path = "tests/b_registry_deps_runtime_e2e.rs"
[[test]]
name = "b_request_fields"
path = "tests/b_request_fields.rs"
[[test]]
name = "b_request_response_bytes_crypto_globals"
path = "tests/b_request_response_bytes_crypto_globals.rs"
[[test]]
name = "b_require_denial"
path = "tests/b_require_denial.rs"
[[test]]
name = "b_scheduler_dispose_stack"
path = "tests/b_scheduler_dispose_stack.rs"
[[test]]
name = "b_script_exit_codes"
path = "tests/b_script_exit_codes.rs"
[[test]]
name = "b_shadow_argon2"
path = "tests/b_shadow_argon2.rs"
[[test]]
name = "b_shadow_bcrypt"
path = "tests/b_shadow_bcrypt.rs"
[[test]]
name = "b_shadow_jsonwebtoken"
path = "tests/b_shadow_jsonwebtoken.rs"
[[test]]
name = "b_shadow_sharp"
path = "tests/b_shadow_sharp.rs"
[[test]]
name = "b_shadow_sqlite3"
path = "tests/b_shadow_sqlite3.rs"
[[test]]
name = "b_shard_pool"
path = "tests/b_shard_pool.rs"
[[test]]
name = "b_shebang"
path = "tests/b_shebang.rs"
[[test]]
name = "b_sourcemaps"
path = "tests/b_sourcemaps.rs"
[[test]]
name = "b_stream_dual_shape"
path = "tests/b_stream_dual_shape.rs"
[[test]]
name = "b_stream_static_probes"
path = "tests/b_stream_static_probes.rs"
[[test]]
name = "b_subtle_crypto"
path = "tests/b_subtle_crypto.rs"
[[test]]
name = "b_subtle_full"
path = "tests/b_subtle_full.rs"
[[test]]
name = "b_symbol_dispose"
path = "tests/b_symbol_dispose.rs"
[[test]]
name = "b_tls_check_server_identity"
path = "tests/b_tls_check_server_identity.rs"
[[test]]
name = "b_tls_defaults"
path = "tests/b_tls_defaults.rs"
[[test]]
name = "b_uint8array_codec"
path = "tests/b_uint8array_codec.rs"
[[test]]
name = "b_util_system_errors_callsites_diff"
path = "tests/b_util_system_errors_callsites_diff.rs"
[[test]]
name = "b_v8_serialize_compat"
path = "tests/b_v8_serialize_compat.rs"
[[test]]
name = "b_vm_measure_worker_untransferable"
path = "tests/b_vm_measure_worker_untransferable.rs"
[[test]]
name = "b_vm_module_cycles"
path = "tests/b_vm_module_cycles.rs"
[[test]]
name = "b_vm_module_records"
path = "tests/b_vm_module_records.rs"
[[test]]
name = "b_wasm_extras"
path = "tests/b_wasm_extras.rs"
[[test]]
name = "b_wasm_loader"
path = "tests/b_wasm_loader.rs"
[[test]]
name = "b_wasm_memory_grow"
path = "tests/b_wasm_memory_grow.rs"
[[test]]
name = "b_web_globals"
path = "tests/b_web_globals.rs"
[[test]]
name = "b_web_streams"
path = "tests/b_web_streams.rs"
[[test]]
name = "b_websocket"
path = "tests/b_websocket.rs"
[[test]]
name = "b_zlib_brotli"
path = "tests/b_zlib_brotli.rs"
[[test]]
name = "b_zlib_process_fs_extras"
path = "tests/b_zlib_process_fs_extras.rs"
[[test]]
name = "b_zlib_streaming"
path = "tests/b_zlib_streaming.rs"
[[test]]
name = "basic_eval"
path = "tests/basic_eval.rs"
[[test]]
name = "cli_manifold"
path = "tests/cli_manifold.rs"
[[test]]
name = "compile_local_deps"
path = "tests/compile_local_deps.rs"
[[test]]
name = "data_flow"
path = "tests/data_flow.rs"
[[test]]
name = "polyglot_compile"
path = "tests/polyglot_compile.rs"
[[test]]
name = "polyglot_multimodule"
path = "tests/polyglot_multimodule.rs"
[[test]]
name = "polyglot_package"
path = "tests/polyglot_package.rs"
[[test]]
name = "polyglot_repl"
path = "tests/polyglot_repl.rs"
[[test]]
name = "polyglot_run_source"
path = "tests/polyglot_run_source.rs"
[[test]]
name = "python_compile_wasm"
path = "tests/python_compile_wasm.rs"
[[test]]
name = "ruby_compile_wasm"
path = "tests/ruby_compile_wasm.rs"
[dependencies.afterburner-adaptive]
version = "0.2.2"
optional = true
[dependencies.afterburner-cloud]
version = "0.2.2"
optional = true
[dependencies.afterburner-core]
version = "0.2.2"
[dependencies.afterburner-flow]
version = "0.2.2"
optional = true
[dependencies.afterburner-ignite]
version = "0.2.2"
optional = true
[dependencies.afterburner-node-compat]
version = "0.2.2"
[dependencies.afterburner-thrust]
version = "0.2.2"
optional = true
[dependencies.afterburner-wasi]
version = "0.2.2"
optional = true
[dependencies.anyhow]
version = "1"
optional = true
[dependencies.base64]
version = "0.22"
[dependencies.clap]
version = "4"
features = ["derive"]
optional = true
[dependencies.crossterm]
version = "0.28"
optional = true
[dependencies.dialoguer]
version = "0.11"
optional = true
default-features = false
[dependencies.kovan-channel]
version = "0.1.14"
optional = true
[dependencies.libc]
version = "0.2"
optional = true
[dependencies.oxc]
version = "=0.127.0"
features = [
"transformer",
"codegen",
"semantic",
"ast_visit",
]
optional = true
default-features = false
[dependencies.rustyline]
version = "14"
optional = true
[dependencies.semver]
version = "1"
features = ["serde"]
optional = true
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "2"
optional = true
[dependencies.tokio]
version = "1"
features = [
"rt",
"rt-multi-thread",
"net",
"macros",
"signal",
"sync",
]
optional = true
[dependencies.toml]
version = "0.8"
[dev-dependencies.base64]
version = "0.22"
[dev-dependencies.bytes]
version = "1"
[dev-dependencies.flate2]
version = "1"
[dev-dependencies.h3]
version = "0.0.8"
[dev-dependencies.h3-quinn]
version = "0.0.10"
[dev-dependencies.http]
version = "1"
[dev-dependencies.http-body-util]
version = "0.1"
[dev-dependencies.httpmock]
version = "0.7"
[dev-dependencies.image]
version = "0.25"
features = [
"png",
"jpeg",
"webp",
"gif",
"bmp",
]
default-features = false
[dev-dependencies.kovan-channel]
version = "0.1.14"
[dev-dependencies.quinn]
version = "0.11"
features = [
"runtime-tokio",
"rustls",
"ring",
"log",
]
default-features = false
[dev-dependencies.rcgen]
version = "0.14"
[dev-dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
"tls12",
]
default-features = false
[dev-dependencies.rustls-pemfile]
version = "2"
[dev-dependencies.serial_test]
version = "3"
[dev-dependencies.sha1]
version = "0.10"
features = ["oid"]
[dev-dependencies.tar]
version = "0.4"
default-features = false
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"rt",
"rt-multi-thread",
"net",
"macros",
"signal",
"sync",
"rt-multi-thread",
"io-util",
"net",
"macros",
]
[dev-dependencies.tokio-rustls]
version = "0.26"
features = [
"ring",
"tls12",
]
default-features = false
[dev-dependencies.wat]
version = "1"