deno/runtime
Bartek Iwańczuk 4d2b56911f
refactor: merge deno_broadcast_channel into deno_web (#31198)
This commit deprecated `deno_broadcast_channel` crate and merges it into
`deno_web`.

This will allow us to limit number of crates we need to publish and
(maybe) improve compile and link times.

The actual `ext/broadcast_channel` directory will be removed in a follow
up PR, once a new version is published and points to deno_web crate.
2025-11-06 08:36:16 +01:00
..
features 2.5.6 (#31136) 2025-10-29 23:50:18 +00:00
js refactor: merge deno_broadcast_channel into deno_web (#31198) 2025-11-06 08:36:16 +01:00
ops fix(coverage): collect coverage data for workers (#30807) 2025-09-23 00:33:53 +02:00
permissions fix(ext/node): implement process.setgid() and process.setuid() (#31162) 2025-11-05 09:15:28 +01:00
subprocess_windows 2.5.6 (#31136) 2025-10-29 23:50:18 +00:00
Cargo.toml refactor: merge deno_broadcast_channel into deno_web (#31198) 2025-11-06 08:36:16 +01:00
clippy.toml chore: fix lint warnings (#30399) 2025-08-13 20:25:57 -04:00
code_cache.rs chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
coverage.rs fix: show referrer range in deno_core loader errors (#30981) 2025-10-14 14:09:12 +01:00
fmt_errors.rs fix: show referrer range in deno_core loader errors (#30981) 2025-10-14 14:09:12 +01:00
inspector_server.rs fix: show referrer range in deno_core loader errors (#30981) 2025-10-14 14:09:12 +01:00
js.rs chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
lib.rs refactor: merge deno_broadcast_channel into deno_web (#31198) 2025-11-06 08:36:16 +01:00
permissions.rs refactor: remove more allocations querying for permissions (#30237) 2025-07-29 15:51:07 -04:00
README.md fix (doc): Typo in runtime/README.md (#20020) 2023-12-13 17:24:32 +00:00
shared.rs refactor: merge deno_broadcast_channel into deno_web (#31198) 2025-11-06 08:36:16 +01:00
snapshot.rs refactor: merge deno_broadcast_channel into deno_web (#31198) 2025-11-06 08:36:16 +01:00
snapshot_info.rs refactor: merge deno_broadcast_channel into deno_web (#31198) 2025-11-06 08:36:16 +01:00
tokio_util.rs chore: remove repetitive words in comment (#31023) 2025-10-20 15:18:23 +00:00
transpile.rs chore: fix hmr build (#27781) 2025-01-22 18:00:36 +00:00
web_worker.rs refactor: merge deno_broadcast_channel into deno_web (#31198) 2025-11-06 08:36:16 +01:00
worker.rs refactor: merge deno_broadcast_channel into deno_web (#31198) 2025-11-06 08:36:16 +01:00
worker_bootstrap.rs perf: stack allocated v8 scopes (#30827) 2025-09-23 17:54:14 -07:00

deno_runtime crate

crates docs

This is a slim version of the Deno CLI which removes typescript integration and various tooling (like lint and doc). Basically only JavaScript execution with Deno's operating system bindings (ops).

Stability

This crate is built using battle-tested modules that were originally in the deno crate, however the API of this crate is subject to rapid and breaking changes.

MainWorker

The main API of this crate is MainWorker. MainWorker is a structure encapsulating deno_core::JsRuntime with a set of ops used to implement Deno namespace.

When creating a MainWorker implementors must call MainWorker::bootstrap to prepare JS runtime for use.

MainWorker is highly configurable and allows to customize many of the runtime's properties:

  • module loading implementation
  • error formatting
  • support for source maps
  • support for V8 inspector and Chrome Devtools debugger
  • HTTP client user agent, CA certificate
  • random number generator seed

Worker Web API

deno_runtime comes with support for Worker Web API. The Worker API is implemented using WebWorker structure.

When creating a new instance of MainWorker implementors must provide a callback function that is used when creating a new instance of Worker.

All WebWorker instances are descendents of MainWorker which is responsible for setting up communication with child worker. Each WebWorker spawns a new OS thread that is dedicated solely to that worker.