diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml new file mode 100644 index 0000000..2851793 --- /dev/null +++ b/.github/workflows/benchmarks.yml @@ -0,0 +1,53 @@ +name: Benchmarks + +on: + push: + branches: + - main + pull_request: + types: [ opened, reopened, synchronize ] + +permissions: + contents: read + +jobs: + benchmark: + name: Run Benchmarks + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: Checkout source code + uses: actions/checkout@v4 + + - name: Install Rust + uses: dtolnay/rust-toolchain@master + with: + components: 'llvm-tools-preview' + toolchain: stable + + - name: Install benchmarking tools + uses: bencherdev/bencher@main + + - name: Run benchmarks + if: ${{ github.event_name == 'pull_request' }} + env: + BENCHER_API_TOKEN: ${{ secrets.BENCHER_API_TOKEN }} + BENCHER_PROJECT: theseus-rs-postgresql-embedded + BENCHER_ADAPTER: rust_criterion + run: | + bencher run \ + --branch $GITHUB_HEAD_REF \ + --ci-number "${{ github.event.number }}" \ + --github-actions "${{ secrets.GITHUB_TOKEN }}" \ + --err \ + "cargo bench --features blocking" + + - name: Run benchmarks + if: ${{ github.event_name != 'pull_request' }} + env: + BENCHER_API_TOKEN: ${{ secrets.BENCHER_API_TOKEN }} + BENCHER_PROJECT: theseus-rs-postgresql-embedded + BENCHER_ADAPTER: rust_criterion + run: | + bencher run "cargo bench --features blocking" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 55433f3..975a212 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,16 +85,3 @@ jobs: verbose: true env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - - name: Install benchmarking tools - if: ${{ github.ref == 'refs/heads/main' && matrix.platform == 'linux-x64' }} - uses: bencherdev/bencher@main - - - name: Run benchmarks - if: ${{ github.ref == 'refs/heads/main' && matrix.platform == 'linux-x64' }} - env: - BENCHER_API_TOKEN: ${{ secrets.BENCHER_API_TOKEN }} - BENCHER_PROJECT: theseus-rs-postgresql-embedded - BENCHER_ADAPTER: rust_criterion - run: | - bencher run "cargo bench --features blocking" diff --git a/CHANGELOG.md b/CHANGELOG.md index c2d0e5e..f73bd06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,71 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## `postgresql_embedded` - [0.19.0](https://github.com/theseus-rs/postgresql-embedded/compare/v0.18.7...v0.19.0) - 2025-06-24 + +### Added +- allow skipping the installation step during setup + +### Other +- correct typo in variable name +- update extractor feature documentation + +## `postgresql_archive` - [0.19.0](https://github.com/theseus-rs/postgresql-embedded/compare/postgresql_archive-v0.18.7...postgresql_archive-v0.19.0) - 2025-06-24 + +### Other +- update extractor feature documentation + +## `postgresql_embedded` - [0.18.7](https://github.com/theseus-rs/postgresql-embedded/compare/v0.18.6...v0.18.7) - 2025-06-20 + +### Fixed +- set CREATE_NO_WINDOW creation flag on Windows + +### Other +- update Cargo.toml dependencies + +## `postgresql_commands` - [0.18.7](https://github.com/theseus-rs/postgresql-embedded/compare/postgresql_commands-v0.18.6...postgresql_commands-v0.18.7) - 2025-06-20 + +### Fixed +- set CREATE_NO_WINDOW creation flag on Windows + +## `postgresql_archive` - [0.18.7](https://github.com/theseus-rs/postgresql-embedded/compare/postgresql_archive-v0.18.6...postgresql_archive-v0.18.7) - 2025-06-20 + +### Other +- update Cargo.toml dependencies + +## `postgresql_extensions` - [0.18.6](https://github.com/theseus-rs/postgresql-embedded/compare/postgresql_extensions-v0.18.5...postgresql_extensions-v0.18.6) - 2025-06-17 + +### Added + +- add extractor feature flags + +### Other + +- correct lint errors + +## `postgresql_embedded` - [0.18.6](https://github.com/theseus-rs/postgresql-embedded/compare/v0.18.5...v0.18.6) - 2025-06-17 + +### Added + +- add extractor feature flags + +### Other + +- make liblzma an optional dependency +- add documentation for bundled feature flag +- correct lint errors + +## `postgresql_archive` - [0.18.6](https://github.com/theseus-rs/postgresql-embedded/compare/postgresql_archive-v0.18.5...postgresql_archive-v0.18.6) - 2025-06-17 + +### Added + +- add extractor feature flags + +### Other + +- make liblzma an optional dependency +- correct lint errors + ## `postgresql_extensions` - [0.18.5](https://github.com/theseus-rs/postgresql-embedded/compare/postgresql_extensions-v0.18.4...postgresql_extensions-v0.18.5) - 2025-05-28 ### Other diff --git a/Cargo.lock b/Cargo.lock index 28033a1..845b5ca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aho-corasick" @@ -40,9 +40,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" dependencies = [ "anstyle", "anstyle-parse", @@ -55,33 +55,33 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.8" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6680de5231bd6ee4c6191b8a1325daa282b415391ec9d3a37bd34f2060dc73fa" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", "once_cell_polyfill", @@ -105,7 +105,7 @@ dependencies = [ [[package]] name = "archive_async" -version = "0.18.5" +version = "0.19.0" dependencies = [ "postgresql_archive", "tempfile", @@ -114,7 +114,7 @@ dependencies = [ [[package]] name = "archive_sync" -version = "0.18.5" +version = "0.19.0" dependencies = [ "postgresql_archive", "tempfile", @@ -148,9 +148,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" @@ -208,7 +208,7 @@ dependencies = [ [[package]] name = "axum_embedded" -version = "0.18.5" +version = "0.19.0" dependencies = [ "anyhow", "axum", @@ -264,9 +264,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "byteorder" @@ -288,9 +288,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.24" +version = "1.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7" +checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" dependencies = [ "jobserver", "libc", @@ -299,9 +299,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "cfg_aliases" @@ -338,18 +338,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.39" +version = "4.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd60e63e9be68e5fb56422e397cf9baddded06dae1d2e523401542383bc72a9f" +checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.39" +version = "4.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89cc6392a1f72bbeb820d71f32108f61fdaf18bc526e1d23954168a67759ef51" +checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" dependencies = [ "anstyle", "clap_lex", @@ -357,15 +357,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "concurrent-queue" @@ -385,7 +385,7 @@ dependencies = [ "encode_unicode", "libc", "once_cell", - "unicode-width 0.2.0", + "unicode-width 0.2.1", "windows-sys 0.59.0", ] @@ -517,9 +517,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-common" @@ -579,9 +579,9 @@ dependencies = [ [[package]] name = "diesel" -version = "2.2.10" +version = "2.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff3e1edb1f37b4953dd5176916347289ed43d7119cc2e6c7c3f7849ff44ea506" +checksum = "a917a9209950404d5be011c81d081a2692a822f73c3d6af586f0cab5ff50f614" dependencies = [ "bitflags 2.9.1", "byteorder", @@ -593,9 +593,9 @@ dependencies = [ [[package]] name = "diesel_derives" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68d4216021b3ea446fd2047f5c8f8fe6e98af34508a254a01e4d6bc1e844f84d" +checksum = "52841e97814f407b895d836fa0012091dff79c6268f39ad8155d384c21ae0d26" dependencies = [ "diesel_table_macro_syntax", "dsl_auto_type", @@ -606,7 +606,7 @@ dependencies = [ [[package]] name = "diesel_embedded" -version = "0.18.5" +version = "0.19.0" dependencies = [ "diesel", "diesel_migrations", @@ -665,7 +665,7 @@ checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "download_progress_bar" -version = "0.18.5" +version = "0.19.0" dependencies = [ "anyhow", "indicatif", @@ -702,7 +702,7 @@ dependencies = [ [[package]] name = "embedded_async" -version = "0.18.5" +version = "0.19.0" dependencies = [ "postgresql_embedded", "tokio", @@ -710,7 +710,7 @@ dependencies = [ [[package]] name = "embedded_sync" -version = "0.18.5" +version = "0.19.0" dependencies = [ "postgresql_embedded", ] @@ -750,12 +750,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -806,9 +806,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "libz-rs-sys", @@ -901,7 +901,7 @@ checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.12.3", + "parking_lot 0.12.4", ] [[package]] @@ -970,7 +970,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -1006,9 +1006,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" dependencies = [ "allocator-api2", "equivalent", @@ -1131,9 +1131,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.6" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a01595e11bdcec50946522c32dde3fc6914743000a68b93000965f2f02406d" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ "http", "hyper", @@ -1164,9 +1164,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c293b6b3d21eca78250dc7dbebd6b9210ec5530e038cbfe0661b5c47ab06e8" +checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" dependencies = [ "base64", "bytes", @@ -1301,9 +1301,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", "hashbrown", @@ -1318,7 +1318,7 @@ dependencies = [ "console", "number_prefix", "portable-atomic", - "unicode-width 0.2.0", + "unicode-width 0.2.1", "vt100", "web-time", ] @@ -1415,24 +1415,24 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.172" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "liblzma" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66352d7a8ac12d4877b6e6ea5a9b7650ee094257dc40889955bea5bc5b08c1d0" +checksum = "0791ab7e08ccc8e0ce893f6906eb2703ed8739d8e89b57c0714e71bad09024c8" dependencies = [ "liblzma-sys", ] [[package]] name = "liblzma-sys" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5839bad90c3cc2e0b8c4ed8296b80e86040240f81d46b9c0e9bc8dd51ddd3af1" +checksum = "01b9596486f6d60c3bbe644c0e1be1aa6ccc472ad630fe8927b456973d7cb736" dependencies = [ "cc", "libc", @@ -1441,20 +1441,20 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ "bitflags 2.9.1", "libc", - "redox_syscall 0.5.12", + "redox_syscall 0.5.13", ] [[package]] name = "libz-rs-sys" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6489ca9bd760fe9642d7644e827b0c9add07df89857b0416ee15c1cc1a3b8c5a" +checksum = "172a788537a2221661b480fee8dc5f96c580eb34fa88764d3205dc356c7e4221" dependencies = [ "zlib-rs", ] @@ -1473,9 +1473,9 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -1520,9 +1520,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "migrations_internals" @@ -1553,9 +1553,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] @@ -1567,7 +1567,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "windows-sys 0.59.0", ] @@ -1652,9 +1652,9 @@ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "openssl" -version = "0.10.72" +version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ "bitflags 2.9.1", "cfg-if", @@ -1684,9 +1684,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.108" +version = "0.9.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e145e1651e858e820e4860f7b9c5e169bc1d8ce1c86043be79fa7b7634821847" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" dependencies = [ "cc", "libc", @@ -1719,12 +1719,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", - "parking_lot_core 0.9.10", + "parking_lot_core 0.9.11", ] [[package]] @@ -1743,13 +1743,13 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.12", + "redox_syscall 0.5.13", "smallvec", "windows-targets 0.52.6", ] @@ -1835,13 +1835,13 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "portal_corp_extension" -version = "0.18.5" +version = "0.19.0" dependencies = [ "anyhow", "indoc", @@ -1899,7 +1899,7 @@ dependencies = [ [[package]] name = "postgres_embedded" -version = "0.18.5" +version = "0.19.0" dependencies = [ "anyhow", "postgres", @@ -1908,7 +1908,7 @@ dependencies = [ [[package]] name = "postgresql_archive" -version = "0.18.5" +version = "0.19.0" dependencies = [ "anyhow", "async-trait", @@ -1944,7 +1944,7 @@ dependencies = [ [[package]] name = "postgresql_commands" -version = "0.18.5" +version = "0.19.0" dependencies = [ "test-log", "thiserror 2.0.12", @@ -1954,7 +1954,7 @@ dependencies = [ [[package]] name = "postgresql_embedded" -version = "0.18.5" +version = "0.19.0" dependencies = [ "anyhow", "criterion", @@ -1974,7 +1974,7 @@ dependencies = [ [[package]] name = "postgresql_extensions" -version = "0.18.5" +version = "0.19.0" dependencies = [ "anyhow", "async-trait", @@ -2015,9 +2015,9 @@ dependencies = [ [[package]] name = "pq-sys" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c852911b98f5981956037b2ca976660612e548986c30af075e753107bc3400" +checksum = "dfd6cf44cca8f9624bc19df234fc4112873432f5fda1caff174527846d026fa9" dependencies = [ "libc", "vcpkg", @@ -2085,9 +2085,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" +checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" dependencies = [ "cfg_aliases", "libc", @@ -2108,9 +2108,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "r2d2" @@ -2119,7 +2119,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" dependencies = [ "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "scheduled-thread-pool", ] @@ -2223,9 +2223,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" dependencies = [ "bitflags 2.9.1", ] @@ -2282,9 +2282,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.18" +version = "0.12.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e98ff6b0dbbe4d5a37318f433d4fc82babd21631f194d370409ceb2e40b2f0b5" +checksum = "eabf4c97d9130e2bf606614eb937e86edac8292eaa6f422f995d7e8de1eb1813" dependencies = [ "base64", "bytes", @@ -2297,12 +2297,9 @@ dependencies = [ "hyper-rustls", "hyper-tls", "hyper-util", - "ipnet", "js-sys", "log", - "mime", "native-tls", - "once_cell", "percent-encoding", "pin-project-lite", "quinn", @@ -2366,9 +2363,9 @@ dependencies = [ [[package]] name = "reqwest-tracing" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0eee96990cfb4c09545847385e89b2d2d2e571143d55264a05d77c713780" +checksum = "d70ea85f131b2ee9874f0b160ac5976f8af75f3c9badfe0d955880257d10bd83" dependencies = [ "anyhow", "async-trait", @@ -2405,9 +2402,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" [[package]] name = "rustc-hash" @@ -2430,9 +2427,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.27" +version = "0.23.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" +checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" dependencies = [ "once_cell", "ring", @@ -2511,7 +2508,7 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" dependencies = [ - "parking_lot 0.12.3", + "parking_lot 0.12.4", ] [[package]] @@ -2609,9 +2606,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] @@ -2688,18 +2685,15 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" dependencies = [ "serde", ] @@ -2837,7 +2831,7 @@ dependencies = [ [[package]] name = "sqlx_embedded" -version = "0.18.5" +version = "0.19.0" dependencies = [ "anyhow", "postgresql_embedded", @@ -2876,9 +2870,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.101" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -2937,7 +2931,7 @@ dependencies = [ [[package]] name = "tensor_chord_extension" -version = "0.18.5" +version = "0.19.0" dependencies = [ "anyhow", "indoc", @@ -3013,12 +3007,11 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] @@ -3066,7 +3059,7 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project-lite", "signal-hook-registry", "socket2", @@ -3108,7 +3101,7 @@ dependencies = [ "futures-channel", "futures-util", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "percent-encoding", "phf", "pin-project-lite", @@ -3157,9 +3150,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", @@ -3169,18 +3162,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.9" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.26" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", "serde", @@ -3192,9 +3185,9 @@ dependencies = [ [[package]] name = "toml_write" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "tower" @@ -3214,9 +3207,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.4" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdb0c213ca27a9f57ab69ddb290fd80d970922355b83ae380b395d3986b8a2e" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "bitflags 2.9.1", "bytes", @@ -3256,9 +3249,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", @@ -3267,9 +3260,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -3363,9 +3356,9 @@ checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-width" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" [[package]] name = "untrusted" @@ -3468,9 +3461,9 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" @@ -3612,14 +3605,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.0", + "webpki-roots 1.0.1", ] [[package]] name = "webpki-roots" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" +checksum = "8782dd5a41a24eed3a4f40b606249b3e236ca61adf1f25ea4d45c73de122b502" dependencies = [ "rustls-pki-types", ] @@ -3630,7 +3623,7 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6994d13118ab492c3c80c1f81928718159254c53c472bf9ce36f8dae4add02a7" dependencies = [ - "redox_syscall 0.5.12", + "redox_syscall 0.5.13", "wasite", "web-sys", ] @@ -3693,6 +3686,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -3717,13 +3719,29 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -3736,6 +3754,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -3748,6 +3772,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -3760,12 +3790,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -3778,6 +3820,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -3790,6 +3838,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -3802,6 +3856,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -3814,11 +3874,17 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" +checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" dependencies = [ "memchr", ] @@ -3840,9 +3906,9 @@ checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "xattr" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" +checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", "rustix", @@ -3874,18 +3940,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", @@ -3954,9 +4020,9 @@ dependencies = [ [[package]] name = "zip" -version = "4.0.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "153a6fff49d264c4babdcfa6b4d534747f520e56e8f0f384f3b808c4b64cc1fd" +checksum = "95ab361742de920c5535880f89bbd611ee62002bf11341d16a5f057bb8ba6899" dependencies = [ "arbitrary", "crc32fast", @@ -3968,13 +4034,13 @@ dependencies = [ [[package]] name = "zlib-rs" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "868b928d7949e09af2f6086dfc1e01936064cc7a819253bce650d4e2a2d63ba8" +checksum = "626bd9fa9734751fc50d6060752170984d7053f5a39061f524cda68023d4db8a" [[package]] name = "zonky" -version = "0.18.5" +version = "0.19.0" dependencies = [ "postgresql_archive", "postgresql_embedded", diff --git a/Cargo.toml b/Cargo.toml index b35e87d..b26ec68 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,22 +21,22 @@ edition = "2024" keywords = ["postgresql", "postgres", "embedded", "database", "server"] license = "(Apache-2.0 OR MIT) AND PostgreSQL" repository = "https://github.com/theseus-rs/postgresql-embedded" -rust-version = "1.87.0" -version = "0.18.5" +rust-version = "1.88.0" +version = "0.19.0" [workspace.dependencies] anyhow = "1.0.98" async-trait = "0.1.88" axum = "0.8.4" criterion = "0.6.0" -diesel = "2.2.10" +diesel = "2.2.11" diesel_migrations = "2.2.0" -flate2 = "1.1.1" +flate2 = "1.1.2" futures-util = "0.3.31" hex = "0.4.3" indicatif = "0.17.11" indoc = "2.0.6" -liblzma = "0.4.1" +liblzma = "0.4.2" md-5 = "0.10.6" num-format = "0.4.4" pgvector = "0.4.1" @@ -45,10 +45,10 @@ quick-xml = "0.37.5" r2d2_postgres = "0.18.2" rand = "0.9.1" regex-lite = "0.1.6" -reqwest = { version = "0.12.18", default-features = false } +reqwest = { version = "0.12.20", default-features = false } reqwest-middleware = "0.4.2" reqwest-retry = "0.7.0" -reqwest-tracing = "0.5.7" +reqwest-tracing = "0.5.8" semver = "1.0.26" serde = "1.0.219" serde_json = "1.0.140" @@ -65,7 +65,7 @@ tracing = "0.1.41" tracing-indicatif = "0.3.9" tracing-subscriber = "0.3.19" url = "2.5.4" -zip = { version = "4.0.0", default-features = false, features = ["deflate"] } +zip = { version = "4.2.0", default-features = false, features = ["deflate"] } [workspace.metadata.release] shared-version = true diff --git a/postgresql_archive/Cargo.toml b/postgresql_archive/Cargo.toml index 026a56e..c415a65 100644 --- a/postgresql_archive/Cargo.toml +++ b/postgresql_archive/Cargo.toml @@ -12,10 +12,10 @@ version.workspace = true [dependencies] async-trait = { workspace = true } -flate2 = { workspace = true } +flate2 = { workspace = true, optional = true } futures-util = { workspace = true } hex = { workspace = true } -liblzma = { workspace = true } +liblzma = { workspace = true, optional = true } md-5 = { workspace = true, optional = true } num-format = { workspace = true } quick-xml = { workspace = true, features = ["serialize"], optional = true } @@ -29,7 +29,7 @@ serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true, optional = true } sha1 = { workspace = true, optional = true } sha2 = { workspace = true, optional = true } -tar = { workspace = true } +tar = { workspace = true, optional = true } target-triple = { workspace = true, optional = true } tempfile = { workspace = true } thiserror = { workspace = true } @@ -37,7 +37,7 @@ tokio = { workspace = true, features = ["full"], optional = true } tracing = { workspace = true, features = ["log"] } tracing-indicatif = { workspace = true, optional = true } url = { workspace = true } -zip = { workspace = true } +zip = { workspace = true, optional = true } [dev-dependencies] anyhow = { workspace = true } @@ -49,7 +49,7 @@ tokio = { workspace = true } [features] default = [ "native-tls", - "theseus", + "theseus" ] blocking = ["dep:tokio"] github = [ @@ -70,13 +70,27 @@ native-tls = ["reqwest/native-tls"] rustls = ["reqwest/rustls-tls-native-roots"] sha1 = ["dep:sha1"] sha2 = ["dep:sha2"] +tar-gz = [ + "dep:flate2", + "dep:tar", +] +tar-xz = [ + "dep:liblzma", + "dep:tar", +] theseus = [ "dep:target-triple", "github", "sha2", + "tar-gz", +] +zip = [ + "dep:zip", ] zonky = [ "maven", + "tar-xz", + "zip", ] [package.metadata.docs.rs] diff --git a/postgresql_archive/README.md b/postgresql_archive/README.md index 1c0d441..9bc0d87 100644 --- a/postgresql_archive/README.md +++ b/postgresql_archive/README.md @@ -63,6 +63,14 @@ The following features are available: | `theseus` | Enables theseus PostgreSQL binaries | Yes | | `zonky` | Enables zonky PostgreSQL binaries | No | +### Extractors + +| Name | Description | Default? | +|----------|--------------------------|----------| +| `tar-gz` | Enables tar gz extractor | Yes | +| `tar-xz` | Enables tar xz extractor | No | +| `zip` | Enables zip extractor | No | + ### Hashers | Name | Description | Default? | diff --git a/postgresql_archive/src/archive.rs b/postgresql_archive/src/archive.rs index 47c85c6..d55b40d 100644 --- a/postgresql_archive/src/archive.rs +++ b/postgresql_archive/src/archive.rs @@ -45,7 +45,7 @@ pub async fn extract(url: &str, bytes: &Vec, out_dir: &Path) -> Result, extract_directories: ExtractDirectories) -> Result> { +pub fn extract(bytes: &Vec, extract_directories: &ExtractDirectories) -> Result> { let out_dir = extract_directories.get_path(".")?; let parent_dir = if let Some(parent) = out_dir.parent() { @@ -41,7 +41,7 @@ pub fn extract(bytes: &Vec, extract_directories: ExtractDirectories) -> Resu debug!("Extracting archive to {}", extract_dir.to_string_lossy()); let mut archive_extract_directories = ExtractDirectories::default(); archive_extract_directories.add_mapping(Regex::new(".*")?, extract_dir.clone()); - let files = tar_gz_extract(bytes, archive_extract_directories)?; + let files = tar_gz_extract(bytes, &archive_extract_directories)?; if out_dir.exists() { debug!( diff --git a/postgresql_archive/src/configuration/zonky/extractor.rs b/postgresql_archive/src/configuration/zonky/extractor.rs index 12dc383..bacdab6 100644 --- a/postgresql_archive/src/configuration/zonky/extractor.rs +++ b/postgresql_archive/src/configuration/zonky/extractor.rs @@ -16,7 +16,7 @@ use zip::ZipArchive; /// Returns an error if the extraction fails. #[expect(clippy::case_sensitive_file_extension_comparisons)] #[instrument(skip(bytes))] -pub fn extract(bytes: &Vec, extract_directories: ExtractDirectories) -> Result> { +pub fn extract(bytes: &Vec, extract_directories: &ExtractDirectories) -> Result> { let out_dir = extract_directories.get_path(".")?; let parent_dir = if let Some(parent) = out_dir.parent() { parent @@ -63,7 +63,7 @@ pub fn extract(bytes: &Vec, extract_directories: ExtractDirectories) -> Resu let mut archive_extract_directories = ExtractDirectories::default(); archive_extract_directories.add_mapping(Regex::new(".*")?, extract_dir.clone()); - let files = tar_xz_extract(&archive_bytes, archive_extract_directories)?; + let files = tar_xz_extract(&archive_bytes, &archive_extract_directories)?; if out_dir.exists() { debug!( diff --git a/postgresql_archive/src/extractor/mod.rs b/postgresql_archive/src/extractor/mod.rs index 56b41b9..a00f086 100644 --- a/postgresql_archive/src/extractor/mod.rs +++ b/postgresql_archive/src/extractor/mod.rs @@ -1,10 +1,16 @@ mod model; pub mod registry; +#[cfg(feature = "tar-gz")] mod tar_gz_extractor; +#[cfg(feature = "tar-xz")] mod tar_xz_extractor; +#[cfg(feature = "zip")] mod zip_extractor; pub use model::ExtractDirectories; +#[cfg(feature = "tar-gz")] pub use tar_gz_extractor::extract as tar_gz_extract; +#[cfg(feature = "tar-xz")] pub use tar_xz_extractor::extract as tar_xz_extract; +#[cfg(feature = "zip")] pub use zip_extractor::extract as zip_extract; diff --git a/postgresql_archive/src/extractor/registry.rs b/postgresql_archive/src/extractor/registry.rs index 56394c8..ea95715 100644 --- a/postgresql_archive/src/extractor/registry.rs +++ b/postgresql_archive/src/extractor/registry.rs @@ -12,7 +12,7 @@ static REGISTRY: LazyLock>> = LazyLock::new(|| Arc::new(Mutex::new(RepositoryRegistry::default()))); type SupportsFn = fn(&str) -> Result; -type ExtractFn = fn(&Vec, ExtractDirectories) -> Result>; +type ExtractFn = fn(&Vec, &ExtractDirectories) -> Result>; /// Singleton struct to store extractors #[expect(clippy::type_complexity)] @@ -107,7 +107,7 @@ mod tests { let extractor = get(url)?; let mut extract_directories = ExtractDirectories::default(); extract_directories.add_mapping(Regex::new(".*")?, PathBuf::from("test")); - assert!(extractor(&Vec::new(), extract_directories).is_ok()); + assert!(extractor(&Vec::new(), &extract_directories).is_ok()); Ok(()) } diff --git a/postgresql_archive/src/extractor/tar_gz_extractor.rs b/postgresql_archive/src/extractor/tar_gz_extractor.rs index 0947fb4..0673436 100644 --- a/postgresql_archive/src/extractor/tar_gz_extractor.rs +++ b/postgresql_archive/src/extractor/tar_gz_extractor.rs @@ -14,7 +14,7 @@ use tracing::{debug, instrument, warn}; /// # Errors /// Returns an error if the extraction fails. #[instrument(skip(bytes))] -pub fn extract(bytes: &Vec, extract_directories: ExtractDirectories) -> Result> { +pub fn extract(bytes: &Vec, extract_directories: &ExtractDirectories) -> Result> { let mut files = Vec::new(); let input = BufReader::new(Cursor::new(bytes)); let decoder = GzDecoder::new(input); diff --git a/postgresql_archive/src/extractor/tar_xz_extractor.rs b/postgresql_archive/src/extractor/tar_xz_extractor.rs index 93caea5..3680b3d 100644 --- a/postgresql_archive/src/extractor/tar_xz_extractor.rs +++ b/postgresql_archive/src/extractor/tar_xz_extractor.rs @@ -14,7 +14,7 @@ use tracing::{debug, instrument, warn}; /// # Errors /// Returns an error if the extraction fails. #[instrument(skip(bytes))] -pub fn extract(bytes: &Vec, extract_directories: ExtractDirectories) -> Result> { +pub fn extract(bytes: &Vec, extract_directories: &ExtractDirectories) -> Result> { let mut files = Vec::new(); let input = BufReader::new(Cursor::new(bytes)); let decoder = XzDecoder::new(input); diff --git a/postgresql_archive/src/extractor/zip_extractor.rs b/postgresql_archive/src/extractor/zip_extractor.rs index 350809a..4419422 100644 --- a/postgresql_archive/src/extractor/zip_extractor.rs +++ b/postgresql_archive/src/extractor/zip_extractor.rs @@ -13,7 +13,7 @@ use zip::ZipArchive; /// # Errors /// Returns an error if the extraction fails. #[instrument(skip(bytes))] -pub fn extract(bytes: &Vec, extract_directories: ExtractDirectories) -> Result> { +pub fn extract(bytes: &Vec, extract_directories: &ExtractDirectories) -> Result> { let mut files = Vec::new(); let reader = Cursor::new(bytes); let mut archive = ZipArchive::new(reader).map_err(|_| io::Error::other("Zip error"))?; diff --git a/postgresql_archive/src/lib.rs b/postgresql_archive/src/lib.rs index 66d647a..a729ad2 100644 --- a/postgresql_archive/src/lib.rs +++ b/postgresql_archive/src/lib.rs @@ -68,6 +68,14 @@ //! | `theseus` | Enables theseus PostgreSQL binaries | Yes | //! | `zonky` | Enables zonky PostgreSQL binaries | No | //! +//! ### Extractors +//! +//! | Name | Description | Default? | +//! |----------|--------------------------|----------| +//! | `tar-gz` | Enables tar gz extractor | Yes | +//! | `tar-xz` | Enables tar xz extractor | No | +//! | `zip` | Enables zip extractor | No | +//! //! ### Hashers //! //! | Name | Description | Default? | diff --git a/postgresql_commands/src/traits.rs b/postgresql_commands/src/traits.rs index e688d0e..391ed90 100644 --- a/postgresql_commands/src/traits.rs +++ b/postgresql_commands/src/traits.rs @@ -2,11 +2,23 @@ use crate::error::{Error, Result}; use std::env::consts::OS; use std::ffi::{OsStr, OsString}; use std::fmt::Debug; +#[cfg(target_os = "windows")] +use std::os::windows::process::CommandExt; use std::path::PathBuf; use std::process::ExitStatus; use std::time::Duration; use tracing::debug; +/// Constant for the `CREATE_NO_WINDOW` flag on Windows to prevent the creation of a console window +/// when executing commands. This is useful for background processes or services that do not require +/// user interaction. +/// +/// # References +/// +/// - [Windows API: Process Creation Flags](https://learn.microsoft.com/en-us/windows/win32/procthread/process-creation-flags#flags) +#[cfg(target_os = "windows")] +const CREATE_NO_WINDOW: u32 = 0x0800_0000; + /// Interface for `PostgreSQL` settings pub trait Settings { fn get_binary_dir(&self) -> PathBuf; @@ -79,6 +91,11 @@ pub trait CommandBuilder: Debug { let program_file = self.get_program_file(); let mut command = std::process::Command::new(program_file); + #[cfg(target_os = "windows")] + { + command.creation_flags(CREATE_NO_WINDOW); + } + command.args(self.get_args()); command.envs(self.get_envs()); command @@ -93,6 +110,11 @@ pub trait CommandBuilder: Debug { let program_file = self.get_program_file(); let mut command = tokio::process::Command::new(program_file); + #[cfg(target_os = "windows")] + { + command.creation_flags(CREATE_NO_WINDOW); + } + command.args(self.get_args()); command.envs(self.get_envs()); command diff --git a/postgresql_embedded/Cargo.toml b/postgresql_embedded/Cargo.toml index 1e0269f..51c7066 100644 --- a/postgresql_embedded/Cargo.toml +++ b/postgresql_embedded/Cargo.toml @@ -13,14 +13,14 @@ version.workspace = true [build-dependencies] anyhow = { workspace = true } -postgresql_archive = { path = "../postgresql_archive", version = "0.18.5", default-features = false } +postgresql_archive = { path = "../postgresql_archive", version = "0.19.0", default-features = false } target-triple = { workspace = true } tokio = { workspace = true, features = ["full"] } url = { workspace = true } [dependencies] -postgresql_archive = { path = "../postgresql_archive", version = "0.18.5", default-features = false } -postgresql_commands = { path = "../postgresql_commands", version = "0.18.5" } +postgresql_archive = { path = "../postgresql_archive", version = "0.19.0", default-features = false } +postgresql_commands = { path = "../postgresql_commands", version = "0.19.0" } rand = { workspace = true } semver = { workspace = true } sqlx = { workspace = true, features = ["runtime-tokio"] } diff --git a/postgresql_embedded/README.md b/postgresql_embedded/README.md index c49946f..76320ff 100644 --- a/postgresql_embedded/README.md +++ b/postgresql_embedded/README.md @@ -110,6 +110,30 @@ The following features are available: | `tokio` | Enables using tokio for async | No | | `zonky` | Enables zonky PostgreSQL binaries | No | +## Bundling PostgreSQL + +To bundle PostgreSQL with your application, you can enable the `bundled` feature. This will download the PostgreSQL +archive at compile time and include it in your binary. You should specify the version of PostgreSQL to bundle by +setting the environment variable `POSTGRESQL_VERSION` to a specific version, e.g. `=17.2.0`. In order to use the bundled +PostgreSQL, you will also need to set an explicit matching version at runtime in `Settings`: + +```rust +use postgresql_embedded::{Result, Settings, VersionReq}; + +#[tokio::main] +async fn main() -> Result<()> { + let settings = Settings { + version: VersionReq::from_str("=17.2.0")?, + ..Default::default() + }; + Ok(()) +} +``` + +The PostgreSQL binaries can also be obtained from a different GitHub source by setting the `POSTGRESQL_RELEASES_URL` +environment variable. The repository must contain the releases with archives in same structure as +[theseus-rs/postgresql_binaries](https://github.com/theseus-rs/postgresql-binaries). + ## Safety This crate uses `#![forbid(unsafe_code)]` to ensure everything is implemented in 100% safe Rust. diff --git a/postgresql_embedded/build/bundle.rs b/postgresql_embedded/build/bundle.rs index 8e49d2c..1feda94 100644 --- a/postgresql_embedded/build/bundle.rs +++ b/postgresql_embedded/build/bundle.rs @@ -17,6 +17,8 @@ use url::Url; /// self-contained binary that does not require the PostgreSQL archive to be /// downloaded at runtime. pub(crate) async fn stage_postgresql_archive() -> Result<()> { + println!("cargo:rerun-if-env-changed=POSTGRESQL_VERSION"); + println!("cargo:rerun-if-env-changed=POSTGRESQL_RELEASES_URL"); #[cfg(feature = "theseus")] let default_releases_url = postgresql_archive::configuration::theseus::URL.to_string(); #[cfg(not(feature = "theseus"))] @@ -39,7 +41,7 @@ pub(crate) async fn stage_postgresql_archive() -> Result<()> { println!("Target: {}", target_triple::TARGET); let out_dir = PathBuf::from(env::var("OUT_DIR")?); - println!("OUT_DIR: {:?}", out_dir); + println!("OUT_DIR: {out_dir:?}"); let mut archive_version_file = out_dir.clone(); archive_version_file.push("postgresql.version"); @@ -47,7 +49,7 @@ pub(crate) async fn stage_postgresql_archive() -> Result<()> { archive_file.push("postgresql.tar.gz"); if archive_version_file.exists() && archive_file.exists() { - println!("PostgreSQL archive exists: {:?}", archive_file); + println!("PostgreSQL archive exists: {archive_file:?}"); return Ok(()); } @@ -57,7 +59,7 @@ pub(crate) async fn stage_postgresql_archive() -> Result<()> { let mut file = File::create(archive_file.clone())?; file.write_all(&archive)?; file.sync_data()?; - println!("PostgreSQL archive written to: {:?}", archive_file); + println!("PostgreSQL archive written to: {archive_file:?}"); Ok(()) } diff --git a/postgresql_embedded/src/postgresql.rs b/postgresql_embedded/src/postgresql.rs index 538d36f..346bfaf 100644 --- a/postgresql_embedded/src/postgresql.rs +++ b/postgresql_embedded/src/postgresql.rs @@ -55,16 +55,17 @@ impl PostgreSQL { // conflicts with other versions. This will also facilitate setting the status of the // server to the correct initial value. If the minor and release version are not set, the // installation directory will be determined dynamically during the installation process. - if let Some(version) = postgresql.settings.version.exact_version() { - let path = &postgresql.settings.installation_dir; - let version_string = version.to_string(); - - if !path.ends_with(&version_string) { - postgresql.settings.installation_dir = - postgresql.settings.installation_dir.join(version_string); + if !postgresql.settings.trust_installation_dir { + if let Some(version) = postgresql.settings.version.exact_version() { + let path = &postgresql.settings.installation_dir; + let version_string = version.to_string(); + + if !path.ends_with(&version_string) { + postgresql.settings.installation_dir = + postgresql.settings.installation_dir.join(version_string); + } } } - postgresql } @@ -93,6 +94,10 @@ impl PostgreSQL { /// If it doesn't, it will search all the child directories for the latest version that matches the requirement. /// If it returns None, we couldn't find a matching installation. fn installed_dir(&self) -> Option { + if self.settings.trust_installation_dir { + return Some(self.settings.installation_dir.clone()); + } + let path = &self.settings.installation_dir; let maybe_path_version = path .file_name() @@ -145,6 +150,10 @@ impl PostgreSQL { /// Set up the database by extracting the archive and initializing the database. /// If the installation directory already exists, the archive will not be extracted. /// If the data directory already exists, the database will not be initialized. + /// + /// # Errors + /// + /// If the installation fails, an error will be returned. #[instrument(skip(self))] pub async fn setup(&mut self) -> Result<()> { match self.installed_dir() { @@ -259,6 +268,10 @@ impl PostgreSQL { /// Start the database and wait for the startup to complete. /// If the port is set to `0`, the database will be started on a random port. + /// + /// # Errors + /// + /// If the database fails to start, an error will be returned. #[instrument(skip(self))] pub async fn start(&mut self) -> Result<()> { if self.settings.port == 0 { @@ -299,6 +312,10 @@ impl PostgreSQL { } /// Stop the database gracefully (smart mode) and wait for the shutdown to complete. + /// + /// # Errors + /// + /// If the database fails to stop, an error will be returned. #[instrument(skip(self))] pub async fn stop(&self) -> Result<()> { debug!( @@ -333,6 +350,10 @@ impl PostgreSQL { } /// Create a new database with the given name. + /// + /// # Errors + /// + /// If the database creation fails, an error will be returned. #[instrument(skip(self))] pub async fn create_database(&self, database_name: S) -> Result<()> where @@ -359,6 +380,10 @@ impl PostgreSQL { } /// Check if a database with the given name exists. + /// + /// # Errors + /// + /// If the query fails, an error will be returned. #[instrument(skip(self))] pub async fn database_exists(&self, database_name: S) -> Result where @@ -383,6 +408,10 @@ impl PostgreSQL { } /// Drop a database with the given name. + /// + /// # Errors + /// + /// If the database does not exist or if the drop command fails, an error will be returned. #[instrument(skip(self))] pub async fn drop_database(&self, database_name: S) -> Result<()> where diff --git a/postgresql_embedded/src/settings.rs b/postgresql_embedded/src/settings.rs index 019eec6..9f09dfa 100644 --- a/postgresql_embedded/src/settings.rs +++ b/postgresql_embedded/src/settings.rs @@ -58,6 +58,8 @@ pub struct Settings { pub timeout: Option, /// Server configuration options pub configuration: HashMap, + /// Skip installation and inferrence of the installation dir. Trust what the user provided. + pub trust_installation_dir: bool, } /// Settings implementation @@ -65,12 +67,12 @@ impl Settings { /// Create a new instance of [`Settings`] pub fn new() -> Self { let home_dir = home_dir().unwrap_or_else(|| env::current_dir().unwrap_or_default()); - let passwword_file_name = ".pgpass"; + let password_file_name = ".pgpass"; let password_file = if let Ok(dir) = tempfile::tempdir() { - dir.into_path().join(passwword_file_name) + dir.into_path().join(password_file_name) } else { let current_dir = current_dir().unwrap_or(PathBuf::from(".")); - current_dir.join(passwword_file_name) + current_dir.join(password_file_name) }; let data_dir = if let Ok(dir) = tempfile::tempdir() { dir.into_path() @@ -109,6 +111,7 @@ impl Settings { temporary: true, timeout: Some(Duration::from_secs(5)), configuration: HashMap::new(), + trust_installation_dir: false, } } @@ -190,6 +193,9 @@ impl Settings { } }; } + if let Some(trust_installation_dir) = query_parameters.get("trust_installation_dir") { + settings.trust_installation_dir = trust_installation_dir == "true"; + } let configuration_prefix = "configuration."; for (key, value) in &query_parameters { if key.starts_with(configuration_prefix) { @@ -296,10 +302,11 @@ mod tests { let password_file = "password_file=/tmp/.pgpass"; let data_dir = "data_dir=/tmp/data"; let temporary = "temporary=false"; + let trust_installation_dir = "trust_installation_dir=true"; let timeout = "timeout=10"; let configuration = "configuration.max_connections=42"; let url = format!( - "{base_url}?{releases_url}&{version}&{installation_dir}&{password_file}&{data_dir}&{temporary}&{temporary}&{timeout}&{configuration}" + "{base_url}?{releases_url}&{version}&{installation_dir}&{password_file}&{data_dir}&{temporary}&{trust_installation_dir}&{timeout}&{configuration}" ); let settings = Settings::from_url(url)?; @@ -314,6 +321,7 @@ mod tests { assert_eq!(BOOTSTRAP_SUPERUSER, settings.username); assert_eq!("password", settings.password); assert!(!settings.temporary); + assert!(settings.trust_installation_dir); assert_eq!(Some(Duration::from_secs(10)), settings.timeout); let configuration = HashMap::from([("max_connections".to_string(), "42".to_string())]); assert_eq!(configuration, settings.configuration); diff --git a/postgresql_extensions/Cargo.toml b/postgresql_extensions/Cargo.toml index a62e2b4..d7428d5 100644 --- a/postgresql_extensions/Cargo.toml +++ b/postgresql_extensions/Cargo.toml @@ -12,8 +12,8 @@ version.workspace = true [dependencies] async-trait = { workspace = true } -postgresql_archive = { path = "../postgresql_archive", version = "0.18.5", default-features = false } -postgresql_commands = { path = "../postgresql_commands", version = "0.18.5", default-features = false } +postgresql_archive = { path = "../postgresql_archive", version = "0.19.0", default-features = false } +postgresql_commands = { path = "../postgresql_commands", version = "0.19.0", default-features = false } regex-lite = { workspace = true } reqwest = { workspace = true, default-features = false, features = ["json"] } semver = { workspace = true, features = ["serde"] } @@ -28,7 +28,7 @@ url = { workspace = true } [dev-dependencies] anyhow = { workspace = true } -postgresql_embedded = { path = "../postgresql_embedded", version = "0.18.5" } +postgresql_embedded = { path = "../postgresql_embedded", version = "0.19.0" } test-log = { workspace = true } tokio = { workspace = true, features = ["full"] } @@ -43,14 +43,17 @@ blocking = ["tokio"] portal-corp = [ "dep:target-triple", "postgresql_archive/github", + "postgresql_archive/zip", ] steampipe = [ "dep:serde_json", "postgresql_archive/github", + "postgresql_archive/tar-gz", ] tensor-chord = [ "dep:target-triple", "postgresql_archive/github", + "postgresql_archive/zip", ] tokio = [ "postgresql_commands/tokio", diff --git a/postgresql_extensions/src/repository/portal_corp/repository.rs b/postgresql_extensions/src/repository/portal_corp/repository.rs index d54357b..40d2cf9 100644 --- a/postgresql_extensions/src/repository/portal_corp/repository.rs +++ b/postgresql_extensions/src/repository/portal_corp/repository.rs @@ -80,7 +80,7 @@ impl Repository for PortalCorp { extract_directories.add_mapping(Regex::new(r"\.(dll|dylib|so)$")?, library_dir); extract_directories.add_mapping(Regex::new(r"\.(control|sql)$")?, extension_dir); let bytes = &archive.to_vec(); - let files = zip_extract(bytes, extract_directories)?; + let files = zip_extract(bytes, &extract_directories)?; Ok(files) } } diff --git a/postgresql_extensions/src/repository/steampipe/repository.rs b/postgresql_extensions/src/repository/steampipe/repository.rs index f980b1d..f05fd1e 100644 --- a/postgresql_extensions/src/repository/steampipe/repository.rs +++ b/postgresql_extensions/src/repository/steampipe/repository.rs @@ -93,7 +93,7 @@ impl Repository for Steampipe { extract_directories.add_mapping(Regex::new(r"\.(dll|dylib|so)$")?, library_dir); extract_directories.add_mapping(Regex::new(r"\.(control|sql)$")?, extension_dir); let bytes = &archive.to_vec(); - let files = tar_gz_extract(bytes, extract_directories)?; + let files = tar_gz_extract(bytes, &extract_directories)?; Ok(files) } } diff --git a/postgresql_extensions/src/repository/tensor_chord/repository.rs b/postgresql_extensions/src/repository/tensor_chord/repository.rs index ac9b0c8..9a992b8 100644 --- a/postgresql_extensions/src/repository/tensor_chord/repository.rs +++ b/postgresql_extensions/src/repository/tensor_chord/repository.rs @@ -80,7 +80,7 @@ impl Repository for TensorChord { extract_directories.add_mapping(Regex::new(r"\.(dll|dylib|so)$")?, library_dir); extract_directories.add_mapping(Regex::new(r"\.(control|sql)$")?, extension_dir); let bytes = &archive.to_vec(); - let files = zip_extract(bytes, extract_directories)?; + let files = zip_extract(bytes, &extract_directories)?; Ok(files) } } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 291696d..02cb8fc 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "1.87.0" +channel = "stable" profile = "default"