2016-11-25 17:34:00 -05:00
|
|
|
[package]
|
|
|
|
name = "moonfire-nvr"
|
2023-10-17 12:36:32 -04:00
|
|
|
version = "0.0.0"
|
2016-11-25 17:34:00 -05:00
|
|
|
authors = ["Scott Lamb <slamb@slamb.org>"]
|
2023-02-11 14:38:12 -05:00
|
|
|
edition = "2021"
|
2021-10-27 16:18:52 -04:00
|
|
|
resolver = "2"
|
2021-02-17 16:28:48 -05:00
|
|
|
license-file = "../LICENSE.txt"
|
2024-08-14 23:43:33 -04:00
|
|
|
rust-version = "1.79"
|
2023-07-08 13:05:32 -04:00
|
|
|
publish = false
|
2016-11-25 17:34:00 -05:00
|
|
|
|
2016-12-10 01:04:35 -05:00
|
|
|
[features]
|
2017-03-02 22:29:28 -05:00
|
|
|
# The nightly feature is used within moonfire-nvr itself to gate the
|
|
|
|
# benchmarks. Also pass it along to crates that can benefit from it.
|
2022-09-29 01:19:35 -04:00
|
|
|
nightly = ["db/nightly"]
|
2016-12-10 01:04:35 -05:00
|
|
|
|
2023-08-04 13:52:05 -04:00
|
|
|
# The bundled feature aims to make a single executable file that is deployable,
|
|
|
|
# including statically linked libraries and embedded UI files.
|
|
|
|
bundled = ["rusqlite/bundled", "bundled-ui"]
|
|
|
|
|
|
|
|
bundled-ui = []
|
2017-03-04 01:42:13 -05:00
|
|
|
|
2018-02-21 02:15:39 -05:00
|
|
|
[workspace]
|
2020-03-28 03:59:25 -04:00
|
|
|
members = ["base", "db"]
|
2018-02-21 02:15:39 -05:00
|
|
|
|
2023-07-10 01:04:17 -04:00
|
|
|
[workspace.dependencies]
|
2024-08-23 23:56:40 -04:00
|
|
|
base64 = "0.22.0"
|
2023-12-29 18:17:10 -05:00
|
|
|
h264-reader = "0.7.0"
|
2024-01-06 13:43:20 -05:00
|
|
|
itertools = "0.12.0"
|
|
|
|
nix = "0.27.0"
|
2024-05-30 21:17:04 -04:00
|
|
|
pretty-hex = "0.4.0"
|
2024-01-06 13:43:20 -05:00
|
|
|
ring = "0.17.0"
|
2024-08-24 00:34:04 -04:00
|
|
|
rusqlite = "0.32.1"
|
|
|
|
tracing = { version = "0.1" }
|
|
|
|
tracing-core = "0.1.30"
|
|
|
|
tracing-futures = { version = "0.2.5", features = ["futures-03", "std-future"] }
|
2024-05-30 21:17:04 -04:00
|
|
|
tracing-log = "0.2"
|
2024-08-24 00:34:04 -04:00
|
|
|
tracing-subscriber = { version = "0.3.16" }
|
2023-07-10 01:04:17 -04:00
|
|
|
|
2016-11-25 17:34:00 -05:00
|
|
|
[dependencies]
|
2018-12-28 22:53:29 -05:00
|
|
|
base = { package = "moonfire-base", path = "base" }
|
2023-12-29 18:17:10 -05:00
|
|
|
base64 = { workspace = true }
|
2021-08-31 16:04:26 -04:00
|
|
|
blake3 = "1.0.0"
|
2023-07-08 13:01:45 -04:00
|
|
|
bpaf = { version = "0.9.1", features = ["autocomplete", "bright-color", "derive"]}
|
2021-01-27 14:47:52 -05:00
|
|
|
bytes = "1"
|
2017-01-27 23:58:04 -05:00
|
|
|
byteorder = "1.0"
|
2024-08-24 16:11:17 -04:00
|
|
|
cursive = { version = "0.21.1", default-features = false, features = ["termion-backend"] }
|
2018-12-28 22:53:29 -05:00
|
|
|
db = { package = "moonfire-db", path = "db" }
|
2020-01-09 02:04:36 -05:00
|
|
|
futures = "0.3"
|
2023-12-29 18:17:10 -05:00
|
|
|
h264-reader = { workspace = true }
|
2024-08-23 23:56:40 -04:00
|
|
|
http = "1.1.0"
|
|
|
|
http-serve = { version = "0.4.0-rc.1", features = ["dir"] }
|
|
|
|
hyper = { version = "1.4.1", features = ["http1", "server"] }
|
2024-01-06 13:43:20 -05:00
|
|
|
itertools = { workspace = true }
|
2016-11-25 17:34:00 -05:00
|
|
|
libc = "0.2"
|
2021-06-05 02:28:48 -04:00
|
|
|
log = { version = "0.4" }
|
2018-11-26 00:31:50 -05:00
|
|
|
memchr = "2.0.2"
|
2024-01-06 13:43:20 -05:00
|
|
|
nix = { workspace = true, features = ["time", "user"] }
|
2021-08-31 16:04:26 -04:00
|
|
|
nom = "7.0.0"
|
2024-01-06 13:43:20 -05:00
|
|
|
password-hash = "0.5.0"
|
2024-05-30 21:17:04 -04:00
|
|
|
pretty-hex = { workspace = true }
|
2022-05-02 14:22:14 -04:00
|
|
|
protobuf = "3.0"
|
2022-03-08 14:41:00 -05:00
|
|
|
reffers = "0.7.0"
|
2024-08-14 23:43:33 -04:00
|
|
|
retina = "0.4.9"
|
2024-01-06 13:43:20 -05:00
|
|
|
ring = { workspace = true }
|
2023-07-10 01:04:17 -04:00
|
|
|
rusqlite = { workspace = true }
|
2018-12-28 22:53:29 -05:00
|
|
|
serde = { version = "1.0", features = ["derive"] }
|
2017-06-11 15:57:55 -04:00
|
|
|
serde_json = "1.0"
|
2021-10-27 11:05:07 -04:00
|
|
|
smallvec = { version = "1.7", features = ["union"] }
|
2016-11-25 17:34:00 -05:00
|
|
|
time = "0.1"
|
2023-02-03 19:56:27 -05:00
|
|
|
tokio = { version = "1.24", features = ["macros", "rt-multi-thread", "signal", "sync", "time"] }
|
2024-08-23 23:56:40 -04:00
|
|
|
tokio-tungstenite = "0.23.1"
|
2024-01-06 14:54:33 -05:00
|
|
|
toml = "0.8"
|
2024-08-24 00:34:04 -04:00
|
|
|
tracing = { workspace = true, features = ["log"] }
|
2023-02-16 02:14:54 -05:00
|
|
|
tracing-subscriber = { version = "0.3.16", features = ["env-filter", "json"] }
|
|
|
|
tracing-core = "0.1.30"
|
2023-07-04 16:45:33 -04:00
|
|
|
tracing-futures = { version = "0.2.5", features = ["futures-03", "std-future"] }
|
2024-01-06 13:43:20 -05:00
|
|
|
tracing-log = { workspace = true }
|
2023-02-16 02:14:54 -05:00
|
|
|
ulid = "1.0.0"
|
2023-07-04 16:45:33 -04:00
|
|
|
url = "2.1.1"
|
|
|
|
uuid = { version = "1.1.2", features = ["serde", "std", "v4"] }
|
2023-08-04 13:52:05 -04:00
|
|
|
flate2 = "1.0.26"
|
2023-10-17 12:36:32 -04:00
|
|
|
git-version = "0.3.5"
|
2024-08-23 23:56:40 -04:00
|
|
|
hyper-util = { version = "0.1.7", features = ["server-graceful", "tokio"] }
|
|
|
|
http-body = "1.0.1"
|
|
|
|
http-body-util = "0.1.2"
|
2023-08-04 13:52:05 -04:00
|
|
|
|
2023-10-20 00:34:28 -04:00
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
2024-01-06 13:43:20 -05:00
|
|
|
libsystemd = "0.7.0"
|
2023-10-20 00:34:28 -04:00
|
|
|
|
2023-08-04 13:52:05 -04:00
|
|
|
[build-dependencies]
|
2024-01-06 13:43:20 -05:00
|
|
|
ahash = "0.8"
|
2023-08-04 13:52:05 -04:00
|
|
|
blake3 = "1.0.0"
|
|
|
|
walkdir = "2.3.3"
|
2016-12-09 00:28:50 -05:00
|
|
|
|
2016-11-25 17:34:00 -05:00
|
|
|
[dev-dependencies]
|
2022-03-18 13:30:23 -04:00
|
|
|
mp4 = { git = "https://github.com/scottlamb/mp4-rust", branch = "moonfire" }
|
2021-07-09 18:01:15 -04:00
|
|
|
num-rational = { version = "0.4.0", default-features = false, features = ["std"] }
|
2024-08-23 23:56:40 -04:00
|
|
|
reqwest = { version = "0.12.0", default-features = false, features = ["json"] }
|
2021-05-17 16:08:01 -04:00
|
|
|
tempfile = "3.2.0"
|
2023-02-16 02:14:54 -05:00
|
|
|
tracing-test = "0.2.4"
|
2016-11-25 17:34:00 -05:00
|
|
|
|
2020-11-24 10:53:52 -05:00
|
|
|
[profile.dev.package.scrypt]
|
|
|
|
# On an Intel i3-6100U @ 2.30 GHz, a single scrypt password hash takes 7.6
|
|
|
|
# seconds at opt-level=0, or 0.096 seconds at opt-level=2. Always optimize this
|
|
|
|
# crate to avoid seeming hung / being annoyingly slow when debugging.
|
|
|
|
opt-level = 2
|
|
|
|
|
2016-11-25 17:34:00 -05:00
|
|
|
[profile.release]
|
2022-01-05 12:55:30 -05:00
|
|
|
debug = 1
|
2016-11-25 17:34:00 -05:00
|
|
|
|
2022-04-14 13:53:03 -04:00
|
|
|
[profile.release-lto]
|
|
|
|
inherits = "release"
|
|
|
|
lto = true
|
|
|
|
|
2016-11-25 17:34:00 -05:00
|
|
|
[profile.bench]
|
2022-01-05 12:55:30 -05:00
|
|
|
debug = 1
|
2023-01-05 18:35:26 -05:00
|
|
|
|
|
|
|
[patch.crates-io]
|
2024-01-06 14:54:33 -05:00
|
|
|
|
2024-08-24 00:34:04 -04:00
|
|
|
# Override the `tracing` crate versions with a branch that updates the
|
|
|
|
# `matchers` dependency to avoid duplicate `regex-automata` crate versions.
|
|
|
|
# This branch is based on tracing's `0.1.x` branch with changes similar to
|
|
|
|
# <https://github.com/tokio-rs/tracing/pull/3033> applied.
|
|
|
|
tracing = { git = "https://github.com/scottlamb/tracing", rev = "861b443d7b2da400ca7b09111957f33c80135908" }
|
|
|
|
tracing-core = { git = "https://github.com/scottlamb/tracing", rev = "861b443d7b2da400ca7b09111957f33c80135908" }
|
|
|
|
tracing-log = { git = "https://github.com/scottlamb/tracing", rev = "861b443d7b2da400ca7b09111957f33c80135908" }
|
2024-08-23 23:56:40 -04:00
|
|
|
tracing-subscriber = { git = "https://github.com/scottlamb/tracing", rev = "861b443d7b2da400ca7b09111957f33c80135908" }
|