Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
extern crate mini_v8; use ;
- Custom user data can be bound to a
MiniV8::set_user_data). This is useful for storing state between embedded Rust function calls.
HashSet, etc.). You can define a conversion interface for your own types, too. See
src/conversion.rsfor more information.
- Execution timeout support.
Building V8 is notoriously complicated. Currently, MiniV8 requires that consumers manually specify a path to a pre-built V8 using the
V8_PATH environment variable. Follow the official build guide to get up and running. V8 8.6.57 is the currently required version. Other major versions likely have compatibility issues.
MiniV8 is inspired by the MiniRacer Ruby gem, which implements a minimal bridge with V8. From its README: "This [minimal design] reduces the surface area making upgrading [V8] much simpler and exhaustive testing simpler." Contrast this with the ambitious v8-rs crate, which remains unmaintained because "the maintenance burden is too high." The
rusty_v8 crate (itself part of the larger Deno project) provides inspiration for how the V8 build process should be integrated. In the future, I would like this crate to build off of
rusty_v8. Unfortunately, at the time of writing,
rusty_v8 is too unstable to use as a dependency (track issue #3).
When utilizing any FFI, it's significantly easier to select a subset of the entire source library than to attempt to map one-to-one all of its constructs. This of course means sacrificing features and perhaps performance, but allows for flexibility during API design leading to more idiomatic code in the target language.
- MiniV8 only implements a minimal bridge for the full set of types that modern ECMAScript offers. Perhaps the current
Valuebridge should be expanded to support a few more special object types (
Errortype is very limited.
- Once an
Erroris converted into a
Error(we already do this sort of trick to bind Rust closures to V8 functions).
- No support for limiting memory usage.