diff --git a/Cargo.lock b/Cargo.lock index c3920de..fc7ddf3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -29,9 +29,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", @@ -54,9 +54,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "getrandom", @@ -88,15 +88,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" [[package]] name = "argon2" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ba4cac0a46bc1d2912652a751c47f2a9f3a7fe89bcae2275d418f5270402f9" +checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072" dependencies = [ "base64ct", "blake2", @@ -106,13 +106,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.58", ] [[package]] @@ -126,15 +126,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -147,9 +147,15 @@ dependencies = [ [[package]] name = "base64" -version = "0.21.5" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" [[package]] name = "base64ct" @@ -174,9 +180,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" dependencies = [ "serde", ] @@ -201,9 +207,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byteorder" @@ -213,15 +219,15 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41" dependencies = [ "jobserver", "libc", @@ -235,9 +241,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", @@ -245,7 +251,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets", + "windows-targets 0.52.4", ] [[package]] @@ -260,15 +266,15 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -276,24 +282,24 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] name = "crc" -version = "3.0.1" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" dependencies = [ "crc-catalog", ] @@ -306,22 +312,18 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crossbeam-queue" -version = "0.3.8" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" dependencies = [ - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] name = "crypto-common" @@ -345,9 +347,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "deadpool" @@ -370,9 +372,9 @@ checksum = "63dfa964fe2a66f3fde91fc70b267fe193d822c7e603e2a675a49a7f46ad3f49" [[package]] name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "pem-rfc7468", @@ -381,9 +383,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", ] @@ -420,7 +422,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.58", ] [[package]] @@ -431,18 +433,18 @@ checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" dependencies = [ "serde", ] [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -455,12 +457,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -471,7 +473,7 @@ checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" dependencies = [ "cfg-if", "home", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -488,6 +490,7 @@ dependencies = [ "dlopen2", "giterated-models", "giterated-plugin", + "giterated-runtime", "giterated-static-runtime", "serde_json", "tokio", @@ -497,9 +500,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "finl_unicode" @@ -541,18 +544,18 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -566,9 +569,9 @@ checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -600,7 +603,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.58", ] [[package]] @@ -644,20 +647,22 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ "opaque-debug", "polyval", @@ -665,17 +670,17 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "git2" -version = "0.18.1" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf97ba92db08df386e10c8ede66a2a0369bd277090afd8710e19e38de9ec0cd" +checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "libc", "libgit2-sys", "log", @@ -715,6 +720,7 @@ name = "giterated-core" version = "0.1.0" dependencies = [ "anyhow", + "async-trait", "giterated-abi", "giterated-models", "giterated-static-runtime", @@ -729,7 +735,7 @@ dependencies = [ "anyhow", "argon2", "async-trait", - "base64", + "base64 0.21.7", "bincode", "chrono", "deadpool", @@ -764,6 +770,8 @@ dependencies = [ "anyhow", "giterated-models", "giterated-plugin", + "giterated-runtime", + "giterated-static-runtime", "serde", "serde_json", "sqlx", @@ -779,7 +787,7 @@ name = "giterated-macros" version = "0.1.0" dependencies = [ "quote", - "syn 2.0.39", + "syn 2.0.58", ] [[package]] @@ -810,6 +818,7 @@ dependencies = [ "dlopen2", "futures-util", "giterated-abi", + "giterated-core", "giterated-macros", "giterated-models", "giterated-static-runtime", @@ -847,6 +856,7 @@ dependencies = [ name = "giterated-runtime" version = "0.1.0" dependencies = [ + "anyhow", "dlopen2", "giterated-abi", "giterated-core", @@ -860,9 +870,9 @@ version = "0.1.0" [[package]] name = "h2" -version = "0.3.21" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -870,7 +880,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 1.9.3", + "indexmap", "slab", "tokio", "tokio-util", @@ -879,15 +889,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ "ahash", "allocator-api2", @@ -899,7 +903,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.14.2", + "hashbrown", ] [[package]] @@ -913,9 +917,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -925,9 +929,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hkdf" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ "hmac", ] @@ -943,18 +947,18 @@ dependencies = [ [[package]] name = "home" -version = "0.5.5" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "http" -version = "0.2.9" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -963,9 +967,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -986,9 +990,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes", "futures-channel", @@ -1001,7 +1005,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2", "tokio", "tower-service", "tracing", @@ -1023,9 +1027,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1046,9 +1050,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -1056,22 +1060,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.3" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "indexmap" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.2", + "hashbrown", ] [[package]] @@ -1091,44 +1085,45 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "itertools" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.65" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonwebtoken" -version = "9.1.0" +version = "9.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "155c4d7e39ad04c172c5e3a99c434ea3b4a7ba7960b38ecd562b270b097cce09" +checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" dependencies = [ - "base64", + "base64 0.21.7", + "js-sys", "pem", "ring", "serde", @@ -1147,15 +1142,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.150" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libgit2-sys" -version = "0.16.1+1.7.1" +version = "0.16.2+1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2a2bb3680b094add03bb3732ec520ece34da31a8cd2d633d1389d0f0fb60d0c" +checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" dependencies = [ "cc", "libc", @@ -1173,9 +1168,9 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libsqlite3-sys" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" dependencies = [ "cc", "pkg-config", @@ -1198,9 +1193,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" dependencies = [ "cc", "libc", @@ -1210,9 +1205,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "lock_api" @@ -1226,9 +1221,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "md-5" @@ -1242,9 +1237,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "mime" @@ -1260,22 +1255,22 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1345,20 +1340,25 @@ dependencies = [ ] [[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" dependencies = [ "autocfg", "num-integer", @@ -1367,9 +1367,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", "libm", @@ -1387,32 +1387,32 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.59" +version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "cfg-if", "foreign-types", "libc", @@ -1429,7 +1429,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.58", ] [[package]] @@ -1440,9 +1440,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.95" +version = "0.9.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" dependencies = [ "cc", "libc", @@ -1476,7 +1476,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -1498,11 +1498,11 @@ checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pem" -version = "3.0.2" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64", + "base64 0.22.0", "serde", ] @@ -1517,15 +1517,15 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -1556,15 +1556,15 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", @@ -1586,18 +1586,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -1643,11 +1643,11 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.22" +version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ - "base64", + "base64 0.21.7", "bytes", "encoding_rs", "futures-core", @@ -1665,9 +1665,11 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", @@ -1687,23 +1689,24 @@ checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" [[package]] name = "ring" -version = "0.17.5" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin 0.9.8", "untrusted", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "rsa" -version = "0.9.3" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ef35bf3e7fe15a53c4ab08a998e42271eab13eb0db224126bc7bc4c4bad96d" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" dependencies = [ "const-oid", "digest", @@ -1728,30 +1731,39 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustix" -version = "0.38.21" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", ] [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1772,9 +1784,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -1785,9 +1797,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" dependencies = [ "core-foundation-sys", "libc", @@ -1795,38 +1807,38 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.192" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.192" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.58", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", @@ -1835,9 +1847,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" dependencies = [ "serde", ] @@ -1896,9 +1908,9 @@ dependencies = [ [[package]] name = "signature" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", "rand_core", @@ -1927,28 +1939,18 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.4.10" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" -dependencies = [ - "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1968,9 +1970,9 @@ dependencies = [ [[package]] name = "spki" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", "der", @@ -1978,9 +1980,9 @@ dependencies = [ [[package]] name = "sqlformat" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b7b278788e7be4d0d29c0f39497a0eef3fba6bbc8e70d8bf7fde46edeaa9e85" +checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" dependencies = [ "itertools", "nom", @@ -1989,9 +1991,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e50c216e3624ec8e7ecd14c6a6a6370aad6ee5d8cfc3ab30b5162eeeef2ed33" +checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" dependencies = [ "sqlx-core", "sqlx-macros", @@ -2002,9 +2004,9 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d6753e460c998bbd4cd8c6f0ed9a64346fcca0723d6e75e52fdc351c5d2169d" +checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" dependencies = [ "ahash", "atoi", @@ -2013,7 +2015,6 @@ dependencies = [ "chrono", "crc", "crossbeam-queue", - "dotenvy", "either", "event-listener", "futures-channel", @@ -2023,7 +2024,7 @@ dependencies = [ "futures-util", "hashlink", "hex", - "indexmap 2.1.0", + "indexmap", "log", "memchr", "native-tls", @@ -2044,9 +2045,9 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a793bb3ba331ec8359c1853bd39eed32cdd7baaf22c35ccf5c92a7e8d1189ec" +checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" dependencies = [ "proc-macro2", "quote", @@ -2057,9 +2058,9 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4ee1e104e00dedb6aa5ffdd1343107b0a4702e862a84320ee7cc74782d96fc" +checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" dependencies = [ "dotenvy", "either", @@ -2083,13 +2084,13 @@ dependencies = [ [[package]] name = "sqlx-mysql" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864b869fdf56263f4c95c45483191ea0af340f9f3e3e7b4d57a61c7c87a970db" +checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" dependencies = [ "atoi", - "base64", - "bitflags 2.4.1", + "base64 0.21.7", + "bitflags 2.5.0", "byteorder", "bytes", "chrono", @@ -2126,13 +2127,13 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7ae0e6a97fb3ba33b23ac2671a5ce6e3cabe003f451abd5a56e7951d975624" +checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" dependencies = [ "atoi", - "base64", - "bitflags 2.4.1", + "base64 0.21.7", + "bitflags 2.5.0", "byteorder", "chrono", "crc", @@ -2154,7 +2155,6 @@ dependencies = [ "rand", "serde", "serde_json", - "sha1", "sha2", "smallvec", "sqlx-core", @@ -2166,9 +2166,9 @@ dependencies = [ [[package]] name = "sqlx-sqlite" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59dc83cf45d89c555a577694534fcd1b55c545a816c816ce51f20bbe56a4f3f" +checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" dependencies = [ "atoi", "chrono", @@ -2185,6 +2185,7 @@ dependencies = [ "sqlx-core", "tracing", "url", + "urlencoding", ] [[package]] @@ -2217,9 +2218,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" dependencies = [ "proc-macro2", "quote", @@ -2227,6 +2228,12 @@ dependencies = [ ] [[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] name = "system-configuration" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2249,42 +2256,41 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.1" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", "rustix", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.58", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -2292,12 +2298,13 @@ dependencies = [ [[package]] name = "time" -version = "0.3.30" +version = "0.3.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "ef89ece63debf11bc32d1ed8d078ac870cbeb44da02afb02a9ff135ae7ca0582" dependencies = [ "deranged", "itoa", + "num-conv", "powerfmt", "serde", "time-core", @@ -2312,10 +2319,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ + "num-conv", "time-core", ] @@ -2336,9 +2344,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.33.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -2348,20 +2356,20 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.5", + "socket2", "tokio-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.58", ] [[package]] @@ -2376,9 +2384,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -2407,7 +2415,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "hashbrown 0.14.2", + "hashbrown", "pin-project-lite", "tokio", "tracing", @@ -2415,9 +2423,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.8" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ "serde", "serde_spanned", @@ -2436,11 +2444,11 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.21.0" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" dependencies = [ - "indexmap 2.1.0", + "indexmap", "serde", "serde_spanned", "toml_datetime", @@ -2473,7 +2481,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.58", ] [[package]] @@ -2488,9 +2496,9 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ "log", "once_cell", @@ -2499,9 +2507,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "nu-ansi-term", "sharded-slab", @@ -2513,9 +2521,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" @@ -2544,9 +2552,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -2556,18 +2564,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode_categories" @@ -2593,9 +2601,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", @@ -2604,6 +2612,12 @@ dependencies = [ ] [[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] name = "utf-8" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2643,10 +2657,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] name = "wasm-bindgen" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2654,24 +2674,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.58", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.38" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -2681,9 +2701,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2691,28 +2711,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.58", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.65" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -2720,9 +2740,13 @@ dependencies = [ [[package]] name = "whoami" -version = "1.4.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" +checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" +dependencies = [ + "redox_syscall", + "wasite", +] [[package]] name = "winapi" @@ -2748,11 +2772,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets", + "windows-targets 0.52.4", ] [[package]] @@ -2761,7 +2785,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.4", ] [[package]] @@ -2770,13 +2803,28 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +dependencies = [ + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -2786,46 +2834,88 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" + +[[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] +name = "windows_aarch64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" + +[[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] +name = "windows_i686_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" + +[[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] +name = "windows_i686_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" + +[[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] +name = "windows_x86_64_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" + +[[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" + +[[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] +name = "windows_x86_64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" + +[[package]] name = "winnow" -version = "0.5.19" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" dependencies = [ "memchr", ] @@ -2837,31 +2927,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ "cfg-if", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "zerocopy" -version = "0.7.25" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd369a67c0edfef15010f980c3cbe45d7f651deac2cd67ce097cd801de16557" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.25" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f140bda219a26ccc0cdb03dba58af72590c53b22642577d88a927bc5c87d6b" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.58", ] [[package]] name = "zeroize" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/giterated-core/Cargo.toml b/giterated-core/Cargo.toml index 43fd6a7..cc9fc99 100644 --- a/giterated-core/Cargo.toml +++ b/giterated-core/Cargo.toml @@ -12,3 +12,4 @@ giterated-models = { path = "giterated-models" } anyhow = "1" tracing = "0.1" +async-trait = "0.1" diff --git a/giterated-core/src/lib.rs b/giterated-core/src/lib.rs index 5bf0b2e..d7777af 100644 --- a/giterated-core/src/lib.rs +++ b/giterated-core/src/lib.rs @@ -1,6 +1,13 @@ use giterated_abi::vtable::{runtime::RuntimeHandle, VTable}; +use giterated_models::{ + error::OperationError, + object::{GiteratedObject, Object, ObjectRequestError}, + object_backend::ObjectBackend, + operation::{GiteratedOperation, OperationState}, +}; +use std::fmt::Debug; -pub mod state; +pub mod operation; pub mod types; #[derive(Clone)] @@ -9,6 +16,33 @@ pub struct RuntimeState { pub vtable: &'static VTable, } +#[async_trait::async_trait(?Send)] +impl ObjectBackend for RuntimeState { + async fn object_operation( + &self, + object: O, + operation: &str, + payload: D, + operation_state: &OperationState, + ) -> Result> + where + O: GiteratedObject + Debug + 'static, + D: GiteratedOperation + Debug + 'static, + D::Success: Clone, + D::Failure: Clone, + { + todo!() + } + + async fn get_object( + &self, + object_str: &str, + operation_state: &OperationState, + ) -> Result, OperationError> { + todo!() + } +} + // impl RuntimeState { // pub unsafe fn from_static() -> Self { // let runtime = giterated_static_runtime::get_runtime_reference(); diff --git a/giterated-core/src/operation.rs b/giterated-core/src/operation.rs new file mode 100644 index 0000000..f143c99 --- /dev/null +++ b/giterated-core/src/operation.rs @@ -0,0 +1,5 @@ +use giterated_abi::value_ex::FfiValueUntyped; + +pub struct Success(FfiValueUntyped); + +pub struct Failure(FfiValueUntyped); diff --git a/giterated-core/src/state.rs b/giterated-core/src/state.rs deleted file mode 100644 index 8921dde..0000000 --- a/giterated-core/src/state.rs +++ /dev/null @@ -1,133 +0,0 @@ -pub trait FromOperationState: Sized { - fn from_operation_state( - state: &mut State, - object: &O, - operation: &D, - ) -> Result>; -} - -pub struct StateExtractor(T); - -impl FromState for StateExtractor { - fn from_state(state: &mut State) -> Result { - todo!() - } -} - -use giterated_abi::prelude::*; -use giterated_abi::value_ex::FfiValueUntyped; -use giterated_abi::vtable::ObjectABI; -use giterated_abi::vtable::VTable; -use giterated_models::error::OperationError; - -#[repr(transparent)] -pub struct State { - inner: StateHandle, -} - -#[repr(transparent)] -struct StateHandle { - state: FfiValue<()>, -} - -#[repr(C)] -struct StateItem { - /// The pointer to the next item. - /// - /// `next_item` is most likely always an `FfiValue>` and that's how we free them. - next_item: *const StateItem<()>, - pub state_uuid: u128, - pub state: T, -} - -impl Drop for State { - fn drop(&mut self) { - let state_manager = unsafe { StateManager::new(self) }; - - for state in state_manager {} - } -} - -struct StateManager<'s> { - state: &'s mut State, - last: Option, -} - -impl<'s> StateManager<'s> { - pub unsafe fn new(handle: &'s mut State) -> Self { - todo!() - } - - pub unsafe fn write_state(&mut self, state: S) -> Self { - todo!() - } - - pub unsafe fn get_state(&mut self) -> Option<&S> { - todo!() - } -} - -impl<'s> Iterator for StateManager<'s> { - type Item = StateItem<()>; - - fn next(&mut self) -> Option> { - todo!() - } -} - -pub trait StateUUID { - fn uuid() -> u128; - - fn unsafe_hint_copy() -> Option { - None - } -} - -/// State values for the current execution domain. 99.99% of the time this means "plugin-specific" -/// -/// The remainder 0.01% of the time it refers to the daemon's runtime domain. -pub struct DomainState(StateItem<()>); - -impl StateUUID for DomainState { - fn uuid() -> u128 { - todo!() - } -} - -pub struct RuntimeState(StateItem<&'static VTable>); - -impl StateUUID for RuntimeState { - fn uuid() -> u128 { - todo!() - } -} - -impl RuntimeState { - pub fn queue_insert_state(&mut self, state: S) { - todo!() - } -} - -pub struct Runtime { - pub queue_insert_state: unsafe extern "C" fn(state_uuid: u128, state: FfiValueUntyped), -} - -impl ObjectABI for Runtime { - type VTable = Runtime; -} - -pub trait FromState: Sized { - fn from_state(state: &mut State) -> Result; -} - -impl FromState for T { - fn from_state(state: &mut State) -> Result { - todo!() - } -} - -impl FromState for Option { - fn from_state(state: &mut State) -> Result { - todo!() - } -} diff --git a/giterated-plugin/Cargo.toml b/giterated-plugin/Cargo.toml index c1251ea..f703155 100644 --- a/giterated-plugin/Cargo.toml +++ b/giterated-plugin/Cargo.toml @@ -10,6 +10,7 @@ giterated-models = { path = "../giterated-core/giterated-models" } giterated-static-runtime = { path = "../giterated-runtime/giterated-static-runtime" } giterated-abi = { path = "../giterated-runtime/giterated-abi" } giterated-macros = { path = "giterated-macros" } +giterated-core = { path = "../giterated-core" } dlopen2 = "0.6" anyhow = "1" diff --git a/giterated-plugin/src/lib.rs b/giterated-plugin/src/lib.rs index 1402ead..1b3399e 100644 --- a/giterated-plugin/src/lib.rs +++ b/giterated-plugin/src/lib.rs @@ -2,7 +2,15 @@ pub mod future; pub mod local; + +#[doc(hidden)] pub use giterated_abi as abi; +pub use giterated_abi::vtable::{operation::Operation, Object, Setting, Value}; + +pub use giterated_abi::state::StateExtractor; +pub use giterated_abi::state::{FromState, StateUUID}; +pub use giterated_core::operation::{Failure, Success}; +pub use giterated_core::RuntimeState; #[macro_use] extern crate tracing; diff --git a/giterated-plugin/src/local.rs b/giterated-plugin/src/local.rs index efb082d..2650029 100644 --- a/giterated-plugin/src/local.rs +++ b/giterated-plugin/src/local.rs @@ -6,7 +6,7 @@ use giterated_abi::{ Callback, CallbackPtr, }, result::FfiError, - state::{State, StateUUID}, + state::{FromState, State, StateUUID}, value_ex::FfiValueUntyped, vtable::{ operation::{IntoOperationVTable, OperationVTable}, @@ -82,12 +82,12 @@ impl PluginStackBuilder { self } - pub fn object_setting(&mut self, _get: HG, _set: HS) -> &mut Self + pub fn object_setting(&mut self, _get: HG, _set: HS) -> &mut Self where O: GiteratedObject, OS: IntoSettingVTable + Setting, - HG: IntoPluginSettingGetter, - HS: IntoPluginSettingSetter, + HG: IntoPluginSettingGetter, + HS: IntoPluginSettingSetter, { let _guard = trace_span!("register setting").entered(); @@ -126,11 +126,11 @@ impl PluginStackBuilder { self } - pub fn value(&mut self, handler: T) -> &mut Self + pub fn value(&mut self, handler: T) -> &mut Self where O: GiteratedObject, V: IntoValueVTable + GiteratedObjectValue, - T: IntoPluginValueGetter, + T: IntoPluginValueGetter, { let _guard = trace_span!("register value").entered(); @@ -209,11 +209,11 @@ impl PluginStackBuilder { // self // } - pub fn setting_getter(&mut self, handler: T) -> &mut Self + pub fn setting_getter(&mut self, handler: T) -> &mut Self where O: GiteratedObject + IntoObjectVTable, OS: Setting + IntoSettingVTable, - T: IntoPluginSettingGetter, + T: IntoPluginSettingGetter, { let _guard = trace_span!("register setting_getter handler").entered(); @@ -244,21 +244,21 @@ impl PluginStackBuilder { } pub trait ValueSettingExt { - fn value_setting(&mut self, get: HG, set: HS) -> &mut Self + fn value_setting(&mut self, get: HG, set: HS) -> &mut Self where O: GiteratedObject + IntoObjectVTable + 'static, VS: GiteratedObjectValue + IntoValueVTable + Setting + IntoSettingVTable, - HG: IntoPluginSettingGetter, - HS: IntoPluginSettingSetter; + HG: IntoPluginSettingGetter, + HS: IntoPluginSettingSetter; } impl ValueSettingExt for PluginStackBuilder { - fn value_setting(&mut self, _get: HG, _set: HS) -> &mut Self + fn value_setting(&mut self, _get: HG, _set: HS) -> &mut Self where O: GiteratedObject + IntoObjectVTable + 'static, VS: GiteratedObjectValue + IntoValueVTable + Setting + IntoSettingVTable, - HG: IntoPluginSettingGetter, - HS: IntoPluginSettingSetter, + HG: IntoPluginSettingGetter, + HS: IntoPluginSettingSetter, { self } @@ -275,7 +275,7 @@ impl Callback for ValueSettingGetterCallback { ) -> Result; } -pub trait ValueSettingGetter { +pub trait ValueSettingGetter { unsafe extern "C" fn get_value( callback: CallbackPtr, state: FfiValueMut, @@ -285,11 +285,11 @@ pub trait ValueSettingGetter { fn callback_ptr(&self) -> CallbackPtr; } -impl ValueSettingGetter for HG +impl ValueSettingGetter for HG where O: GiteratedObject, VS: GiteratedObjectValue, - HG: IntoPluginSettingGetter, + HG: IntoPluginSettingGetter, { unsafe extern "C" fn get_value( _callback: CallbackPtr, diff --git a/giterated-runtime/Cargo.toml b/giterated-runtime/Cargo.toml index 23b351d..09c5801 100644 --- a/giterated-runtime/Cargo.toml +++ b/giterated-runtime/Cargo.toml @@ -11,4 +11,5 @@ giterated-models = { path = "../giterated-core/giterated-models" } giterated-core = { path = "../giterated-core" } tracing = "0.1" -dlopen2 = "0.6" \ No newline at end of file +dlopen2 = "0.6" +anyhow = "1" \ No newline at end of file diff --git a/giterated-runtime/giterated-abi/src/callback/operation.rs b/giterated-runtime/giterated-abi/src/callback/operation.rs index 3df4557..7c4b0d8 100644 --- a/giterated-runtime/giterated-abi/src/callback/operation.rs +++ b/giterated-runtime/giterated-abi/src/callback/operation.rs @@ -6,7 +6,7 @@ use giterated_models::{ use crate::{ result::FfiResult, - state::State, + state::{FromState, State}, value_ex::FfiValueUntyped, vtable::{operation::Operation, Object}, FfiFuture, FfiValueMut, FfiValueRef, @@ -103,6 +103,7 @@ where F: Fn(O, D, A1) -> Fut, O: Debug + GiteratedObject, D: Debug + GiteratedOperation, + A1: FromState, { unsafe extern "C" fn handle( _callback_ptr: CallbackPtr, @@ -124,6 +125,8 @@ where F: Fn(O, D, A1, A2) -> Fut, O: Debug + GiteratedObject, D: Debug + GiteratedOperation, + A1: FromState, + A2: FromState, { unsafe extern "C" fn handle( _callback_ptr: CallbackPtr, diff --git a/giterated-runtime/giterated-abi/src/callback/setting.rs b/giterated-runtime/giterated-abi/src/callback/setting.rs index 5cdfeab..95ed118 100644 --- a/giterated-runtime/giterated-abi/src/callback/setting.rs +++ b/giterated-runtime/giterated-abi/src/callback/setting.rs @@ -3,7 +3,7 @@ use std::future::Future; use giterated_models::{error::OperationError, object::GiteratedObject}; use crate::{ - state::State, + state::{FromState, State}, value_ex::FfiValueUntyped, vtable::{Object, Setting}, FfiFuture, FfiValueMut, FfiValueRef, @@ -21,7 +21,7 @@ impl Callback for SettingGetterCallback { ) -> FfiFuture>; } -pub trait IntoPluginSettingGetter { +pub trait IntoPluginSettingGetter { unsafe extern "C" fn get_setting( callback_ptr: CallbackPtr, state: FfiValueMut, @@ -34,7 +34,7 @@ pub trait IntoPluginSettingGetter { } } -impl IntoPluginSettingGetter for F +impl IntoPluginSettingGetter for F where Fut: Future>> + Send + Sync + 'static, O: GiteratedObject + Send + Sync + 'static, @@ -78,7 +78,24 @@ where } } -pub trait IntoPluginSettingSetter { +impl IntoPluginSettingGetter for F +where + Fut: Future>> + Send + Sync + 'static, + O: GiteratedObject + Send + Sync + 'static, + OS: giterated_models::settings::Setting + Send + Sync + 'static, + F: Fn(O, A1) -> Fut + Send + Sync + 'static, + A1: FromState, +{ + unsafe extern "C" fn get_setting( + callback: CallbackPtr, + state: FfiValueMut, + mut object: FfiValueRef, + ) -> FfiFuture> { + todo!() + } +} + +pub trait IntoPluginSettingSetter { unsafe extern "C" fn set_setting( callback_ptr: CallbackPtr, state: FfiValueMut, @@ -92,7 +109,7 @@ pub trait IntoPluginSettingSetter { } } -impl IntoPluginSettingSetter for F +impl IntoPluginSettingSetter for F where Fut: Future>>, O: GiteratedObject, @@ -129,6 +146,24 @@ where } } +impl IntoPluginSettingSetter for F +where + Fut: Future>> + Send + Sync + 'static, + O: GiteratedObject + Send + Sync + 'static, + OS: giterated_models::settings::Setting + Send + Sync + 'static, + F: Fn(O, OS, A1) -> Fut + Send + Sync + 'static, + A1: FromState, +{ + unsafe extern "C" fn set_setting( + callback: CallbackPtr, + state: FfiValueMut, + mut object: FfiValueRef, + _setting: Setting, + ) -> FfiFuture> { + todo!() + } +} + pub struct SettingChangeCallback(FfiValueUntyped); impl Callback for SettingChangeCallback { diff --git a/giterated-runtime/giterated-abi/src/callback/value.rs b/giterated-runtime/giterated-abi/src/callback/value.rs index ce40f53..116d81b 100644 --- a/giterated-runtime/giterated-abi/src/callback/value.rs +++ b/giterated-runtime/giterated-abi/src/callback/value.rs @@ -6,7 +6,7 @@ use giterated_models::{ use crate::{ result::{FfiError, FfiResult}, - state::State, + state::{FromState, State}, vtable::{Object, Value}, FfiFuture, FfiSliceRef, FfiValueMut, FfiValueRef, }; @@ -24,7 +24,7 @@ impl Callback for ValueGetterCallback { ) -> FfiFuture>; } -pub trait IntoPluginValueGetter { +pub trait IntoPluginValueGetter { unsafe extern "C" fn get_value( callback: CallbackPtr, state: FfiValueMut, @@ -34,7 +34,7 @@ pub trait IntoPluginValueGetter { fn callback_ptr(&self) -> CallbackPtr; } -impl IntoPluginValueGetter for F +impl IntoPluginValueGetter for F where Fut: Future>> + Send + Sync, O: GiteratedObject + 'static, @@ -83,6 +83,56 @@ where } } +impl IntoPluginValueGetter for F +where + Fut: Future>> + Send + Sync, + O: GiteratedObject + 'static, + V: GiteratedObjectValue + Send + Sync + 'static, + F: Fn(O, A1) -> Fut + Send + Sync + 'static, + A1: FromState, +{ + unsafe extern "C" fn get_value( + callback: CallbackPtr, + state: FfiValueMut, + mut object: FfiValueRef, + ) -> FfiFuture> { + // let _guard = trace_span!( + // "get_value handler", + // object = O::object_name(), + // value = V::value_name() + // ) + // .entered(); + // let state = unsafe { state.transmute_ref::() }; + + // let object = unsafe { object.transmute_owned::() }; + + // // Cast the callback ptr to ourselves + // let callback: *const F = std::mem::transmute(callback.0); + // let callback = callback.as_ref().unwrap(); + + // let state = state.clone(); + // runtime_state.spawn_future(async move { + // let result = callback(state, *object).await; + + // match result { + // Ok(success) => unsafe { Ok(NewAnyValue::new(success)) }, + // Err(err) => match err { + // OperationError::Operation(_) => todo!(), + // OperationError::Internal(_) => todo!(), + // OperationError::Unhandled => todo!(), + // }, + // } + // }) + + todo!() + } + + fn callback_ptr(&self) -> CallbackPtr { + todo!() + // unsafe { CallbackPtr::from_raw(self as *const _ as *const ()) } + } +} + pub struct ValueChangeCallback(CallbackPtr); impl Callback for ValueChangeCallback { diff --git a/giterated-runtime/giterated-abi/src/state.rs b/giterated-runtime/giterated-abi/src/state.rs index 38a2cb7..d33d110 100644 --- a/giterated-runtime/giterated-abi/src/state.rs +++ b/giterated-runtime/giterated-abi/src/state.rs @@ -8,9 +8,9 @@ pub trait FromOperationState: Sized { ) -> Result>; } -pub struct StateExtractor(T); +pub struct StateExtractor(pub T); -impl FromState for StateExtractor { +impl FromState for StateExtractor { fn from_state(state: &mut State) -> Result { todo!() } @@ -20,7 +20,10 @@ use giterated_models::error::OperationError; use crate::{ value_ex::FfiValueUntyped, - vtable::{ObjectABI, VTable}, + vtable::{ + runtime::{RuntimeHandle, RuntimeVTable}, + ObjectABI, VTable, + }, }; #[repr(transparent)] @@ -97,7 +100,7 @@ impl StateUUID for DomainState { } } -pub struct RuntimeState(StateItem<&'static VTable>); +pub struct RuntimeState(StateItem<&'static VTable>); impl StateUUID for RuntimeState { fn uuid() -> u128 { @@ -111,13 +114,9 @@ impl RuntimeState { } } -pub struct Runtime { - pub queue_insert_state: unsafe extern "C" fn(state_uuid: u128, state: FfiValueUntyped), -} - -impl ObjectABI for Runtime { - type VTable = Runtime; -} +// pub struct Runtime { +// pub queue_insert_state: unsafe extern "C" fn(state_uuid: u128, state: FfiValueUntyped), +// } pub trait FromState: Sized { fn from_state(state: &mut State) -> Result; diff --git a/giterated-runtime/giterated-static-runtime/Cargo.toml b/giterated-runtime/giterated-static-runtime/Cargo.toml index b7cdeab..05351aa 100644 --- a/giterated-runtime/giterated-static-runtime/Cargo.toml +++ b/giterated-runtime/giterated-static-runtime/Cargo.toml @@ -5,4 +5,4 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[dependencies] +[dependencies] \ No newline at end of file diff --git a/giterated-runtime/src/lib.rs b/giterated-runtime/src/lib.rs index 5ac21f7..8cfb55f 100644 --- a/giterated-runtime/src/lib.rs +++ b/giterated-runtime/src/lib.rs @@ -1,8 +1,13 @@ mod operation_walker; pub mod plugin; -use std::{collections::HashMap, sync::Arc}; +use std::{ + collections::HashMap, + path::{Path, PathBuf}, + sync::Arc, +}; +use anyhow::Error; use dlopen2::wrapper::Container; use giterated_abi::{ callback::{ @@ -21,6 +26,7 @@ use giterated_core::types::TypeMetadata; use giterated_models::{ error::OperationError, object::{GiteratedObject, ObjectOperationPair}, + object_backend::ObjectBackend, operation::GiteratedOperation, settings::ObjectSettingPair, value::ObjectValuePair, @@ -29,6 +35,8 @@ use operation_walker::OperationHandlerRules; use plugin::initialization::PluginInitializationState; use tracing::{debug, debug_span, trace, trace_span, warn}; +pub use giterated_core::RuntimeState; + pub struct Runtime { plugins: Vec, handlers: RuntimeHandlers, @@ -66,6 +74,23 @@ impl Runtime { RuntimeHandle } + pub fn load_dylib(&mut self, path: impl AsRef) -> Result<(), Error> { + let path = path.as_ref(); + + let _guard = debug_span!("loading dylib", path = debug(path)).entered(); + + let library: Container = unsafe { Container::load(path) }?; + + let vtable = unsafe { library.__get_plugin_vtable() }; + + self.plugins.push(RuntimePlugin { + vtable, + library: Arc::new(library), + }); + + Ok(()) + } + pub fn insert_plugin( &mut self, mut plugin: RuntimePlugin, @@ -380,3 +405,13 @@ impl RuntimeHandlers { OperationHandlerRules::new(object_kind, operation_name, self) } } + +pub trait StaticRuntimeExt { + fn from_static() -> Self; +} + +impl StaticRuntimeExt for RuntimeHandle { + fn from_static() -> Self { + todo!() + } +} diff --git a/plugins/example-plugin/Cargo.toml b/plugins/example-plugin/Cargo.toml index 68462f6..e409347 100644 --- a/plugins/example-plugin/Cargo.toml +++ b/plugins/example-plugin/Cargo.toml @@ -14,6 +14,7 @@ crate-type = ["dylib"] giterated-plugin = { path = "../../giterated-plugin" } giterated-static-runtime = { path = "../../giterated-runtime/giterated-static-runtime" } giterated-models = { path = "../../giterated-core/giterated-models" } +giterated-runtime = { path = "../../giterated-runtime" } dlopen2 = "0.6" tracing-subscriber = "0.3" diff --git a/plugins/example-plugin/src/main.rs b/plugins/example-plugin/src/main.rs index 3f20a12..029fc0f 100644 --- a/plugins/example-plugin/src/main.rs +++ b/plugins/example-plugin/src/main.rs @@ -5,7 +5,9 @@ use giterated_models::{ operation::OperationState, user::{DisplayName, User}, }; -use giterated_plugin::abi::state::{Runtime, RuntimeState}; +use giterated_plugin::abi::state::RuntimeState; +use giterated_plugin::abi::vtable::runtime::RuntimeHandle; +use giterated_runtime::{Runtime, StaticRuntimeExt}; use tracing::{info, Level}; #[tokio::main] @@ -16,23 +18,13 @@ async fn main() -> Result<(), anyhow::Error> { .with_max_level(Level::TRACE) .init(); - let handle = PluginHandle::from_dylib("example_plugin_dylib.dll").unwrap(); - - info!("1"); - let mut runtime = Runtime::new(); - info!("2"); - - // runtime.insert_plugin(handle); - - info!("3"); + runtime.load_dylib("example_plugin_dylib.dll")?; runtime.init(); - info!("4"); - - let runtime = unsafe { RuntimeState::from_static() }; + let runtime = unsafe { RuntimeHandle::from_static() }; let _object_request = ObjectRequest(String::from("foobar")); diff --git a/plugins/giterated-backend/src/handlers.rs b/plugins/giterated-backend/src/handlers.rs index 28c49de..365b900 100644 --- a/plugins/giterated-backend/src/handlers.rs +++ b/plugins/giterated-backend/src/handlers.rs @@ -4,7 +4,7 @@ use giterated_models::{ repository::{Repository, RepositoryInfoRequest, RepositorySummary, RepositoryView}, user::{User, UserRepositoriesRequest}, }; -use giterated_plugin::new_stack::{handle::RuntimeHandle, State}; +use giterated_plugin::{RuntimeState, StateExtractor}; use crate::DatabaseBackend; @@ -20,8 +20,8 @@ pub async fn repository_info( _state: DatabaseBackend, _object: Repository, _request: RepositoryInfoRequest, - _runtime: RuntimeHandle, - State(_operation_state): State, + _runtime: RuntimeState, + StateExtractor(_operation_state): StateExtractor, ) -> Result> { todo!() } diff --git a/plugins/giterated-issues/Cargo.toml b/plugins/giterated-issues/Cargo.toml index 10214cc..a8d29a1 100644 --- a/plugins/giterated-issues/Cargo.toml +++ b/plugins/giterated-issues/Cargo.toml @@ -13,6 +13,8 @@ crate-type = ["rlib", "dylib"] [dependencies] giterated-plugin = { path = "../../giterated-plugin" } giterated-models = { path = "../../giterated-core/giterated-models" } +giterated-runtime = { path = "../../giterated-runtime" } +giterated-static-runtime = { path = "../../giterated-runtime/giterated-static-runtime" } serde = { version = "1.0", features = [ "derive" ]} anyhow = "1" diff --git a/plugins/giterated-issues/src/handlers.rs b/plugins/giterated-issues/src/handlers.rs index ca143d3..164f472 100644 --- a/plugins/giterated-issues/src/handlers.rs +++ b/plugins/giterated-issues/src/handlers.rs @@ -10,11 +10,12 @@ use crate::{ }; use giterated_models::{error::OperationError, repository::Repository}; +use giterated_plugin::StateExtractor; pub async fn create_issue_request( - _state: IssuesPluginState, repository: Repository, _request: CreateIssueRequest, + _state: StateExtractor, ) -> Result> { // // TODO: AUTHN & AUTHZ // let issue = sqlx::query_as!( @@ -39,79 +40,79 @@ pub async fn create_issue_request( } pub async fn query_issues_request( - _state: IssuesPluginState, _repository: Repository, _request: QueryIssuesRequest, + _state: StateExtractor, ) -> Result, OperationError> { // TODO: AUTHN & AUTHZ todo!() } pub async fn edit_issue_request( - _state: IssuesPluginState, _issue: Issue, _request: IssueEditRequest, + _state: StateExtractor, ) -> Result<(), OperationError> { // TODO: AUTHN & AUTHZ todo!() } pub async fn issue_post_comment_request( - _state: IssuesPluginState, _issue: Issue, _request: IssuePostCommentRequest, + _state: StateExtractor, ) -> Result> { // TODO: AUTHN & AUTHZ todo!() } pub async fn issue_value_author( - _state: IssuesPluginState, _issue: Issue, + _state: StateExtractor, ) -> Result> { todo!() } pub async fn issue_value_creation_date( - _state: IssuesPluginState, _issue: Issue, + _state: StateExtractor, ) -> Result> { todo!() } pub async fn issue_value_comment_count( - _state: IssuesPluginState, _issue: Issue, + _state: StateExtractor, ) -> Result> { todo!() } pub async fn issue_set_setting_name( - _state: IssuesPluginState, _issue: Issue, _name: Name, + _state: StateExtractor, ) -> Result<(), OperationError> { todo!() } pub async fn issue_get_setting_name( - _state: IssuesPluginState, _issue: Issue, + _state: StateExtractor, ) -> Result> { todo!() } pub async fn issue_set_setting_contents( - _state: IssuesPluginState, _issue: Issue, _contents: Contents, + _state: StateExtractor, ) -> Result<(), OperationError> { todo!() } pub async fn issue_get_setting_contents( - _state: IssuesPluginState, _issue: Issue, + _state: StateExtractor, ) -> Result> { todo!() } diff --git a/plugins/giterated-issues/src/lib.rs b/plugins/giterated-issues/src/lib.rs index b8a1fef..b5033d1 100644 --- a/plugins/giterated-issues/src/lib.rs +++ b/plugins/giterated-issues/src/lib.rs @@ -2,12 +2,7 @@ use std::{fmt::Display, str::FromStr, sync::OnceLock}; use anyhow::Error; use giterated_models::{object::GiteratedObject, repository::Repository}; -use giterated_plugin::{ - handle::PluginInitializationState, - new_stack::{FFIPluginMeta, PluginState}, - vtable::{HostVTable, InitializationVTable}, -}; -use giterated_plugin_sys::PluginStackBuilder; +use giterated_plugin::{local::PluginStackBuilder, plugin, StateUUID}; use handlers::{ create_issue_request, edit_issue_request, issue_get_setting_contents, issue_get_setting_name, issue_post_comment_request, issue_set_setting_contents, issue_set_setting_name, @@ -26,6 +21,10 @@ pub mod operations; pub mod setting; pub mod value; +plugin!( + name: "plugin name" +); + /// An issue, defined by the repository which owns it and its index. /// /// # Textual Format @@ -75,55 +74,20 @@ impl FromStr for Issue { #[error("error parsing issue")] pub struct IssueParseError; -static INIT_VTABLE: OnceLock = OnceLock::new(); -static ASYNC_RUNTIME: OnceLock = OnceLock::new(); - -#[no_mangle] -pub extern "C" fn plugin_meta() -> FFIPluginMeta { - const PLUGIN_NAME: &str = "Giterated [Issues]"; - const PLUGIN_VERSION: &str = "0.1.0"; - - FFIPluginMeta { - name: PLUGIN_NAME.as_ptr(), - name_len: PLUGIN_NAME.len(), - version: PLUGIN_VERSION.as_ptr(), - version_len: PLUGIN_VERSION.len(), - } -} - -#[no_mangle] -pub extern "C" fn load_host_vtable(_vtable: &HostVTable) { - println!("Loading vtable"); -} - -#[no_mangle] -pub extern "C" fn load_initialization_vtable(init_vtable: &InitializationVTable) { - INIT_VTABLE.set(*init_vtable).unwrap(); - println!("Loaded initialization vtable"); +#[derive(Clone, Debug)] +pub struct IssuesPluginState { + pub pool: PgPool, } -#[no_mangle] -pub extern "C" fn initialize() -> PluginState { - // tracing_subscriber::fmt() - // .pretty() - // .with_thread_names(true) - // .with_max_level(Level::TRACE) - // .init(); - - PluginState { - inner: Box::into_raw(Box::new(())), +impl StateUUID for IssuesPluginState { + fn uuid() -> u128 { + todo!() } } -#[no_mangle] -pub extern "C" fn initialize_registration( - state: *mut PluginInitializationState, -) -> *mut PluginInitializationState { +#[plugin::init] +pub fn init(builder: &mut PluginStackBuilder) -> Result<(), Error> { let runtime = Runtime::new().unwrap(); - - // let _guard: tracing::span::EnteredSpan = trace_span!("initialize_registration").entered(); - let init_vtable = INIT_VTABLE.get().unwrap(); - let db_pool = runtime.block_on(async { let config: Table = { let mut file = File::open("Giterated.toml").await.unwrap(); @@ -146,12 +110,12 @@ pub extern "C" fn initialize_registration( db_pool }); - ASYNC_RUNTIME.set(runtime).unwrap(); + // ASYNC_RUNTIME.set(runtime).unwrap(); let plugin_state = IssuesPluginState { pool: db_pool }; - let mut builder: PluginStackBuilder<'_, IssuesPluginState> = - PluginStackBuilder::new(plugin_state, state, init_vtable); + // let mut builder: PluginStackBuilder<'_, IssuesPluginState> = + // PluginStackBuilder::new(plugin_state, state, init_vtable); builder.object::(); @@ -173,10 +137,5 @@ pub extern "C" fn initialize_registration( .operation(edit_issue_request) .operation(issue_post_comment_request); - state -} - -#[derive(Clone, Debug)] -pub struct IssuesPluginState { - pub pool: PgPool, + Ok(()) } diff --git a/plugins/giterated-issues/src/main.rs b/plugins/giterated-issues/src/main.rs index e6a0b91..647272c 100644 --- a/plugins/giterated-issues/src/main.rs +++ b/plugins/giterated-issues/src/main.rs @@ -2,22 +2,25 @@ use std::str::FromStr; use giterated_issues::operations::CreateIssueRequest; use giterated_models::{repository::Repository, user::User}; -use giterated_plugin::{handle::PluginHandle, new_stack::Runtime}; +use giterated_plugin::abi::vtable::runtime::RuntimeHandle; +use giterated_runtime::{Runtime, StaticRuntimeExt}; use tracing::Level; #[tokio::main] -pub async fn main() { +pub async fn main() -> Result<(), anyhow::Error> { tracing_subscriber::fmt() .pretty() .with_thread_names(true) .with_max_level(Level::TRACE) .init(); - let handle = PluginHandle::from_dylib("giterated_issues.dll").unwrap(); - let mut runtime = Runtime::new(); - runtime.insert_plugin(handle); + runtime.load_dylib("giterated_issues.dll")?; + + runtime.init(); + + let runtime = unsafe { RuntimeHandle::from_static() }; let operation = CreateIssueRequest { name: String::from("test issue"), @@ -36,4 +39,6 @@ pub async fn main() { println!("Error in create issue: {:?}", err) } } + + Ok(()) } diff --git a/plugins/giterated-protocol/src/handlers.rs b/plugins/giterated-protocol/src/handlers.rs index 63a7724..59680f6 100644 --- a/plugins/giterated-protocol/src/handlers.rs +++ b/plugins/giterated-protocol/src/handlers.rs @@ -8,7 +8,7 @@ use giterated_models::{ object::GiteratedObject, operation::GiteratedOperation, }; -use giterated_plugin::abi::vtable::runtime::RuntimeHandle; +use giterated_plugin::{abi::vtable::runtime::RuntimeHandle, Failure, Object, Operation, Success}; use serde::{Deserialize, Serialize}; use tokio::net::TcpStream; use tokio_tungstenite::{connect_async, tungstenite::Message, MaybeTlsStream, WebSocketStream}; @@ -85,10 +85,10 @@ impl GiteratedOperation for NetworkedOperation { /// against a remote instance. pub async fn try_handle_with_remote( state: ProtocolState, - object: AnyObject, - operation: AnyOperation, + object: Object, + operation: Operation, _runtime: RuntimeHandle, -) -> Result> { +) -> Result> { // if object.is::() { // return Err(OperationError::Unhandled); // }