pub use crate::error::GetErrorClassFn;
pub use crate::error::JsErrorCreateFn;
pub use crate::external::ExternalDefinition;
pub use anyhow;
pub use deno_unsync as unsync;
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;
- 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.
- Define an external type.
- 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 usually
deno_ops. This block generates a function that returns a
- Return the first argument if not empty, otherwise the second.
- BufMutView is a wrapper around an underlying contiguous chunk of writable bytes. It can be created from a
- 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 [
- Basic file system module loader.
- Encapsulates an UnboundedSender/UnboundedReceiver pair that together form a duplex channel for sending/receiving messages in V8 session.
- The runtime type used for snapshot creation.
- This structure is used responsible for providing inspector interface to the
- 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.
RcRefencapsulates 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
- 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.
- Remove a resource from the resource table.
- Builtin utility to print to stdout/stderr
- Return map of resources with id as key and string representation as value.
- 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.
- The type of op metrics event.
- Represents an underlying handle for a platform. On unix, everything is an
fd. On Windows, everything is a Windows handle except for sockets (which are
- Trait implemented by all generated ops.
RcLiketrait provides an abstraction over
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.
- Given two
OpMetricsFactoryFnimplementations, merges them so that op metric events are called on both.
- 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
- 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
- Pass the command line arguments to v8. The first element of args (which usually corresponds to the binary name) is ignored. Returns a vector of command line arguments that V8 did not understand.
- Returned by resource read/write/shutdown methods
- Function that can be passed to the
ExtModuleLoaderthat allows to transpile sources before passing to V8.
- Resolved module specifier
- A callback to retrieve an optional
OpMetricsFnfor this op.
- A callback to receieve an
ResourceIdis an integer value referencing a resource. It could be considered to be the Deno equivalent of a
file descriptorin POSIX like operating systems. Elsewhere in the code base it is commonly abbreviated to
- Callback to validate import attributes. If the validation fails and exception should be thrown using
- A macro designed to provide an extremely fast V8->Rust interface layer.