Re-exports
pub use anyhow;
pub use futures;
pub use parking_lot;
pub use serde;
pub use serde_json;
pub use serde_v8;
pub use sourcemap;
pub use url;
pub use v8;
pub use crate::error::GetErrorClassFn;
pub use crate::error::JsErrorCreateFn;
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.
- 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.
- Include a fast string in the binary. This string is asserted at compile-time to be 7-bit ASCII for optimal v8 performance.
- 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 usuallydeno_ops
. This block generates a function that returns aVec<OpDecl>
.
Structs
- BufMutView is a wrapper around an underlying contiguous chunk of writable bytes. It can be created from a
JsBuffer
or aVec<u8>
and implementsDerefMut<[u8]>
andAsMut<[u8]>
. - 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]>
andAsRef<[u8]>
. - Basic file system module loader.
- Encapsulates an UnboundedSender/UnboundedReceiver pair that together form a duplex channel for sending/receiving messages in V8 session.
- A representation of a JavaScript realm tied to a
JsRuntime
, that allows execution in the realm’s context. - A single execution context of JavaScript. Corresponds roughly to the “Web Worker” concept in the DOM. The JsRuntime future completes when there is an error or when all pending ops have completed.
- 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.
- Maintains the resources and ops inside a JS runtime.
- An
RcRef
encapsulates a reference counted pointer, just like a regularstd::rc::Rc
. However, unlike a regularRc
, 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 howstd::cell::Ref::map()
works. Example: - Map-like data structure storing Deno’s resources (equivalent to file descriptors).
- A queue that executes tasks sequentially one after the other ensuring order and that no task runs at the same time as another.
- A permit that when dropped will allow another task to proceed.
- Auto-generated by
deno_ops
, i.e:#[op]
- Auto-generated by
deno_ops
, i.e:#[op]
- Auto-generated by
deno_ops
, i.e:#[op]
- Auto-generated by
deno_ops
, i.e:#[op]
- Auto-generated by
deno_ops
, i.e:#[op]
Enums
- 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.
- Error indicating the reason resolving a module specifier failed.
- A type of module to be executed.
Constants
Traits
- The
RcLike
trait provides an abstraction overstd::rc::Rc
andRcRef
, 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
- Normalize all intermediate components of the path (ie. remove “./” and “../” components). Similar to
fs::canonicalize()
but doesn’t resolve symlinks. - Resolves module using this algorithm: https://html.spec.whatwg.org/multipage/webappapis.html#resolve-a-module-specifier
- Converts a string representing a relative or absolute path into a ModuleSpecifier. A relative path is considered relative to the passed
current_dir
. - Converts a string representing an absolute URL into a ModuleSpecifier.
- Takes a string representing either an absolute URL or a file path, as it may be passed to deno as a command line argument. The string is interpreted as a URL if it starts with a valid URI scheme, e.g. ‘http:’ or ‘file:’ or ‘git+ssh:’. If not, it’s interpreted as a file path; if it is a relative path it’s resolved relative to passed
current_dir
. - Pass the command line arguments to v8. Returns a vector of command line arguments that V8 did not understand.
Type Definitions
- Returned by resource read/write/shutdown methods
- Function that can be passed to the
ExtModuleLoader
that allows to transpile sources before passing to V8. - Resolved module specifier
- A
ResourceId
is an integer value referencing a resource. It could be considered to be the Deno equivalent of afile descriptor
in POSIX like operating systems. Elsewhere in the code base it is commonly abbreviated torid
.