content: [package]
  authors = ["Patrick José Pereira <patrickelectric@gmail.com>"]
  description = "An extensible cross-platform camera server built on top of GStreamer and Rust-MAVLink."
  edition = "2021"
  license = "MIT"
  name = "mavlink-camera-manager"
  version = "0.2.4"
  
  documentation = "https://github.com/patrickelectric/mavlink-camera-manager"
  homepage = "https://github.com/patrickelectric/mavlink-camera-manager"
  readme = "README.md"
  repository = "https://github.com/patrickelectric/mavlink-camera-manager"
  
  default-run = "mavlink-camera-manager"
  path = "build.rs"
  
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
  
  [lib]
  name = "mavlink_camera_manager"
  path = "src/lib/mod.rs"
  
  [[bin]]
  bench = false
  name = "mavlink-camera-manager"
  path = "src/main.rs"
  
  [dependencies]
  clap = { version = "4.5", features = ["derive", "env"] }
  regex = "1.10.4"
  
  #TODO: Investigate rweb to use openapi spec for free
  # https://github.com/kdy1/rweb
  async-trait = "0.1.41"
  actix-files = "0.6.5"
  actix-web = { version = "4.6.0", features = ["rustls"] }
  actix-web-validator = "5.0.1"
  actix-ws = "0.3.0"
  actix-service = "2.0.2"
  actix-extensible-rate-limit = "0.3.1"
  actix-cors = "0.7.0"
  serde = { version = "1.0", features = ["derive"] }
  serde_json = "1.0"
  validator = { version = "0.16", features = ["derive"] }
  thiserror = "2.0"
  
  ## FINAL
  sysinfo = "0.29"
  chrono = "0.4"
  lazy_static = "1.4.0"
  include_dir = "0.7.3"
  paperclip = { version = "0.8", features = ["paperclip-actix", "actix4",  "swagger-ui", "url", "uuid"] }
  #TODO: Replace it with yaserde
  quick-xml = { version = "0.31.0", features = ["serialize"] }
  url = { version = "2.5.0", features = ["serde"] }
  directories = "5.0.1"
  pnet = { version = "0.34.0", features = ["std"] }
  semver = "1.0"
  thirtyfour = "0.32"
  shellexpand = "3.1"
  tracing = { version = "0.1.40", features = ["log", "async-await"] }
  tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
  tracing-log = "0.2.0"
  tracing-actix-web = "0.7.10"
  tracing-gstreamer = "0.7.0"
  tracing-tracy = { version = "0.10.5", features = ["ondemand", "broadcast"] } # Note that these features defines the tracy client behavior.
  ringbuffer = "0.15.0"
  scopeguard = "1.2.0"
  zenoh = "1.4.0"
  cdr = "0.2.4"
  tempfile = "3.22.0"
  thread-priority = "3.0.0"
  
  # This is a custom revision adding file name suffix on top of tracing-appender-0.2.2" "0.2.2", but compatible with the current tracing version.
  # Reference: https://github.com/tokio-rs/tracing/issues/2441
  tracing-appender = { git = "https://github.com/joaoantoniocardoso/tracing", branch = "tracing-appender-0.2.2-with-filename-suffix" }
  
  # Onvif
  onvif = { git = "https://github.com/lumeohq/onvif-rs", rev = "8e2408db" }
  onvif-schema = { git = "https://github.com/lumeohq/onvif-rs", rev = "8e2408db", package = "schema", features = ["analytics", "devicemgmt", "event", "media", "ptz"] }
  
  anyhow = "1"
  tokio = { version = "1.37", features = ["full"] }
  enum_dispatch = "0.3.13"
  uuid = { version = "1.8", features = ["v4", "v5", "serde"] }
  ts-rs = { version = "8.1.0", default-features = false, features = ["serde-compat", "uuid-impl"] }
  cached = { version = "0.51", features = ["serde", "serde_json", "async_tokio_rt_multi_thread"] }
  
  ## Mavlink
  mavlink = { version = "0.13.1", features = ["default", "emit-extensions"] }
  
  ## WebRTC
  async-tungstenite = { version = "0.25", features = ["tokio-runtime"] }
  async-std = { version = "1.12", features =  ["tokio1"] }
  futures = "0.3"
  webrtc-util = { version = "0.8.1", default-features = false, features = ["vnet"] }
  turn = "0.7"
  
  ## Image/Thumbnail
  image = "0.24"
  
  ## GSTREAMER
  gst = { package = "gstreamer", version = "0.23", features = ["v1_16"] }
  gst-app = { package = "gstreamer-app", version = "0.23", features = ["v1_16"] }
  gst-sdp = { package = "gstreamer-sdp", version = "0.23", features=["v1_16"] }
  gst-webrtc = { package = "gstreamer-webrtc", version = "0.23", features = ["v1_16"] }
  gst-rtsp = { package = "gstreamer-rtsp", version = "0.23", features = ["v1_16"] }
  gst-rtsp-server = { package = "gstreamer-rtsp-server", version = "0.23", features = ["v1_16"] }
  gst-video = { package = "gstreamer-video", version = "0.23", features = ["v1_16"] }
  webrtc-sdp = "0.3.13"
  constcat = "0.5.0"
  glib = "0.20.6"
  
  [target.'cfg(target_os = "linux")'.dependencies]
  v4l = "0.14.0"
  
  [dev-dependencies]
  rand = "0.8.5"
  serial_test = "0.10"
  tracing-test = "0.2"
  
  [build-dependencies]
  reqwest = { version = "0.12", default-features = false, features = ["blocking", "rustls-tls"] }
  vergen-gix = { version = "1.0.9", default-features = false, features = ["build", "cargo"] }
  ts-rs = { version = "8.1.0", default-features = false, features = ["serde-compat", "uuid-impl"] }
  uuid = { version = "1.8", features = ["v4", "serde"] }
  serde = { version = "1.0", features = ["derive"] }
  regex = "1"
  