Crate rw_deno_core
source ·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.
- 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 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]>
. - BufMutViewWhole is equivalent to
BufMutView
, but cannot be split, preventing someone from accidentally holding aBufView
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]>
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
]. - 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 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§
- Result of calling
ModuleLoader::load
. - Error indicating the reason resolving a module specifier failed.
- The actual source code returned from the loader. Most embedders should try to return bytes and let deno_core interpret if the module should be converted to a string or not.
- 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 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.