# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "nebulus"
version = "0.1.38"
build = "build.rs"
exclude = [
    "assets/*.h264",
    "assets/*.h265",
]
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "nebulus"
description = "Low-latency native OpenIPC FPV ground station built with egui"
readme = "README.md"
license = "MIT"
repository = "https://github.com/neelsani/openipc-rs"

[package.metadata.android]
package = "dev.neels.openipc.nebulus"
apk_name = "Nebulus"
java_sources = "android/java"
build_targets = [
    "aarch64-linux-android",
    "armv7-linux-androideabi",
    "x86_64-linux-android",
    "i686-linux-android",
]

[package.metadata.android.sdk]
min_sdk_version = 26
target_sdk_version = 36

[package.metadata.android.application]
theme = "@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"
label = "Nebulus"

[[package.metadata.android.application.activity]]
name = "dev.neels.openipc.nebulus.NebulusActivity"
exported = true

[[package.metadata.android.application.activity.meta_data]]
name = "android.app.lib_name"
value = "nebulus_app"

[[package.metadata.android.application.activity.intent_filter]]
actions = ["android.intent.action.MAIN"]
categories = ["android.intent.category.LAUNCHER"]

[[package.metadata.android.application.service]]
name = "dev.neels.openipc.nebulus.NebulusVpnService"
enabled = true
exported = false
permission = "android.permission.BIND_VPN_SERVICE"

[[package.metadata.android.application.service.intent_filter]]
actions = ["android.net.VpnService"]

[[package.metadata.android.uses_feature]]
name = "android.hardware.usb.host"
required = true

[[package.metadata.android.uses_permission]]
name = "android.permission.INTERNET"

[features]
default = []
web-decode-worker = []

[lib]
name = "nebulus_app"
crate-type = [
    "cdylib",
    "rlib",
]
path = "src/lib.rs"

[[bin]]
name = "nebulus"
path = "src/main.rs"

[[bin]]
name = "nebulus-decode-worker"
path = "src/bin/nebulus-decode-worker/main.rs"
required-features = ["web-decode-worker"]

[[test]]
name = "adaptive_uplink"
path = "tests/adaptive_uplink.rs"

[dependencies.catppuccin-egui]
version = "5.7.0"
features = ["egui33"]
default-features = false

[dependencies.eframe]
version = "0.35"
features = [
    "default_fonts",
    "persistence",
]
default-features = false

[dependencies.egui_plot]
version = "0.36"

[dependencies.log]
version = "0.4"

[dependencies.mavlink]
version = "0.18.0"
features = [
    "std",
    "dialect-common",
    "mav2-message-extensions",
    "mav2-message-signing",
]
default-features = false

[dependencies.muxide]
version = "0.2.5"

[dependencies.nusb]
version = "0.2.3"
package = "nusb-webusb"

[dependencies.openipc-core]
version = "0.1.38"

[dependencies.openipc-rtl88xx]
version = "0.1.38"

[dependencies.openipc-uplink]
version = "0.1.38"

[dependencies.openipc-video]
version = "0.1.38"

[dependencies.ropus]
version = "0.12.18"

[dependencies.semver]
version = "1"

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_json]
version = "1"

[dependencies.sha2]
version = "0.10.9"

[dependencies.url]
version = "2"

[dependencies.web-time]
version = "1.1"

[dependencies.zip]
version = "4.6.1"
features = ["deflate"]
default-features = false

[dev-dependencies.crypto_box]
version = "0.9"

