diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bb130be..f5b4112 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: name: Rust ${{ matrix.rust }} strategy: matrix: - rust: ["stable", "1.82", "nightly"] + rust: ["stable", "1.88", "nightly"] include: - rust: nightly extra_args: "--features nightly --benches" diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cae19d..fb3cf35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,10 +8,13 @@ upgrades, e.g. `v0.6.x` -> `v0.7.x`. The config file format and [API](ref/api.md) currently have no stability guarantees, so they may change even on minor releases, e.g. `v0.7.5` -> `v0.7.6`. -## unreleased +## v0.7.22 (2025-10-03) * switch from per-layer to global `tracing` filter to avoid missing log lines (tokio-rs/tracing#2519)[https://github.com/tokio-rs/tracing/issues/2519]). +* update Retina to [v0.4.14](https://github.com/scottlamb/retina/blob/main/CHANGELOG.md#v0414-2025-10-03), + improving camera compatibility. Fixes [#344](https://github.com/scottlamb/moonfire-nvr/issues/344). +* bump minimum Rust version to 1.88. ## v0.7.21 (2025-04-04) diff --git a/guide/build.md b/guide/build.md index 0ac8700..49c8159 100644 --- a/guide/build.md +++ b/guide/build.md @@ -68,7 +68,7 @@ following command: $ brew install node ``` -Next, you need Rust 1.82+ and Cargo. The easiest way to install them is by +Next, you need Rust 1.88+ and Cargo. The easiest way to install them is by following the instructions at [rustup.rs](https://www.rustup.rs/). Avoid your Linux distribution's Rust packages, which tend to be too old. (At least on Debian-based systems; Arch and Gentoo might be okay.) diff --git a/guide/install.md b/guide/install.md index 7b1ebf4..5af681e 100644 --- a/guide/install.md +++ b/guide/install.md @@ -26,10 +26,10 @@ left, and pick the [latest tagged version](https://github.com/scottlamb/moonfire Download the binary for your platform from the matching GitHub release. Install it as `/usr/local/bin/moonfire-nvr` and ensure it is executable, e.g. -for version `v0.7.21`: +for version `v0.7.22`: ```console -$ VERSION=v0.7.21 +$ VERSION=v0.7.22 $ ARCH=$(uname -m) $ curl -OL "https://github.com/scottlamb/moonfire-nvr/releases/download/$VERSION/moonfire-nvr-$VERSION-$ARCH" $ sudo install -m 755 "moonfire-nvr-$VERSION-$ARCH" /usr/local/bin/moonfire-nvr @@ -65,7 +65,7 @@ services: moonfire-nvr: # The `vX.Y.Z` images will work on any architecture (x86-64, arm, or # aarch64); just pick the correct version. - image: ghcr.io/scottlamb/moonfire-nvr:v0.7.21 + image: ghcr.io/scottlamb/moonfire-nvr:v0.7.22 command: run volumes: diff --git a/server/Cargo.lock b/server/Cargo.lock index eaffadb..d43718c 100644 --- a/server/Cargo.lock +++ b/server/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -57,6 +57,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.4.0" @@ -104,9 +110,9 @@ checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" [[package]] name = "blake3" -version = "1.5.5" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" +checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" dependencies = [ "arrayref", "arrayvec", @@ -126,9 +132,9 @@ dependencies = [ [[package]] name = "bpaf" -version = "0.9.15" +version = "0.9.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50fd5174866dc2fa2ddc96e8fb800852d37f064f32a45c7b7c2f8fa2c64c77fa" +checksum = "473976d7a8620bb1e06dcdd184407c2363fe4fec8e983ee03ed9197222634a31" dependencies = [ "bpaf_derive", "owo-colors", @@ -137,9 +143,9 @@ dependencies = [ [[package]] name = "bpaf_derive" -version = "0.5.13" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf95d9c7e6aba67f8fc07761091e93254677f4db9e27197adecebc7039a58722" +checksum = "fefb4feeec9a091705938922f26081aad77c64cd2e76cd1c4a9ece8e42e1618a" dependencies = [ "proc-macro2", "quote", @@ -169,9 +175,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.9.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "castaway" @@ -377,9 +383,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.7.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "deranged" @@ -715,9 +721,9 @@ dependencies = [ [[package]] name = "http" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -751,12 +757,12 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", + "futures-core", "http", "http-body", "pin-project-lite", @@ -764,9 +770,9 @@ dependencies = [ [[package]] name = "http-serve" -version = "0.4.0-rc.1" +version = "0.4.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e30e587eb43944a00ad6b239f691694564fc050c81b86e39006082037188084" +checksum = "18a4eb23604eafa9eafc6d9c2e2032c0bfe9dd7362428eea4914d94168cc992f" dependencies = [ "bytes", "flate2", @@ -799,19 +805,21 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.5.2" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "http", "http-body", "httparse", "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -819,16 +827,21 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ + "base64", "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", "hyper", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", "socket2", "tokio", @@ -983,9 +996,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.1" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", "hashbrown", @@ -1000,12 +1013,33 @@ dependencies = [ "generic-array", ] +[[package]] +name = "io-uring" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +dependencies = [ + "bitflags", + "cfg-if", + "libc", +] + [[package]] name = "ipnet" version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "is_ci" version = "1.2.0" @@ -1029,10 +1063,11 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jiff" -version = "0.1.26" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e58800dee30ca82a1c107c64a0effca7ccb4e6106645c0e3af40d5aaba9f5457" +checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" dependencies = [ + "jiff-static", "jiff-tzdb-platform", "log", "portable-atomic", @@ -1041,6 +1076,17 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "jiff-static" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "jiff-tzdb" version = "0.1.4" @@ -1074,14 +1120,15 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.169" +version = "0.2.176" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174" [[package]] name = "libmimalloc-sys" -version = "0.1.41" -source = "git+https://github.com/scottlamb/mimalloc_rust?branch=musl-fix#39596674eef4cdc69fb102c20f6881466a9fadd3" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "667f4fec20f29dfc6bc7357c582d91796c169ad7e2fce709468aefeb2c099870" dependencies = [ "cc", "cty", @@ -1101,9 +1148,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.32.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb8270bb4060bd76c6e96f20c52d80620f1d82a3470885694e41e0f81ef6fe7" +checksum = "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f" dependencies = [ "cc", "pkg-config", @@ -1152,9 +1199,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.25" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "matchers" @@ -1177,9 +1224,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memoffset" @@ -1654,20 +1701,18 @@ dependencies = [ [[package]] name = "protobuf" -version = "3.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3a7c64d9bf75b1b8d981124c14c179074e8caa7dfe7b6a12e6222ddcd0c8f72" +version = "3.7.2" +source = "git+https://github.com/scottlamb/rust-protobuf?rev=593aa7f26bb5fc736c2e61d410afa34efb914ecb#593aa7f26bb5fc736c2e61d410afa34efb914ecb" dependencies = [ "once_cell", "protobuf-support", - "thiserror 1.0.69", + "thiserror 2.0.17", ] [[package]] name = "protobuf-codegen" -version = "3.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e26b833f144769a30e04b1db0146b2aaa53fd2fd83acf10a6b5f996606c18144" +version = "3.7.2" +source = "git+https://github.com/scottlamb/rust-protobuf?rev=593aa7f26bb5fc736c2e61d410afa34efb914ecb#593aa7f26bb5fc736c2e61d410afa34efb914ecb" dependencies = [ "anyhow", "once_cell", @@ -1675,14 +1720,13 @@ dependencies = [ "protobuf-parse", "regex", "tempfile", - "thiserror 1.0.69", + "thiserror 2.0.17", ] [[package]] name = "protobuf-parse" -version = "3.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322330e133eab455718444b4e033ebfac7c6528972c784fcde28d2cc783c6257" +version = "3.7.2" +source = "git+https://github.com/scottlamb/rust-protobuf?rev=593aa7f26bb5fc736c2e61d410afa34efb914ecb#593aa7f26bb5fc736c2e61d410afa34efb914ecb" dependencies = [ "anyhow", "indexmap", @@ -1690,17 +1734,16 @@ dependencies = [ "protobuf", "protobuf-support", "tempfile", - "thiserror 1.0.69", + "thiserror 2.0.17", "which", ] [[package]] name = "protobuf-support" -version = "3.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b088fd20b938a875ea00843b6faf48579462630015c3788d397ad6a786663252" +version = "3.7.2" +source = "git+https://github.com/scottlamb/rust-protobuf?rev=593aa7f26bb5fc736c2e61d410afa34efb914ecb#593aa7f26bb5fc736c2e61d410afa34efb914ecb" dependencies = [ - "thiserror 1.0.69", + "thiserror 2.0.17", ] [[package]] @@ -1797,24 +1840,20 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.12" +version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "base64", "bytes", "futures-core", - "futures-util", "http", "http-body", "http-body-util", "hyper", "hyper-util", - "ipnet", "js-sys", "log", - "mime", - "once_cell", "percent-encoding", "pin-project-lite", "serde", @@ -1823,19 +1862,19 @@ dependencies = [ "sync_wrapper", "tokio", "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows-registry", ] [[package]] name = "retina" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cb881f2fb51b0b4e814a524bfb938007bdf3df5f8430ec0b4e014d2dc877f50" +checksum = "783b4b9caaf5c46c93b9946590b29e58b267832b2b9e71fd85740f5001586fe4" dependencies = [ "base64", "bitstream-io", @@ -1853,7 +1892,7 @@ dependencies = [ "rtsp-types", "sdp-types", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.17", "tokio", "tokio-util", "url", @@ -1898,9 +1937,9 @@ dependencies = [ [[package]] name = "rusqlite" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e34486da88d8e051c7c0e23c3f15fd806ea8546260aa2fec247e97242ec143" +checksum = "165ca6e57b20e1351573e3729b958bc62f0e48025386970b6e4d29e7a7e71f3f" dependencies = [ "bitflags", "fallible-iterator", @@ -1989,18 +2028,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.217" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -2009,23 +2058,24 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.137" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "serde_spanned" -version = "0.6.8" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "5417783452c2be558477e104686f7de5dae53dba813c28435e0e70f82d9b04ee" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -2098,27 +2148,24 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" -version = "1.13.2" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.5.8" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2222,11 +2269,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.11" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.11", + "thiserror-impl 2.0.17", ] [[package]] @@ -2242,9 +2289,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.11" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", @@ -2321,19 +2368,21 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.43.0" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "pin-project-lite", "signal-hook-registry", + "slab", "socket2", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2374,38 +2423,43 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0" dependencies = [ - "serde", + "indexmap", + "serde_core", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_parser", + "toml_writer", + "winnow", ] [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" dependencies = [ - "serde", + "serde_core", ] [[package]] -name = "toml_edit" -version = "0.22.22" +name = "toml_parser" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", "winnow", ] +[[package]] +name = "toml_writer" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d163a63c116ce562a22cda521fcc4d79152e7aba014456fb5eb442f6d6a10109" + [[package]] name = "tower" version = "0.5.2" @@ -2421,6 +2475,24 @@ dependencies = [ "tower-service", ] +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -2555,7 +2627,7 @@ dependencies = [ "log", "rand", "sha1", - "thiserror 2.0.11", + "thiserror 2.0.17", "utf-8", ] @@ -2797,36 +2869,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" -dependencies = [ - "windows-result", - "windows-strings", - "windows-targets", -] - -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result", - "windows-targets", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -2911,12 +2953,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.24" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" -dependencies = [ - "memchr", -] +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" [[package]] name = "write16" diff --git a/server/Cargo.toml b/server/Cargo.toml index b631e83..5d986ac 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Scott Lamb "] edition = "2021" resolver = "2" license-file = "../LICENSE.txt" -rust-version = "1.82" +rust-version = "1.88" publish = false [features] @@ -27,11 +27,11 @@ members = ["base", "db"] base64 = "0.22.0" h264-reader = "0.8.0" itertools = "0.14.0" -jiff = "0.1.6" +jiff = "0.2.1" nix = "0.27.0" pretty-hex = "0.4.0" ring = "0.17.0" -rusqlite = "0.34.0" +rusqlite = "0.37.0" tracing = { version = "0.1" } tracing-core = "0.1.30" tracing-futures = { version = "0.2.5", features = ["futures-03", "std-future"] } @@ -39,6 +39,10 @@ tracing-log = "0.2" tracing-subscriber = { version = "0.3.16" } uuid = { version = "1.1.2", features = ["serde", "std", "v7", "fast-rng"] } +# This is 3.7.2 + dependency updates. +protobuf = { git = "https://github.com/scottlamb/rust-protobuf", rev = "593aa7f26bb5fc736c2e61d410afa34efb914ecb" } +protobuf-codegen = { git = "https://github.com/scottlamb/rust-protobuf", rev = "593aa7f26bb5fc736c2e61d410afa34efb914ecb" } + [dependencies] base = { package = "moonfire-base", path = "base" } base64 = { workspace = true } @@ -69,9 +73,9 @@ nix = { workspace = true, features = ["time", "user"] } nom = "7.0.0" password-hash = "0.5.0" pretty-hex = { workspace = true } -protobuf = "3.0" +protobuf = { workspace = true } reffers = "0.7.0" -retina = "0.4.13" +retina = "0.4.14" ring = { workspace = true } rusqlite = { workspace = true } serde = { version = "1.0", features = ["derive"] } @@ -85,7 +89,7 @@ tokio = { version = "1.24", features = [ "time", ] } tokio-tungstenite = "0.26.1" -toml = "0.8" +toml = "0.9" tracing = { workspace = true, features = ["log"] } tracing-subscriber = { version = "0.3.16", features = ["env-filter", "json"] } tracing-core = "0.1.30" diff --git a/server/base/Cargo.toml b/server/base/Cargo.toml index 3c926b0..a7ba7bc 100644 --- a/server/base/Cargo.toml +++ b/server/base/Cargo.toml @@ -6,7 +6,7 @@ readme = "../README.md" edition = "2021" license-file = "../../LICENSE.txt" publish = false -rust-version = "1.82" +rust-version = "1.88" [features] mimalloc = ["dep:libmimalloc-sys"] @@ -21,7 +21,7 @@ coded = { git = "https://github.com/scottlamb/coded", rev = "2c97994974a73243d5d futures = "0.3" jiff = { workspace = true } libc = "0.2" -libmimalloc-sys = { git = "https://github.com/scottlamb/mimalloc_rust", branch = "musl-fix", features = [ +libmimalloc-sys = { version = "0.1.44", features = [ "override", "extended", ], optional = true } diff --git a/server/db/Cargo.toml b/server/db/Cargo.toml index a47ad1d..4cd5869 100644 --- a/server/db/Cargo.toml +++ b/server/db/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Scott Lamb "] readme = "../README.md" edition = "2021" license-file = "../../LICENSE.txt" -rust-version = "1.82" +rust-version = "1.88" publish = false [features] @@ -31,7 +31,7 @@ num-rational = { version = "0.4.0", default-features = false, features = [ "std", ] } pretty-hex = { workspace = true } -protobuf = "3.0" +protobuf = { workspace = true } ring = { workspace = true } rusqlite = { workspace = true } scrypt = "0.11.0" @@ -45,4 +45,4 @@ url = { version = "2.1.1", features = ["serde"] } uuid = { workspace = true } [build-dependencies] -protobuf-codegen = "3.0" +protobuf-codegen = { workspace = true } diff --git a/server/db/writer.rs b/server/db/writer.rs index b2ee6d3..c5936a9 100644 --- a/server/db/writer.rs +++ b/server/db/writer.rs @@ -1212,7 +1212,7 @@ mod tests { } fn eio() -> io::Error { - io::Error::new(io::ErrorKind::Other, "got EIO") + io::Error::other("got EIO") } #[test]