rquickjs 0.1.0

High level bindings to the QuickJS javascript engine
Documentation
[package]
name = "rquickjs"
version = "0.1.0"
authors = ["Mees Delzenne <mees.delzenne@gmail.com>", "K. <kayo@illumium.org>"]
edition = "2018"
license = "MIT"
readme = "README.md"
description = "High level bindings to the QuickJS javascript engine"
keywords = ["quickjs", "ecmascript", "javascript", "es6", "es2020"]
categories = ["api-bindings"]
repository = "https://github.com/DelSkayn/rquickjs.git"

[dependencies.rquickjs-core]
version = "0.1.0"
path = "./rquickjs-core"

[dependencies.rquickjs-macro]
version = "0.1.0"
path = "./rquickjs-macro"
optional = true

[dependencies.async-std-rs]
package = "async-std"
version = "^1"
optional = true
default-features = false
features = ["default", "unstable"]

[dependencies.tokio-rs]
package = "tokio"
version = "^1"
optional = true
default-features = false
features = ["rt"]

[dependencies.smol-rs]
package = "smol"
version = "^1"
optional = true

[dependencies.indexmap-rs]
package = "indexmap"
version = "^1"
optional = true

[dependencies.either-rs]
package = "either"
version = "^1"
optional = true

[workspace]
members = [
    "rquickjs-sys",
    "rquickjs-core",
    "rquickjs-macro",
    "examples/native-module",
    "examples/module-loader",
]

[features]
default = ["exports", "classes", "properties"]

# Almost all features excluding "parallel" and support for async runtimes
full = ["exports", "loader", "allocator", "dyn-load", "either", "indexmap", "registery", "classes", "properties", "macro", "phf"]

# Almost all features excluding "parallel"
full-async = ["full", "async-std", "tokio", "smol"]

# Enable support for Either type
either = ["rquickjs-core/either", "either-rs"]

# Enable support for IndexMap and IndexSet types type
indexmap = ["rquickjs-core/indexmap", "indexmap-rs"]

# Enable support for perfect hash maps
phf = ["rquickjs-core/phf", "rquickjs-macro/phf"]

# Use bindgen to generate bindings at compile-type
# otherwise bundled bindings will be used
bindgen = ["rquickjs-core/bindgen"]

# Enable support of parallel execution
parallel = ["rquickjs-core/parallel"]

# Enable runtime registery
registery = ["rquickjs-core/registery"]

# Enable support of reading module exports
exports = ["rquickjs-core/exports"]

# Enable user-defined module loader support
loader = ["rquickjs-core/loader"]

# Enable native module loading support
dyn-load = ["rquickjs-core/dyn-load"]

# Enable user-defined allocator support
allocator = ["rquickjs-core/allocator"]

# Use Rust global allocator by default
# otherwise libc allocator will be used
rust-alloc = ["rquickjs-core/rust-alloc"]

# Enable user-defined classes support
classes = ["rquickjs-core/classes"]

# Enable user-defined properties support
properties = ["rquickjs-core/properties"]

# Enable helper macros
macro = ["rquickjs-macro"]

# Enable interop between Rust futures and JS Promises
futures = ["rquickjs-core/futures"]

# Enable Tokio async runtime support
tokio = ["rquickjs-core/tokio", "tokio-rs"]

# Enable Async-std runtime support
async-std = ["rquickjs-core/async-std", "async-std-rs"]

# Enable Smol async runtime support
smol = ["rquickjs-core/smol", "smol-rs"]

# Max number of function args
max-args-7 = ["rquickjs-core/max-args-7"]
max-args-8 = ["rquickjs-core/max-args-7"]
max-args-9 = ["rquickjs-core/max-args-8"]
max-args-10 = ["rquickjs-core/max-args-9"]
max-args-11 = ["rquickjs-core/max-args-10"]
max-args-12 = ["rquickjs-core/max-args-11"]
max-args-13 = ["rquickjs-core/max-args-12"]
max-args-14 = ["rquickjs-core/max-args-13"]
max-args-15 = ["rquickjs-core/max-args-14"]
max-args-16 = ["rquickjs-core/max-args-15"]

# Enable QuickJS dumps for debug
dump-bytecode = ["rquickjs-core/dump-bytecode"]
dump-gc = ["rquickjs-core/dump-gc"]
dump-gc-free = ["rquickjs-core/dump-gc-free"]
dump-free = ["rquickjs-core/dump-free"]
# Dump JS values which still alive when runtime is freed
dump-leaks = ["rquickjs-core/dump-leaks"]
dump-mem = ["rquickjs-core/dump-mem"]
dump-objects = ["rquickjs-core/dump-objects"]
dump-atoms = ["rquickjs-core/dump-atoms"]
dump-shapes = ["rquickjs-core/dump-shapes"]
dump-module-resolve = ["rquickjs-core/dump-module-resolve"]
dump-promise = ["rquickjs-core/dump-promise"]
dump-read-object = ["rquickjs-core/dump-read-object"]

# Enable compilation tests
compile-tests = ["rquickjs-core/compile-tests"]

# Enable unstable doc-cfg feature (for docs.rs)
doc-cfg = ["rquickjs-core/doc-cfg"]

[package.metadata.docs.rs]
features = ["full-async", "parallel", "doc-cfg"]