[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android")))'.dependencies.dirs]
version = "6"

[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android")))'.dependencies.reqwest]
version = "0.13.4"
features = [
    "blocking",
    "rustls",
]
default-features = false

[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android")))'.dependencies.rfd]
version = "0.17.2"
features = ["xdg-portal"]
default-features = false

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.console_error_panic_hook]
version = "0.1"

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.eframe]
version = "0.35"
features = ["glow"]
default-features = false

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.egui_glow]
version = "0.35"

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.futures-channel]
version = "0.3"

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.futures-util]
version = "0.3"

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.js-sys]
version = "0.3"

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.rfd]
version = "0.17.2"
default-features = false

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.wasm-bindgen]
version = "0.2"

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.wasm-bindgen-futures]
version = "0.4"

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.web-sys]
version = "0.3"
features = [
    "AudioBuffer",
    "AudioBufferSourceNode",
    "AudioContext",
    "AudioContextState",
    "AudioDestinationNode",
    "AudioNode",
    "AudioParam",
    "AudioScheduledSourceNode",
    "BaseAudioContext",
    "Blob",
    "BlobPropertyBag",
    "Document",
    "DedicatedWorkerGlobalScope",
    "Element",
    "ErrorEvent",
    "EventTarget",
    "GainNode",
    "Headers",
    "HtmlAnchorElement",
    "HtmlCanvasElement",
    "HtmlElement",
    "Navigator",
    "Node",
    "Request",
    "RequestInit",
    "RequestRedirect",
    "Response",
    "MessageEvent",
    "MessageChannel",
    "MessagePort",
    "Usb",
    "UsbDevice",
    "UsbDeviceFilter",
    "UsbDeviceRequestOptions",
    "Url",
    "VideoFrame",
    "Window",
    "Worker",
    "WorkerGlobalScope",
    "WorkerOptions",
    "WorkerType",
    "console",
]

[target.'cfg(all(unix, not(target_arch = "wasm32")))'.dependencies.libc]
version = "0.2"

[target.'cfg(any(target_os = "macos", target_os = "windows"))'.dependencies.tray-icon]
version = "0.24.1"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.cpal]
version = "0.18.1"
features = ["realtime"]

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.socket2]
version = "0.6.4"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1"
features = [
    "rt",
    "time",
]

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tun]
version = "0.8"
features = [
    "async",
    "verify_binary_signature",
]

[target.'cfg(target_os = "android")'.dependencies.android-activity]
version = "0.6"
features = ["native-activity"]

[target.'cfg(target_os = "android")'.dependencies.eframe]
version = "0.35"
features = ["glow"]
default-features = false

[target.'cfg(target_os = "android")'.dependencies.egui_glow]
version = "0.35"

[target.'cfg(target_os = "android")'.dependencies.jni]
version = "0.22.4"

[target.'cfg(target_os = "android")'.dependencies.libc]
version = "0.2"

[target.'cfg(target_os = "android")'.dependencies.log]
version = "0.4"

[target.'cfg(target_os = "android")'.dependencies.ndk]
version = "0.9"
features = [
    "nativewindow",
    "api-level-26",
]
default-features = false

[target.'cfg(target_os = "linux")'.dependencies.eframe]
version = "0.35"
features = [
    "wgpu",
    "wayland",
    "x11",
]
default-features = false

[target.'cfg(target_os = "macos")'.dependencies.eframe]
version = "0.35"
features = ["wgpu"]
default-features = false

[target.'cfg(target_os = "macos")'.dependencies.objc2-core-foundation]
version = "0.3.2"
features = ["std"]
default-features = false

[target.'cfg(target_os = "macos")'.dependencies.objc2-core-video]
version = "0.3.2"
features = [
    "std",
    "CVBase",
    "CVBuffer",
    "CVImageBuffer",
    "CVMetalTexture",
    "CVMetalTextureCache",
    "CVPixelBuffer",
    "CVReturn",
    "objc2",
    "objc2-metal",
]
default-features = false

[target.'cfg(target_os = "macos")'.dependencies.objc2-metal]
version = "0.3.2"
features = [
    "std",
    "MTLDevice",
    "MTLPixelFormat",
    "MTLTexture",
]
default-features = false

[target.'cfg(target_os = "windows")'.dependencies.eframe]
version = "0.35"
features = ["wgpu"]
default-features = false

[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.62.2"
features = [
    "Win32_Foundation",
    "Win32_System_Threading",
]
