forked from mavlink/mavlink-camera-manager
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
120 lines (102 loc) · 4.59 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
[package]
authors = ["Patrick José Pereira <[email protected]>"]
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"] }
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-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"] }
## 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.
# 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", "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.22", features = ["v1_16"] }
gst-app = { package = "gstreamer-app", version = "0.22", features = ["v1_16"] }
gst-sdp = { package = "gstreamer-sdp", version = "0.22", features=["v1_16"] }
gst-webrtc = { package = "gstreamer-webrtc", version = "0.22", features = ["v1_16"] }
gst-rtsp = { package = "gstreamer-rtsp", version = "0.22", features = ["v1_16"] }
gst-rtsp-server = { package = "gstreamer-rtsp-server", version = "0.22", features = ["v1_16"] }
gst-video = { package = "gstreamer-video", version = "0.22", features = ["v1_16"] }
webrtc-sdp = { git = "https://github.com/mozilla/webrtc-sdp", sha = "fc78607ac2fe0c7c978ca4630c2e1b937d7ff7c6" }
constcat = "0.5.0"
glib = "0.19.7"
[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", features = ["blocking", "rustls-tls"] }
vergen = { version = "7.5", default-features = false, features = ["build", "git"] }
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"