Re-exports
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;
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.
- 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 usuallydeno_ops
. This block generates a function that returns aVec<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 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]>
. - 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
]. - 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 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.
- 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 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 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.
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.
- 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 areSOCKET
s).
Constants
Traits
- Trait implemented by all generated ops.
- 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
- Given two
OpMetricsFactoryFn
implementations, 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
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. 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.
Type Aliases
- 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 callback to retrieve an optional
OpMetricsFn
for this op. - A callback to receieve an
OpMetricsEvent
. - 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
. - Callback to validate import attributes. If the validation fails and exception should be thrown using
scope.throw_exception()
.
Attribute Macros
- A macro designed to provide an extremely fast V8->Rust interface layer.