diff --git a/Cargo.lock b/Cargo.lock index a1210b2f38..d8b198b230 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,7 +44,7 @@ dependencies = [ "actix-rt", "actix-service", "actix-utils", - "base64", + "base64 0.22.1", "bitflags 2.9.3", "brotli", "bytes", @@ -93,7 +93,7 @@ dependencies = [ "cfg-if", "http 0.2.12", "regex-lite", - "serde 1.0.219", + "serde", "tracing", ] @@ -176,7 +176,7 @@ dependencies = [ "once_cell", "pin-project-lite", "regex-lite", - "serde 1.0.219", + "serde", "serde_json", "serde_urlencoded", "smallvec", @@ -324,10 +324,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] -name = "arrayvec" -version = "0.5.2" +name = "arraydeque" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" [[package]] name = "assert-json-diff" @@ -335,7 +335,7 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" dependencies = [ - "serde 1.0.219", + "serde", "serde_json", ] @@ -388,6 +388,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "base64" version = "0.22.1" @@ -428,6 +434,9 @@ name = "bitflags" version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" +dependencies = [ + "serde", +] [[package]] name = "block-buffer" @@ -521,7 +530,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ - "nom 7.1.3", + "nom", ] [[package]] @@ -545,7 +554,7 @@ dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", - "num-traits 0.2.19", + "num-traits", "wasm-bindgen", "windows-link", ] @@ -602,18 +611,51 @@ dependencies = [ [[package]] name = "config" -version = "0.11.0" +version = "0.15.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369" +checksum = "0faa974509d38b33ff89282db9c3295707ccf031727c0de9772038ec526852ba" dependencies = [ - "lazy_static", - "nom 5.1.3", + "async-trait", + "convert_case", + "json5", + "pathdiff", + "ron", "rust-ini", - "serde 1.0.219", - "serde-hjson", + "serde", + "serde-untagged", "serde_json", - "toml 0.5.11", - "yaml-rust", + "toml", + "winnow", + "yaml-rust2", +] + +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.16", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", ] [[package]] @@ -655,6 +697,12 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + [[package]] name = "crypto-common" version = "0.1.6" @@ -756,7 +804,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ - "serde 1.0.219", + "serde", "uuid", ] @@ -870,6 +918,15 @@ dependencies = [ "syn", ] +[[package]] +name = "dlv-list" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" +dependencies = [ + "const-random", +] + [[package]] name = "docopt" version = "1.1.1" @@ -878,7 +935,7 @@ checksum = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f" dependencies = [ "lazy_static", "regex", - "serde 1.0.219", + "serde", "strsim 0.10.0", ] @@ -965,7 +1022,17 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c" dependencies = [ - "serde 1.0.219", + "serde", +] + +[[package]] +name = "erased-serde" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" +dependencies = [ + "serde", + "typeid", ] [[package]] @@ -1165,7 +1232,7 @@ name = "glean" version = "0.20.1" dependencies = [ "chrono", - "serde 1.0.219", + "serde", "serde_json", "uuid", ] @@ -1256,11 +1323,29 @@ dependencies = [ "tracing", ] +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + [[package]] name = "hashbrown" version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashlink" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +dependencies = [ + "hashbrown 0.15.5", +] [[package]] name = "hawk" @@ -1269,7 +1354,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab302457b3e28e621daab18932d67a67328f29240bfaa5f604b7627ece1eacda" dependencies = [ "anyhow", - "base64", + "base64 0.22.1", "log", "once_cell", "ring", @@ -1451,7 +1536,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "futures-channel", "futures-core", @@ -1619,7 +1704,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.15.5", ] [[package]] @@ -1652,7 +1737,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" dependencies = [ "memchr", - "serde 1.0.219", + "serde", ] [[package]] @@ -1688,7 +1773,7 @@ dependencies = [ "log", "portable-atomic", "portable-atomic-util", - "serde 1.0.219", + "serde", ] [[package]] @@ -1722,16 +1807,27 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "json5" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1" +dependencies = [ + "pest", + "pest_derive", + "serde", +] + [[package]] name = "jsonwebtoken" version = "9.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" dependencies = [ - "base64", + "base64 0.22.1", "js-sys", "ring", - "serde 1.0.219", + "serde", "serde_json", ] @@ -1753,19 +1849,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" -[[package]] -name = "lexical-core" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" -dependencies = [ - "arrayvec", - "bitflags 1.3.2", - "cfg-if", - "ryu", - "static_assertions", -] - [[package]] name = "libc" version = "0.2.175" @@ -1794,12 +1877,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -1872,8 +1949,8 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bda1634d70d5bd53553cf15dca9842a396e8c799982a3ad22998dc44d961f24" dependencies = [ - "serde 1.0.219", - "toml 0.9.5", + "serde", + "toml", ] [[package]] @@ -1955,17 +2032,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "nom" -version = "5.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b" -dependencies = [ - "lexical-core", - "memchr", - "version_check", -] - [[package]] name = "nom" version = "7.1.3" @@ -1982,15 +2048,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-traits" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" -dependencies = [ - "num-traits 0.2.19", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -2049,6 +2106,16 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "ordered-multimap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" +dependencies = [ + "dlv-list", + "hashbrown 0.14.5", +] + [[package]] name = "os_info" version = "3.12.0" @@ -2057,7 +2124,7 @@ checksum = "d0e1ac5fde8d43c34139135df8ea9ee9465394b2d8d20f032d38998f64afffc3" dependencies = [ "log", "plist", - "serde 1.0.219", + "serde", "windows-sys 0.52.0", ] @@ -2084,6 +2151,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + [[package]] name = "peeking_take_while" version = "0.1.2" @@ -2096,6 +2169,50 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +[[package]] +name = "pest" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +dependencies = [ + "memchr", + "thiserror 2.0.16", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pest_meta" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" +dependencies = [ + "pest", + "sha2", +] + [[package]] name = "pin-project-lite" version = "0.2.16" @@ -2120,10 +2237,10 @@ version = "1.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3af6b589e163c5a788fab00ce0c0366f6efbb9959c2f9874b224936af7fce7e1" dependencies = [ - "base64", + "base64 0.22.1", "indexmap", "quick-xml", - "serde 1.0.219", + "serde", "time", ] @@ -2465,7 +2582,7 @@ version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "futures-core", "http 1.3.1", @@ -2481,7 +2598,7 @@ dependencies = [ "quinn", "rustls", "rustls-pki-types", - "serde 1.0.219", + "serde", "serde_json", "serde_urlencoded", "sync_wrapper", @@ -2511,11 +2628,27 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "ron" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" +dependencies = [ + "base64 0.21.7", + "bitflags 2.9.3", + "serde", + "serde_derive", +] + [[package]] name = "rust-ini" -version = "0.13.0" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2" +checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" +dependencies = [ + "cfg-if", + "ordered-multimap", +] [[package]] name = "rustc-demangle" @@ -2691,7 +2824,7 @@ checksum = "deaa38b94e70820ff3f1f9db3c8b0aef053b667be130f618e615e0ff2492cbcc" dependencies = [ "rand 0.9.2", "sentry-types", - "serde 1.0.219", + "serde", "serde_json", "url", ] @@ -2728,7 +2861,7 @@ dependencies = [ "debugid", "hex", "rand 0.9.2", - "serde 1.0.219", + "serde", "serde_json", "thiserror 2.0.16", "time", @@ -2736,12 +2869,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "serde" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8" - [[package]] name = "serde" version = "1.0.219" @@ -2752,15 +2879,14 @@ dependencies = [ ] [[package]] -name = "serde-hjson" -version = "0.9.1" +name = "serde-untagged" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8" +checksum = "34836a629bcbc6f1afdf0907a744870039b1e14c0561cb26094fa683b158eff3" dependencies = [ - "lazy_static", - "num-traits 0.1.43", - "regex", - "serde 0.8.23", + "erased-serde 0.4.6", + "serde", + "typeid", ] [[package]] @@ -2783,7 +2909,7 @@ dependencies = [ "itoa", "memchr", "ryu", - "serde 1.0.219", + "serde", ] [[package]] @@ -2792,7 +2918,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" dependencies = [ - "serde 1.0.219", + "serde", ] [[package]] @@ -2804,7 +2930,7 @@ dependencies = [ "form_urlencoded", "itoa", "ryu", - "serde 1.0.219", + "serde", ] [[package]] @@ -2862,7 +2988,7 @@ version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" dependencies = [ - "erased-serde", + "erased-serde 0.3.31", ] [[package]] @@ -2899,7 +3025,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f400f1c5db96f1f52065e8931ca0c524cceb029f7537c9e6d5424488ca137ca0" dependencies = [ "chrono", - "serde 1.0.219", + "serde", "serde_json", "slog", ] @@ -2972,12 +3098,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - [[package]] name = "strsim" version = "0.8.0" @@ -3031,7 +3151,7 @@ dependencies = [ "actix-rt", "actix-web", "backtrace", - "base64", + "base64 0.22.1", "cadence", "chrono", "docopt", @@ -3047,7 +3167,7 @@ dependencies = [ "rand 0.8.5", "regex", "sentry", - "serde 1.0.219", + "serde", "serde_json", "sha2", "slog", @@ -3114,7 +3234,7 @@ version = "0.20.1" dependencies = [ "config", "num_cpus", - "serde 1.0.219", + "serde", "slog-scope", "syncserver-common", "syncstorage-settings", @@ -3154,7 +3274,7 @@ dependencies = [ "futures 0.3.31", "http 1.3.1", "lazy_static", - "serde 1.0.219", + "serde", "serde_json", "syncserver-common", "syncserver-db-common", @@ -3167,7 +3287,7 @@ version = "0.20.1" dependencies = [ "async-trait", "backtrace", - "base64", + "base64 0.22.1", "diesel", "diesel_logger", "diesel_migrations", @@ -3189,7 +3309,7 @@ name = "syncstorage-settings" version = "0.20.1" dependencies = [ "rand 0.8.5", - "serde 1.0.219", + "serde", "syncserver-common", "time", ] @@ -3327,7 +3447,7 @@ dependencies = [ "itoa", "num-conv", "powerfmt", - "serde 1.0.219", + "serde", "time-core", "time-macros", ] @@ -3348,6 +3468,15 @@ dependencies = [ "time-core", ] +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tinystr" version = "0.8.1" @@ -3378,7 +3507,7 @@ name = "tokenserver-auth" version = "0.20.1" dependencies = [ "async-trait", - "base64", + "base64 0.22.1", "dyn-clone", "hex", "hkdf", @@ -3388,7 +3517,7 @@ dependencies = [ "pyo3", "reqwest", "ring", - "serde 1.0.219", + "serde", "serde_json", "sha2", "slog-scope", @@ -3407,7 +3536,7 @@ dependencies = [ "backtrace", "http 1.3.1", "pyo3", - "serde 1.0.219", + "serde", "syncserver-common", ] @@ -3423,7 +3552,7 @@ dependencies = [ "env_logger 0.11.8", "futures 0.3.31", "http 1.3.1", - "serde 1.0.219", + "serde", "slog-scope", "syncserver-common", "syncserver-db-common", @@ -3439,7 +3568,7 @@ name = "tokenserver-settings" version = "0.20.1" dependencies = [ "jsonwebtoken", - "serde 1.0.219", + "serde", "tokenserver-common", ] @@ -3497,15 +3626,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde 1.0.219", -] - [[package]] name = "toml" version = "0.9.5" @@ -3513,7 +3633,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" dependencies = [ "indexmap", - "serde 1.0.219", + "serde", "serde_spanned", "toml_datetime", "toml_parser", @@ -3527,7 +3647,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" dependencies = [ - "serde 1.0.219", + "serde", ] [[package]] @@ -3638,12 +3758,24 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + [[package]] name = "typenum" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + [[package]] name = "uname" version = "0.1.1" @@ -3659,6 +3791,12 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + [[package]] name = "unicode-width" version = "0.1.14" @@ -3692,7 +3830,7 @@ dependencies = [ "form_urlencoded", "idna", "percent-encoding", - "serde 1.0.219", + "serde", ] [[package]] @@ -3721,7 +3859,7 @@ checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" dependencies = [ "getrandom 0.3.3", "js-sys", - "serde 1.0.219", + "serde", "wasm-bindgen", ] @@ -3734,7 +3872,7 @@ dependencies = [ "idna", "once_cell", "regex", - "serde 1.0.219", + "serde", "serde_derive", "serde_json", "url", @@ -4175,6 +4313,9 @@ name = "winnow" version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +dependencies = [ + "memchr", +] [[package]] name = "wit-bindgen" @@ -4199,12 +4340,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] -name = "yaml-rust" -version = "0.4.5" +name = "yaml-rust2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +checksum = "4ce2a4ff45552406d02501cea6c18d8a7e50228e7736a872951fe2fe75c91be7" dependencies = [ - "linked-hash-map", + "arraydeque", + "encoding_rs", + "hashlink", ] [[package]] @@ -4213,7 +4356,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ - "serde 1.0.219", + "serde", "stable_deref_trait", "yoke-derive", "zerofrom", diff --git a/syncserver-settings/Cargo.toml b/syncserver-settings/Cargo.toml index b64309cfa9..998a4529cd 100644 --- a/syncserver-settings/Cargo.toml +++ b/syncserver-settings/Cargo.toml @@ -9,7 +9,7 @@ edition.workspace = true serde.workspace = true slog-scope.workspace = true -config = "0.11" # pin to 11, 12+ introduces a breaking change for env vars. +config = "0.15" # pin to 11, 12+ introduces a breaking change for env vars. num_cpus = "1" syncserver-common = { path = "../syncserver-common" } syncstorage-settings = { path = "../syncstorage-settings" } diff --git a/syncserver-settings/src/lib.rs b/syncserver-settings/src/lib.rs index 6732ffcc0c..a5e0367d88 100644 --- a/syncserver-settings/src/lib.rs +++ b/syncserver-settings/src/lib.rs @@ -52,11 +52,11 @@ pub struct Settings { impl Settings { /// Load the settings from the config file if supplied, then the environment. pub fn with_env_and_config_file(filename: Option<&str>) -> Result { - let mut s = Config::default(); + let mut builder = Config::builder(); // Merge the config file if supplied if let Some(config_filename) = filename { - s.merge(File::with_name(config_filename))?; + builder = builder.add_source(File::with_name(config_filename)); } // Merge the environment overrides @@ -65,25 +65,28 @@ impl Settings { // Environment ever change their policy about case insensitivity. // This will accept environment variables specified as // `SYNC_FOO__BAR_VALUE="gorp"` as `foo.bar_value = "gorp"` - s.merge(Environment::with_prefix(&PREFIX.to_uppercase()).separator("__"))?; + builder = + builder.add_source(Environment::with_prefix(&PREFIX.to_uppercase()).separator("__")); + let settings: Config = builder.build()?; - match s.try_into::() { - Ok(mut s) => { - s.syncstorage.normalize(); - if s.worker_max_blocking_threads == 0 { + match settings.try_deserialize::() { + Ok(mut settings) => { + settings.syncstorage.normalize(); + if settings.worker_max_blocking_threads == 0 { // Db backends w/ blocking calls block via // actix-threadpool: grow its size to accommodate the // full number of connections let total_db_pool_size = { - let syncstorage_pool_max_size = - if s.syncstorage.uses_spanner() || !s.syncstorage.enabled { - 0 - } else { - s.syncstorage.database_pool_max_size - }; + let syncstorage_pool_max_size = if settings.syncstorage.uses_spanner() + || !settings.syncstorage.enabled + { + 0 + } else { + settings.syncstorage.database_pool_max_size + }; - let tokenserver_pool_max_size = if s.tokenserver.enabled { - s.tokenserver.database_pool_max_size + let tokenserver_pool_max_size = if settings.tokenserver.enabled { + settings.tokenserver.database_pool_max_size } else { 0 }; @@ -91,11 +94,11 @@ impl Settings { syncstorage_pool_max_size + tokenserver_pool_max_size }; - let fxa_threads = if s.tokenserver.enabled - && s.tokenserver.fxa_oauth_primary_jwk.is_none() - && s.tokenserver.fxa_oauth_secondary_jwk.is_none() + let fxa_threads = if settings.tokenserver.enabled + && settings.tokenserver.fxa_oauth_primary_jwk.is_none() + && settings.tokenserver.fxa_oauth_secondary_jwk.is_none() { - s.tokenserver + settings.tokenserver .additional_blocking_threads_for_fxa_requests .ok_or_else(|| { println!( @@ -110,10 +113,10 @@ impl Settings { } else { 0 }; - s.worker_max_blocking_threads = + settings.worker_max_blocking_threads = (total_db_pool_size + fxa_threads).max(num_cpus::get() as u32 * 5) as usize; } - Ok(s) + Ok(settings) } // Configuration errors are not very sysop friendly, Try to make them // a bit more 3AM useful.