Struct JsRuntimeBuilder
pub struct JsRuntimeBuilder { /* private fields */ }js and std only.Expand description
Implementations§
§impl JsRuntimeBuilder
impl JsRuntimeBuilder
pub const DEFAULT_LOOP_ITERATION_LIMIT: u64 = 1_000_000
pub const DEFAULT_LOOP_ITERATION_LIMIT: u64 = 1_000_000
Default instruction-fuel budget, expressed in approximate loop iterations for compatibility with the original API.
pub const DEFAULT_MEMORY_LIMIT: usize
pub const DEFAULT_MEMORY_LIMIT: usize
Default maximum memory available to the private WebAssembly engine.
pub fn with_strict(self, strict: bool) -> JsRuntimeBuilder
pub fn with_strict(self, strict: bool) -> JsRuntimeBuilder
Evaluate all scripts in strict mode,
regardless of "use strict" directives.
pub fn set_strict(&mut self, strict: bool) -> &mut JsRuntimeBuilder
pub fn set_strict(&mut self, strict: bool) -> &mut JsRuntimeBuilder
Evaluate all scripts in strict mode,
regardless of "use strict" directives.
pub fn maybe_with_loop_iteration_limit(
self,
limit: Option<u64>,
) -> JsRuntimeBuilder
pub fn maybe_with_loop_iteration_limit( self, limit: Option<u64>, ) -> JsRuntimeBuilder
Limit script work with deterministic WebAssembly instruction fuel.
The value is scaled to preserve the existing approximate loop-count configuration. Unlike the original per-frame guard, the budget is cumulative across the complete evaluation or function call.
Defaults to Self::DEFAULT_LOOP_ITERATION_LIMIT; None removes
the limit entirely. Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded.
pub fn maybe_set_loop_iteration_limit(
&mut self,
limit: Option<u64>,
) -> &mut JsRuntimeBuilder
pub fn maybe_set_loop_iteration_limit( &mut self, limit: Option<u64>, ) -> &mut JsRuntimeBuilder
Limit script work with deterministic WebAssembly instruction fuel.
The value is scaled to preserve the existing approximate loop-count configuration. Unlike the original per-frame guard, the budget is cumulative across the complete evaluation or function call.
Defaults to Self::DEFAULT_LOOP_ITERATION_LIMIT; None removes
the limit entirely. Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded.
pub fn with_loop_iteration_limit(self, limit: u64) -> JsRuntimeBuilder
pub fn with_loop_iteration_limit(self, limit: u64) -> JsRuntimeBuilder
Limit script work with deterministic WebAssembly instruction fuel.
The value is scaled to preserve the existing approximate loop-count configuration. Unlike the original per-frame guard, the budget is cumulative across the complete evaluation or function call.
Defaults to Self::DEFAULT_LOOP_ITERATION_LIMIT; None removes
the limit entirely. Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded.
pub fn set_loop_iteration_limit(&mut self, limit: u64) -> &mut JsRuntimeBuilder
pub fn set_loop_iteration_limit(&mut self, limit: u64) -> &mut JsRuntimeBuilder
Limit script work with deterministic WebAssembly instruction fuel.
The value is scaled to preserve the existing approximate loop-count configuration. Unlike the original per-frame guard, the budget is cumulative across the complete evaluation or function call.
Defaults to Self::DEFAULT_LOOP_ITERATION_LIMIT; None removes
the limit entirely. Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded.
pub fn without_loop_iteration_limit(self) -> JsRuntimeBuilder
pub fn without_loop_iteration_limit(self) -> JsRuntimeBuilder
Limit script work with deterministic WebAssembly instruction fuel.
The value is scaled to preserve the existing approximate loop-count configuration. Unlike the original per-frame guard, the budget is cumulative across the complete evaluation or function call.
Defaults to Self::DEFAULT_LOOP_ITERATION_LIMIT; None removes
the limit entirely. Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded.
pub fn unset_loop_iteration_limit(&mut self) -> &mut JsRuntimeBuilder
pub fn unset_loop_iteration_limit(&mut self) -> &mut JsRuntimeBuilder
Limit script work with deterministic WebAssembly instruction fuel.
The value is scaled to preserve the existing approximate loop-count configuration. Unlike the original per-frame guard, the budget is cumulative across the complete evaluation or function call.
Defaults to Self::DEFAULT_LOOP_ITERATION_LIMIT; None removes
the limit entirely. Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded.
pub fn with_memory_limit(self, limit: usize) -> JsRuntimeBuilder
pub fn with_memory_limit(self, limit: usize) -> JsRuntimeBuilder
Set the maximum memory available to the private WebAssembly engine.
This includes the JavaScript heap and engine state. Memory growth
beyond the limit traps inside the WebAssembly container and poisons
the runtime. Defaults to Self::DEFAULT_MEMORY_LIMIT.
pub fn set_memory_limit(&mut self, limit: usize) -> &mut JsRuntimeBuilder
pub fn set_memory_limit(&mut self, limit: usize) -> &mut JsRuntimeBuilder
Set the maximum memory available to the private WebAssembly engine.
This includes the JavaScript heap and engine state. Memory growth
beyond the limit traps inside the WebAssembly container and poisons
the runtime. Defaults to Self::DEFAULT_MEMORY_LIMIT.
pub fn maybe_with_execution_time_limit(
self,
limit: Option<Duration>,
) -> JsRuntimeBuilder
pub fn maybe_with_execution_time_limit( self, limit: Option<Duration>, ) -> JsRuntimeBuilder
Wall-clock limit on each evaluation or call.
Wasmtime epoch interruption bounds all execution inside the engine component, including parsing, compilation, built-ins, snapshotting, and drained microtasks. The check is coarse-grained and does not run while a registered Rust host callback is executing.
Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded
and poisons the runtime (JsRuntime::is_poisoned): the engine
was aborted mid-execution, so every later operation fails with
JsErrorKind::Setup. A
JsWorker whose runtime got poisoned exits,
failing pending jobs fast (fail-loud, like a panicking host
function).
The frozen __rama_js_call__ global remains reserved for API
compatibility and never exposes host data.
Defaults to None: no time limit.
pub fn maybe_set_execution_time_limit(
&mut self,
limit: Option<Duration>,
) -> &mut JsRuntimeBuilder
pub fn maybe_set_execution_time_limit( &mut self, limit: Option<Duration>, ) -> &mut JsRuntimeBuilder
Wall-clock limit on each evaluation or call.
Wasmtime epoch interruption bounds all execution inside the engine component, including parsing, compilation, built-ins, snapshotting, and drained microtasks. The check is coarse-grained and does not run while a registered Rust host callback is executing.
Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded
and poisons the runtime (JsRuntime::is_poisoned): the engine
was aborted mid-execution, so every later operation fails with
JsErrorKind::Setup. A
JsWorker whose runtime got poisoned exits,
failing pending jobs fast (fail-loud, like a panicking host
function).
The frozen __rama_js_call__ global remains reserved for API
compatibility and never exposes host data.
Defaults to None: no time limit.
pub fn with_execution_time_limit(self, limit: Duration) -> JsRuntimeBuilder
pub fn with_execution_time_limit(self, limit: Duration) -> JsRuntimeBuilder
Wall-clock limit on each evaluation or call.
Wasmtime epoch interruption bounds all execution inside the engine component, including parsing, compilation, built-ins, snapshotting, and drained microtasks. The check is coarse-grained and does not run while a registered Rust host callback is executing.
Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded
and poisons the runtime (JsRuntime::is_poisoned): the engine
was aborted mid-execution, so every later operation fails with
JsErrorKind::Setup. A
JsWorker whose runtime got poisoned exits,
failing pending jobs fast (fail-loud, like a panicking host
function).
The frozen __rama_js_call__ global remains reserved for API
compatibility and never exposes host data.
Defaults to None: no time limit.
pub fn set_execution_time_limit(
&mut self,
limit: Duration,
) -> &mut JsRuntimeBuilder
pub fn set_execution_time_limit( &mut self, limit: Duration, ) -> &mut JsRuntimeBuilder
Wall-clock limit on each evaluation or call.
Wasmtime epoch interruption bounds all execution inside the engine component, including parsing, compilation, built-ins, snapshotting, and drained microtasks. The check is coarse-grained and does not run while a registered Rust host callback is executing.
Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded
and poisons the runtime (JsRuntime::is_poisoned): the engine
was aborted mid-execution, so every later operation fails with
JsErrorKind::Setup. A
JsWorker whose runtime got poisoned exits,
failing pending jobs fast (fail-loud, like a panicking host
function).
The frozen __rama_js_call__ global remains reserved for API
compatibility and never exposes host data.
Defaults to None: no time limit.
pub fn without_execution_time_limit(self) -> JsRuntimeBuilder
pub fn without_execution_time_limit(self) -> JsRuntimeBuilder
Wall-clock limit on each evaluation or call.
Wasmtime epoch interruption bounds all execution inside the engine component, including parsing, compilation, built-ins, snapshotting, and drained microtasks. The check is coarse-grained and does not run while a registered Rust host callback is executing.
Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded
and poisons the runtime (JsRuntime::is_poisoned): the engine
was aborted mid-execution, so every later operation fails with
JsErrorKind::Setup. A
JsWorker whose runtime got poisoned exits,
failing pending jobs fast (fail-loud, like a panicking host
function).
The frozen __rama_js_call__ global remains reserved for API
compatibility and never exposes host data.
Defaults to None: no time limit.
pub fn unset_execution_time_limit(&mut self) -> &mut JsRuntimeBuilder
pub fn unset_execution_time_limit(&mut self) -> &mut JsRuntimeBuilder
Wall-clock limit on each evaluation or call.
Wasmtime epoch interruption bounds all execution inside the engine component, including parsing, compilation, built-ins, snapshotting, and drained microtasks. The check is coarse-grained and does not run while a registered Rust host callback is executing.
Exceeding it fails the evaluation with
JsErrorKind::LimitExceeded
and poisons the runtime (JsRuntime::is_poisoned): the engine
was aborted mid-execution, so every later operation fails with
JsErrorKind::Setup. A
JsWorker whose runtime got poisoned exits,
failing pending jobs fast (fail-loud, like a panicking host
function).
The frozen __rama_js_call__ global remains reserved for API
compatibility and never exposes host data.
Defaults to None: no time limit.
pub fn with_snapshot_limits(self, limits: JsSnapshotLimits) -> JsRuntimeBuilder
pub fn with_snapshot_limits(self, limits: JsSnapshotLimits) -> JsRuntimeBuilder
Configure resource limits for values copied out of the JS engine.
These limits apply to results, thrown values, and host-function
arguments. The safe defaults are defined by JsSnapshotLimits.
pub fn set_snapshot_limits(
&mut self,
limits: JsSnapshotLimits,
) -> &mut JsRuntimeBuilder
pub fn set_snapshot_limits( &mut self, limits: JsSnapshotLimits, ) -> &mut JsRuntimeBuilder
Configure resource limits for values copied out of the JS engine.
These limits apply to results, thrown values, and host-function
arguments. The safe defaults are defined by JsSnapshotLimits.
pub fn with_global(
self,
name: impl Into<JsStr>,
global: impl IntoJsGlobal,
) -> JsRuntimeBuilder
pub fn with_global( self, name: impl Into<JsStr>, global: impl IntoJsGlobal, ) -> JsRuntimeBuilder
Register a global: a value convertible Into<JsValue>,
or a JsNamespace host object.
pub fn set_global(
&mut self,
name: impl Into<JsStr>,
global: impl IntoJsGlobal,
) -> &mut JsRuntimeBuilder
pub fn set_global( &mut self, name: impl Into<JsStr>, global: impl IntoJsGlobal, ) -> &mut JsRuntimeBuilder
Register a global: a value convertible Into<JsValue>,
or a JsNamespace host object.
pub fn with_fn<A, F>(self, name: impl Into<JsStr>, f: F) -> JsRuntimeBuilderwhere
F: JsFn<A>,
pub fn with_fn<A, F>(self, name: impl Into<JsStr>, f: F) -> JsRuntimeBuilderwhere
F: JsFn<A>,
Register a global host function with typed,
extractor-style arguments (see JsFn).
Trait Implementations§
§impl Clone for JsRuntimeBuilder
impl Clone for JsRuntimeBuilder
§fn clone(&self) -> JsRuntimeBuilder
fn clone(&self) -> JsRuntimeBuilder
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for JsRuntimeBuilder
impl Debug for JsRuntimeBuilder
§impl Default for JsRuntimeBuilder
impl Default for JsRuntimeBuilder
§fn default() -> JsRuntimeBuilder
fn default() -> JsRuntimeBuilder
Auto Trait Implementations§
impl !RefUnwindSafe for JsRuntimeBuilder
impl !UnwindSafe for JsRuntimeBuilder
impl Freeze for JsRuntimeBuilder
impl Send for JsRuntimeBuilder
impl Sync for JsRuntimeBuilder
impl Unpin for JsRuntimeBuilder
impl UnsafeUnpin for JsRuntimeBuilder
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more