Crate deno_core

source ·

Re-exports§

Modules§

Macros§

  • Include a fast string in the binary from a string literal. This string is asserted at compile-time to be 7-bit ASCII for optimal v8 performance.
  • Include a fast string in the binary. This string is asserted at compile-time to be 7-bit ASCII for optimal v8 performance.
  • Defines a Deno extension. The first parameter is the name of the extension symbol namespace to create. This is the symbol you will use to refer to the extension.
  • Define an external type.
  • Helps embed JS files in an extension. Returns a vector of ExtensionFileSource, that represents the filename and source code.
  • Helps embed JS files in an extension. Returns a vector of ExtensionFileSource, that represent the filename and source code. All specified files are rewritten into “ext:<extension_name>/<file_name>”.
  • A helper macro that will return a call site in Rust code. Should be used when executing internal one-line scripts for JsRuntime lifecycle.
  • Declares a block of Deno #[op]s. The first parameter determines the name of the op declaration block, and is usually deno_ops. This block generates a function that returns a Vec<OpDecl>.
  • Return the first argument if not empty, otherwise the second.

Structs§

  • BufMutView is a wrapper around an underlying contiguous chunk of writable bytes. It can be created from a JsBuffer or a Vec<u8> and implements DerefMut<[u8]> and AsMut<[u8]>.
  • BufMutViewWhole is equivalent to BufMutView, but cannot be split, preventing someone from accidentally holding a BufView down the road that is being actively mutated from JavaScript.
  • BufView is a wrapper around an underlying contiguous chunk of bytes. It can be created from a JsBuffer, bytes::Bytes, or Vec and implements Deref<[u8]> and AsRef<[u8]>.
  • A strongly-typed external pointer. As this is a shared pointer, it only provides immutable references to the underlying data. To allow for interior mutation, use an interior-mutable container such as [RefCell].
  • A static string that is compile-time checked to be ASCII and is stored in the most efficient possible way to create V8 strings.
  • Module names and code can be sourced from strings or bytes that are either owned or borrowed. This enumeration allows us to perform a minimal amount of cloning and format-shifting of the underlying data.
  • Basic file system module loader.
  • Encapsulates an UnboundedSender/UnboundedReceiver pair that together form a duplex channel for sending/receiving messages in V8 session.
  • A single execution context of JavaScript. Corresponds roughly to the “Web Worker” concept in the DOM.
  • The runtime type used for snapshot creation.
  • This structure is used responsible for providing inspector interface to the JsRuntime.
  • A local inspector session that can be used to send and receive protocol messages directly on the same thread as an isolate.
  • EsModule source code that will be loaded into V8.
  • Placeholder structure used when creating a runtime that doesn’t support module loading.
  • Used for both aggregate and per-op metrics.
  • Maintains the resources and ops inside a JS runtime.
  • An RcRef encapsulates a reference counted pointer, just like a regular std::rc::Rc. However, unlike a regular Rc, it can be remapped so that it dereferences to any value that’s reachable through the reference-counted pointer. This is achieved through the associated method, RcRef::map(), similar to how std::cell::Ref::map() works. Example:
  • Map-like data structure storing Deno’s resources (equivalent to file descriptors).
  • A module loader that you can pre-load a number of modules into and resolve from. Useful for testing and embedding situations where the filesystem and snapshot systems are not usable or a good fit.
  • Allows for submission of v8 tasks on any thread.
  • Allows for submission of v8 tasks on the same thread.

Enums§

Constants§

Traits§

  • Trait implemented by all generated ops.
  • The RcLike trait provides an abstraction over std::rc::Rc and RcRef, so that applicable methods can operate on either type.
  • Resources are Rust objects that are attached to a deno_core::JsRuntime. They are identified in JS by a numeric ID (the resource ID, or rid). Resources can be created in ops. Resources can also be retrieved in ops by their rid. Resources are not thread-safe - they can only be accessed from the thread that the JsRuntime lives on.

Functions§

Type Aliases§

Attribute Macros§

  • A macro designed to provide an extremely fast V8->Rust interface layer.