summaryrefslogtreecommitdiff
path: root/runtime/README.md
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-12-13 19:45:53 +0100
committerGitHub <noreply@github.com>2020-12-13 19:45:53 +0100
commit2e74f164b6dcf0ecbf8dd38fba9fae550d784bd0 (patch)
tree61abe8e09d5331ace5d9de529f0e2737a8e05dbb /runtime/README.md
parent84ef9bd21fb48fb6b5fbc8dafc3de9f361bade3b (diff)
refactor: deno_runtime crate (#8640)
This commit moves Deno JS runtime, ops, permissions and inspector implementation to new "deno_runtime" crate located in "runtime/" directory. Details in "runtime/README.md". Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
Diffstat (limited to 'runtime/README.md')
-rw-r--r--runtime/README.md44
1 files changed, 44 insertions, 0 deletions
diff --git a/runtime/README.md b/runtime/README.md
new file mode 100644
index 000000000..1056ac5b6
--- /dev/null
+++ b/runtime/README.md
@@ -0,0 +1,44 @@
+# `deno_runtime` crate
+
+[![crates](https://img.shields.io/crates/v/deno_runtime.svg)](https://crates.io/crates/deno_runtime)
+[![docs](https://docs.rs/deno_runtime/badge.svg)](https://docs.rs/deno_runtime)
+
+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 `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 decendents 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.