neon 0.10.1

A safe abstraction layer for Node.js.
Documentation
[package]
name = "neon"
version = "0.10.1"
authors = ["Dave Herman <david.herman@gmail.com>"]
description = "A safe abstraction layer for Node.js."
readme = "README.md"
homepage = "https://www.neon-bindings.com"
repository = "https://github.com/neon-bindings/neon"
license = "MIT/Apache-2.0"
exclude = ["neon.jpg", "doc/**/*"]
build = "build.rs"
edition = "2018"

[build-dependencies]
neon-build = { version = "=0.10.1", path = "crates/neon-build" }

[dev-dependencies]
lazy_static = "1.4.0"
rustversion = "0.1.4"
semver = "0.9"
psd = "0.1.9"     # used for a doc example
failure = "0.1.5" # used for a doc example

[dependencies]
semver = "0.9.0"
smallvec = "1.4.2"
neon-runtime = { version = "=0.10.1", path = "crates/neon-runtime" }
neon-macros = { version = "=0.10.1", path = "crates/neon-macros", optional = true }

[features]
default = ["legacy-runtime"]

# Enable static tests. These can be fragile because of variations in Rust compiler
# error message formatting from version to version, so they're disabled by default.
enable-static-tests = []

# Enable the EventHandler API of RFC 25.
event-handler-api = []

# Enable the default panic hook. Useful for debugging neon itself.
default-panic-hook = []

# Feature flag to enable the legacy V8/NAN runtime. For now, this feature is
# enabled by default.
legacy-runtime = ["neon-runtime/neon-sys", "neon-build/neon-sys"]

# Default N-API version. Prefer to select a minimum required version.
napi-runtime = ["napi-6"]

# Select the N-API version
# Feature flags to enable the experimental N-API runtime. For now, this feature
# is disabled by default.
# The Node N-API documentation specifies N-API and Node version requirements
# https://nodejs.org/api/n-api.html
napi-1 = ["proc-macros", "neon-macros/napi", "neon-runtime/napi"]
napi-2 = ["napi-1", "neon-runtime/napi-2"]
napi-3 = ["napi-2", "neon-runtime/napi-3"]
napi-4 = ["napi-3", "neon-runtime/napi-4"]
napi-5 = ["napi-4", "neon-runtime/napi-5"]
napi-6 = ["napi-5", "neon-runtime/napi-6"]
napi-latest = ["napi-6"]
napi-experimental = ["napi-6", "neon-runtime/napi-experimental"]

# Feature flag to disable external dependencies on docs build
docs-only = ["neon-runtime/docs-only"]

# Feature flag to enable the try_catch API of RFC 29.
try-catch-api = []

# Feature flag to enable the `EventQueue` API of RFC 33.
# https://github.com/neon-bindings/rfcs/pull/32
channel-api = []

# Deprecated name for `channel-api`
event-queue-api = ["channel-api"]

# Feature flag to include procedural macros
proc-macros = ["neon-macros"]

# Enable `JsPromise` and `Deferred`
# https://github.com/neon-bindings/rfcs/pull/35
promise-api = []
# Enable `TaskBuilder`
# https://github.com/neon-bindings/rfcs/pull/35
task-api = []

[package.metadata.docs.rs]
no-default-features = true
rustdoc-args = ["--cfg", "docsrs"]
features = [
    "channel-api",
    "napi-experimental",
    "proc-macros",
    "try-catch-api",
    "promise-api",
    "task-api",
]

[workspace]
members = [
    "crates/neon-build",
    "crates/neon-macros",
    "crates/neon-runtime",
    "crates/neon-sys",
    "test/static",
    "test/electron",
    "test/dynamic/native",
    "test/napi"
]