[package]
name = "nokhwa"
version = "0.10.1"
authors = ["l1npengtul <l1npengtul@protonmail.com>"]
edition = "2021"
description = "A Simple-to-use, cross-platform Rust Webcam Capture Library"
keywords = ["camera", "webcam", "capture", "cross-platform"]
license = "Apache-2.0"
repository = "https://github.com/l1npengtul/nokhwa"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[workspace]
members = ["nokhwa-bindings-macos", "nokhwa-bindings-windows", "nokhwa-bindings-linux", "nokhwa-core", "examples/*"]
exclude = ["examples/jscam"]

[lib]
crate-type = ["cdylib", "rlib"]

[features]
default = ["flume", "decoding"]
serialize = ["serde", "nokhwa-core/serialize"]
decoding = ["nokhwa-core/mjpeg"]
input-avfoundation = ["nokhwa-bindings-macos"]
input-msmf = ["nokhwa-bindings-windows"]
input-v4l = ["nokhwa-bindings-linux"]
input-native = ["input-avfoundation", "input-v4l", "input-msmf"]
# Re-enable it once soundness has been proven + mozjpeg is updated to 0.9.x
# input-uvc = ["uvc", "uvc/vendor", "usb_enumeration", "lazy_static"]
input-opencv = ["opencv", "opencv/rgb", "rgb", "nokhwa-core/opencv-mat"]
input-jscam = ["web-sys", "js-sys", "wasm-bindgen-futures", "wasm-bindgen", "wasm-rs-async-executor"]
output-wgpu = ["wgpu", "nokhwa-core/wgpu-types"]
#output-wasm = ["input-jscam"]
output-threaded = []
small-wasm = []
docs-only = ["input-native", "input-opencv", "input-jscam","output-wgpu", "output-threaded", "serialize"]
docs-nolink = ["opencv/docs-only", "nokhwa-core/docs-features"]
docs-features = []
test-fail-warning = []

[dependencies]
thiserror = "1.0"
paste = "1.0"

[dependencies.nokhwa-core]
version = "0.1.0"
path = "nokhwa-core"

[dependencies.serde]
version = "1.0"
optional = true

[dependencies.flume]
version = "0.10"
optional = true

[dependencies.image]
version = "0.24"
default-features = false

[dependencies.v4l]
version = "0.13"
optional = true

[dependencies.usb_enumeration]
version = "0.2"
optional = true

[dependencies.wgpu]
version = "0.14"
optional = true

[dependencies.opencv]
version = "0.74"
default-features = false
features = ["videoio"]
optional = true

[dependencies.rgb]
version = "0.8"
optional = true

[dependencies.nokhwa-bindings-windows]
version = "0.4.0"
path = "nokhwa-bindings-windows"
optional = true

[dependencies.nokhwa-bindings-macos]
version = "0.2.0"
path = "nokhwa-bindings-macos"
optional = true

[dependencies.nokhwa-bindings-linux]
version = "0.1.0"
path = "nokhwa-bindings-linux"
optional = true

[dependencies.regex]
version = "1.7"
optional = true

[dependencies.web-sys]
version = "0.3"
features = [
    "console",
    "CanvasRenderingContext2d",
    "CssStyleDeclaration",
    "Document",
    "Element",
    "HtmlElement", "HtmlVideoElement", "HtmlCanvasElement",
    "ImageData",
    "MediaDevices", "MediaDeviceInfo", "MediaDeviceKind", "MediaStreamConstraints", "MediaTrackSupportedConstraints", "MediaStream", "MediaStreamTrack", "MediaTrackSettings", "MediaTrackConstraints", "MediaStreamTrackState",
    "MimeType", "MimeTypeArray",
    "Navigator",
    "Node",
    "Permissions", "PermissionDescriptor", "PermissionState", "PermissionStatus",
    "Plugin", "PluginArray",
    "Window"
]
optional = true

[dependencies.js-sys]
version = "0.3"
optional = true

[dependencies.wasm-bindgen]
version = "0.2"
optional = true

[dependencies.wasm-bindgen-futures]
version = "0.4"
optional = true

[dependencies.wasm-rs-async-executor]
version = "0.9"
optional = true

[package.metadata.docs.rs]
features = ["docs-only", "docs-nolink", "docs-features"]
