diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 5fe0594..b73e56a 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -101,70 +101,3 @@ jobs: run: wget -qO- https://github.com/thedodd/trunk/releases/latest/download/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf- - name: Build run: ./trunk build - - build: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - os: macos-latest - TARGET: aarch64-apple-darwin - - - os: ubuntu-latest - TARGET: aarch64-unknown-linux-gnu - - - os: ubuntu-latest - TARGET: armv7-unknown-linux-gnueabihf - - - os: ubuntu-latest - TARGET: x86_64-unknown-linux-gnu - - - os: windows-latest - TARGET: x86_64-pc-windows-msvc - EXTENSION: .exe - - steps: - - name: Building ${{ matrix.TARGET }} - run: echo "${{ matrix.TARGET }}" - - - uses: actions/checkout@master - - name: Install build dependencies - Rustup - run: | - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable --profile default --target ${{ matrix.TARGET }} -y - echo "$HOME/.cargo/bin" >> $GITHUB_PATH - - # For linux, it's necessary to use cross from the git repository to avoid glibc problems - # Ref: https://github.com/cross-rs/cross/issues/1510 - - name: Install cross for linux - if: contains(matrix.TARGET, 'linux') - run: | - cargo install cross --git https://github.com/cross-rs/cross --rev 1b8cf50d20180c1a394099e608141480f934b7f7 - - - name: Install cross for mac and windows - if: ${{ !contains(matrix.TARGET, 'linux') }} - run: | - cargo install cross - - - name: Build - run: | - cross build --verbose --release --target=${{ matrix.TARGET }} - - - name: Rename - run: cp target/${{ matrix.TARGET }}/release/eframe_template${{ matrix.EXTENSION }} eframe_template-${{ matrix.TARGET }}${{ matrix.EXTENSION }} - - - uses: actions/upload-artifact@master - with: - name: eframe_template-${{ matrix.TARGET }}${{ matrix.EXTENSION }} - path: eframe_template-${{ matrix.TARGET }}${{ matrix.EXTENSION }} - - - uses: svenstaro/upload-release-action@v2 - name: Upload binaries to release - if: ${{ github.event_name == 'push' }} - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: eframe_template-${{ matrix.TARGET }}${{ matrix.EXTENSION }} - asset_name: eframe_template-${{ matrix.TARGET }}${{ matrix.EXTENSION }} - tag: ${{ github.ref }} - prerelease: ${{ !startsWith(github.ref, 'refs/tags/') }} - overwrite: true diff --git a/Cargo.lock b/Cargo.lock index a4997b1..94a4008 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,12 +1,12 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "ab_glyph" -version = "0.2.23" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225" +checksum = "ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -49,7 +49,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f47983a1084940ba9a39c077a8c63e55c619388be5476ac04c804cfbd1e63459" dependencies = [ "accesskit", - "hashbrown 0.15.2", + "hashbrown", "immutable-chunkmap", ] @@ -61,10 +61,10 @@ checksum = "7329821f3bd1101e03a7d2e03bd339e3ac0dc64c70b4c9f9ae1949e3ba8dece1" dependencies = [ "accesskit", "accesskit_consumer", - "hashbrown 0.15.2", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "hashbrown", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -93,7 +93,7 @@ checksum = "24fcd5d23d70670992b823e735e859374d694a3d12bfd8dd32bd3bd8bedb5d81" dependencies = [ "accesskit", "accesskit_consumer", - "hashbrown 0.15.2", + "hashbrown", "paste", "static_assertions", "windows", @@ -115,40 +115,34 @@ dependencies = [ ] [[package]] -name = "adler" -version = "1.0.2" +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom", + "getrandom 0.3.3", "once_cell", "serde", "version_check", "zerocopy", ] -[[package]] -name = "aho-corasick" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" -dependencies = [ - "memchr", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - [[package]] name = "android-activity" version = "0.6.0" @@ -156,7 +150,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.9.0", + "bitflags 2.9.1", "cc", "cesu8", "jni", @@ -185,71 +179,23 @@ dependencies = [ "libc", ] -[[package]] -name = "anstream" -version = "0.6.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" - -[[package]] -name = "anstyle-parse" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" -dependencies = [ - "anstyle", - "windows-sys 0.52.0", -] - [[package]] name = "arboard" -version = "3.3.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafb29b107435aa276664c1db8954ac27a6e105cdad3c88287a199eb0e313c08" +checksum = "c1df21f715862ede32a0c525ce2ca4d52626bb0007f8c18b87a384503ac33e70" dependencies = [ "clipboard-win", - "core-graphics 0.22.3", - "image 0.24.9", + "image", "log", - "objc", - "objc-foundation", - "objc_id", + "objc2 0.6.1", + "objc2-app-kit 0.3.1", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.1", "parking_lot", - "thiserror 1.0.69", - "winapi", + "percent-encoding", + "windows-sys 0.59.0", "x11rb", ] @@ -259,6 +205,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "as-raw-xcb-connection" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" + [[package]] name = "ash" version = "0.38.0+1.3.281" @@ -270,39 +222,39 @@ dependencies = [ [[package]] name = "async-broadcast" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ - "event-listener 5.3.1", - "event-listener-strategy 0.5.3", + "event-listener", + "event-listener-strategy", "futures-core", "pin-project-lite", ] [[package]] name = "async-channel" -version = "2.1.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 4.0.3", - "event-listener-strategy 0.4.0", + "event-listener-strategy", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.11.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" +checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" dependencies = [ "async-task", "concurrent-queue", "fastrand", "futures-lite", + "pin-project-lite", "slab", ] @@ -312,66 +264,57 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock 3.4.0", + "async-lock", "blocking", "futures-lite", ] [[package]] name = "async-io" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +checksum = "1237c0ae75a0f3765f58910ff9cdd0a12eeb39ab2f4c7de23262f337f0aacbb3" dependencies = [ - "async-lock 3.4.0", + "async-lock", "cfg-if", "concurrent-queue", "futures-io", "futures-lite", "parking", "polling", - "rustix", + "rustix 1.0.7", "slab", "tracing", "windows-sys 0.59.0", ] -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", -] - [[package]] name = "async-lock" version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.3.1", - "event-listener-strategy 0.5.3", + "event-listener", + "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-process" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" +checksum = "cde3f4e40e6021d7acffc90095cbd6dc54cb593903d1de5832f435eb274b85dc" dependencies = [ "async-channel", "async-io", - "async-lock 3.4.0", + "async-lock", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener 5.3.1", + "event-listener", "futures-lite", - "rustix", + "rustix 1.0.7", "tracing", ] @@ -388,20 +331,20 @@ dependencies = [ [[package]] name = "async-signal" -version = "0.2.5" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +checksum = "d7605a4e50d4b06df3898d5a70bf5fde51ed9059b0434b73105193bc27acce0d" dependencies = [ "async-io", - "async-lock 2.8.0", + "async-lock", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix", + "rustix 1.0.7", "signal-hook-registry", "slab", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -412,9 +355,9 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", @@ -480,15 +423,36 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64" -version = "0.21.5" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bit-set" @@ -513,9 +477,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" dependencies = [ "serde", ] @@ -541,7 +505,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" dependencies = [ - "objc2", + "objc2 0.5.2", ] [[package]] @@ -559,24 +523,24 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" [[package]] name = "bytemuck" -version = "1.22.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" +checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.5.0" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" +checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" dependencies = [ "proc-macro2", "quote", @@ -584,16 +548,16 @@ dependencies = [ ] [[package]] -name = "byteorder" -version = "1.5.0" +name = "byteorder-lite" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.5.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "calloop" @@ -601,10 +565,10 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "log", "polling", - "rustix", + "rustix 0.38.44", "slab", "thiserror 1.0.69", ] @@ -616,19 +580,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" dependencies = [ "calloop", - "rustix", + "rustix 0.38.44", "wayland-backend", "wayland-client", ] [[package]] name = "cc" -version = "1.0.83" +version = "1.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -639,9 +604,9 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[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" @@ -660,13 +625,11 @@ dependencies = [ [[package]] name = "clipboard-win" -version = "4.5.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" dependencies = [ "error-code", - "str-buf", - "winapi", ] [[package]] @@ -679,23 +642,11 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - -[[package]] -name = "colorchoice" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" - [[package]] name = "combine" -version = "4.6.6" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" dependencies = [ "bytes", "memchr", @@ -703,9 +654,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] @@ -721,34 +672,31 @@ dependencies = [ ] [[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "core-graphics" -version = "0.22.3" +name = "core-foundation" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-graphics-types", - "foreign-types 0.3.2", + "core-foundation-sys", "libc", ] +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + [[package]] name = "core-graphics" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "core-graphics-types", - "foreign-types 0.5.0", + "foreign-types", "libc", ] @@ -759,36 +707,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "libc", ] [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-utils" -version = "0.8.18" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" -dependencies = [ - "cfg-if", -] +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-common" @@ -802,9 +747,9 @@ dependencies = [ [[package]] name = "cursor-icon" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" +checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" [[package]] name = "digest" @@ -822,6 +767,27 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +[[package]] +name = "dispatch2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +dependencies = [ + "bitflags 2.9.1", + "objc2 0.6.1", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "dlib" version = "0.5.2" @@ -833,24 +799,24 @@ dependencies = [ [[package]] name = "document-features" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" dependencies = [ "litrs", ] [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" [[package]] name = "ecolor" @@ -880,12 +846,12 @@ dependencies = [ "glutin", "glutin-winit", "home", - "image 0.25.1", + "image", "js-sys", "log", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", "parking_lot", "percent-encoding", "profiling", @@ -902,19 +868,6 @@ dependencies = [ "winit", ] -[[package]] -name = "eframe_template" -version = "0.1.0" -dependencies = [ - "eframe", - "egui", - "env_logger", - "log", - "serde", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "egui" version = "0.31.1" @@ -923,7 +876,7 @@ checksum = "25dd34cec49ab55d85ebf70139cb1ccd29c977ef6b6ba4fe85489d6877ee9ef3" dependencies = [ "accesskit", "ahash", - "bitflags 2.9.0", + "bitflags 2.9.1", "emath", "epaint", "log", @@ -985,13 +938,29 @@ dependencies = [ "egui", "glow", "log", - "memoffset 0.9.0", + "memoffset", "profiling", "wasm-bindgen", "web-sys", "winit", ] +[[package]] +name = "ehttp" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59a81c221a1e4dad06cb9c9deb19aea1193a5eea084e8cd42d869068132bf876" +dependencies = [ + "document-features", + "js-sys", + "serde", + "serde_json", + "ureq", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "emath" version = "0.31.1" @@ -1010,9 +979,9 @@ checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" [[package]] name = "enumflags2" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" dependencies = [ "enumflags2_derive", "serde", @@ -1020,9 +989,9 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", @@ -1031,38 +1000,15 @@ dependencies = [ [[package]] name = "enumn" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", "syn", ] -[[package]] -name = "env_filter" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "jiff", - "log", -] - [[package]] name = "epaint" version = "0.31.1" @@ -1090,52 +1036,31 @@ checksum = "fc7e7a64c02cf7a5b51e745a9e45f60660a286f151c238b9d397b3e923f5082f" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "error-code" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" -dependencies = [ - "libc", - "str-buf", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "4.0.3" +version = "3.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] +checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" [[package]] name = "event-listener" -version = "5.3.1" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" dependencies = [ "concurrent-queue", "parking", @@ -1144,44 +1069,34 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.3", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.3.1", + "event-listener", "pin-project-lite", ] [[package]] name = "fastrand" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fdeflate" -version = "0.3.3" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" dependencies = [ "simd-adler32", ] [[package]] name = "flate2" -version = "1.0.28" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "miniz_oxide", @@ -1189,18 +1104,9 @@ dependencies = [ [[package]] name = "foldhash" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" - -[[package]] -name = "foreign-types" -version = "0.3.2" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared 0.1.1", -] +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "foreign-types" @@ -1209,7 +1115,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" dependencies = [ "foreign-types-macros", - "foreign-types-shared 0.3.1", + "foreign-types-shared", ] [[package]] @@ -1223,12 +1129,6 @@ dependencies = [ "syn", ] -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "foreign-types-shared" version = "0.3.1" @@ -1246,21 +1146,21 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ "fastrand", "futures-core", @@ -1271,9 +1171,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", @@ -1282,21 +1182,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-io", @@ -1321,25 +1221,43 @@ dependencies = [ [[package]] name = "gethostname" -version = "0.3.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177" +checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" dependencies = [ "libc", - "winapi", + "windows-targets 0.48.5", ] [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "libc", - "wasi", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", ] +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + [[package]] name = "gl_generator" version = "0.14.0" @@ -1365,25 +1283,27 @@ dependencies = [ [[package]] name = "glutin" -version = "0.32.1" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec69412a0bf07ea7607e638b415447857a808846c2b685a43c8aa18bc6d5e499" +checksum = "12124de845cacfebedff80e877bb37b5b75c34c5a4c89e47e1cdd67fb6041325" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg_aliases", "cgl", - "core-foundation", - "dispatch", + "dispatch2", "glutin_egl_sys", + "glutin_glx_sys", "glutin_wgl_sys", "libloading", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.6.1", + "objc2-app-kit 0.3.1", + "objc2-core-foundation", + "objc2-foundation 0.3.1", "once_cell", "raw-window-handle", "wayland-sys", "windows-sys 0.52.0", + "x11-dl", ] [[package]] @@ -1400,30 +1320,40 @@ dependencies = [ [[package]] name = "glutin_egl_sys" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae99fff4d2850dbe6fb8c1fa8e4fead5525bab715beaacfccf3fb994e01c827" +checksum = "4c4680ba6195f424febdc3ba46e7a42a0e58743f2edb115297b86d7f8ecc02d2" dependencies = [ "gl_generator", "windows-sys 0.52.0", ] [[package]] -name = "glutin_wgl_sys" -version = "0.6.0" +name = "glutin_glx_sys" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e1951bbd9434a81aa496fe59ccc2235af3820d27b85f9314e279609211e2c" +checksum = "8a7bb2938045a88b612499fbcba375a77198e01306f52272e692f8c1f3751185" dependencies = [ "gl_generator", + "x11-dl", ] [[package]] -name = "gpu-alloc" -version = "0.6.0" +name = "glutin_wgl_sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e" +dependencies = [ + "gl_generator", +] + +[[package]] +name = "gpu-alloc" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "gpu-alloc-types", ] @@ -1433,18 +1363,18 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] name = "gpu-descriptor" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" +checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "gpu-descriptor-types", - "hashbrown 0.14.3", + "hashbrown", ] [[package]] @@ -1453,24 +1383,14 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.9.0", -] - -[[package]] -name = "hashbrown" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" -dependencies = [ - "ahash", - "allocator-api2", + "bitflags 2.9.1", ] [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" dependencies = [ "foldhash", ] @@ -1481,6 +1401,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hermit-abi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" + [[package]] name = "hex" version = "0.4.3" @@ -1495,98 +1421,172 @@ checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] -name = "idna" -version = "0.5.0" +name = "icu_collections" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", ] [[package]] -name = "image" -version = "0.24.9" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "num-traits", - "png", - "tiff", + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", ] [[package]] -name = "image" -version = "0.25.1" +name = "icu_normalizer" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ - "bytemuck", - "byteorder", + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "idb" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3afe8830d5802f769dc0be20a87f9f116798c896650cb6266eb5c19a3c109eed" +dependencies = [ + "js-sys", "num-traits", - "png", + "thiserror 1.0.69", + "tokio", + "wasm-bindgen", + "web-sys", ] [[package]] -name = "immutable-chunkmap" -version = "2.0.6" +name = "idna" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f97096f508d54f8f8ab8957862eee2ccd628847b6217af1a335e1c44dee578" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "arrayvec", + "idna_adapter", + "smallvec", + "utf8_iter", ] [[package]] -name = "indexmap" -version = "2.7.0" +name = "idna_adapter" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ - "equivalent", - "hashbrown 0.15.2", + "icu_normalizer", + "icu_properties", ] [[package]] -name = "is_terminal_polyfill" -version = "1.70.1" +name = "image" +version = "0.25.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a" +dependencies = [ + "bytemuck", + "byteorder-lite", + "num-traits", + "png", + "tiff", +] [[package]] -name = "jiff" -version = "0.2.9" +name = "immutable-chunkmap" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ec30f7142be6fe14e1b021f50b85db8df2d4324ea6e91ec3e5dcde092021d0" +checksum = "12f97096f508d54f8f8ab8957862eee2ccd628847b6217af1a335e1c44dee578" dependencies = [ - "jiff-static", - "log", - "portable-atomic", - "portable-atomic-util", - "serde", + "arrayvec", ] [[package]] -name = "jiff-static" -version = "0.2.9" +name = "indexmap" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "526b834d727fd59d37b076b0c3236d9adde1b1729a4361e20b2026f738cc1dbe" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ - "proc-macro2", - "quote", - "syn", + "equivalent", + "hashbrown", ] +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + [[package]] name = "jni" version = "0.21.1" @@ -1611,10 +1611,11 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.3", "libc", ] @@ -1653,36 +1654,48 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" [[package]] name = "libc" -version = "0.2.168" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libloading" -version = "0.8.1" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-sys 0.48.0", + "windows-targets 0.53.0", ] [[package]] name = "libredox" -version = "0.0.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "libc", - "redox_syscall", + "redox_syscall 0.5.12", ] [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "litrs" @@ -1692,9 +1705,9 @@ checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -1717,33 +1730,24 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] [[package]] name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ "autocfg", ] @@ -1754,10 +1758,10 @@ version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "block", "core-graphics-types", - "foreign-types 0.5.0", + "foreign-types", "log", "objc", "paste", @@ -1765,11 +1769,11 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ - "adler", + "adler2", "simd-adler32", ] @@ -1781,13 +1785,13 @@ checksum = "e380993072e52eef724eddfcde0ed013b0c023c3f0417336ed041aa9f076994e" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg_aliases", "codespan-reporting", "hexf-parse", "indexmap", "log", - "rustc-hash", + "rustc-hash 1.1.0", "spirv", "strum", "termcolor", @@ -1801,7 +1805,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "jni-sys", "log", "ndk-sys 0.6.0+11769913", @@ -1834,29 +1838,17 @@ dependencies = [ "jni-sys", ] -[[package]] -name = "nix" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", - "memoffset 0.7.1", -] - [[package]] name = "nix" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "cfg_aliases", "libc", - "memoffset 0.9.0", + "memoffset", ] [[package]] @@ -1867,27 +1859,27 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "num_enum" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1904,17 +1896,6 @@ dependencies = [ "malloc_buf", ] -[[package]] -name = "objc-foundation" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" -dependencies = [ - "block", - "objc", - "objc_id", -] - [[package]] name = "objc-sys" version = "0.3.5" @@ -1931,33 +1912,55 @@ dependencies = [ "objc2-encode", ] +[[package]] +name = "objc2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551" +dependencies = [ + "objc2-encode", +] + [[package]] name = "objc2-app-kit" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "block2", "libc", - "objc2", + "objc2 0.5.2", "objc2-core-data", "objc2-core-image", - "objc2-foundation", + "objc2-foundation 0.2.2", "objc2-quartz-core", ] +[[package]] +name = "objc2-app-kit" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc" +dependencies = [ + "bitflags 2.9.1", + "objc2 0.6.1", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.1", +] + [[package]] name = "objc2-cloud-kit" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "block2", - "objc2", + "objc2 0.5.2", "objc2-core-location", - "objc2-foundation", + "objc2-foundation 0.2.2", ] [[package]] @@ -1967,8 +1970,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" dependencies = [ "block2", - "objc2", - "objc2-foundation", + "objc2 0.5.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -1977,10 +1980,34 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "block2", - "objc2", - "objc2-foundation", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" +dependencies = [ + "bitflags 2.9.1", + "dispatch2", + "objc2 0.6.1", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989c6c68c13021b5c2d6b71456ebb0f9dc78d752e86a98da7c716f4f9470f5a4" +dependencies = [ + "bitflags 2.9.1", + "dispatch2", + "objc2 0.6.1", + "objc2-core-foundation", + "objc2-io-surface", ] [[package]] @@ -1990,8 +2017,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ "block2", - "objc2", - "objc2-foundation", + "objc2 0.5.2", + "objc2-foundation 0.2.2", "objc2-metal", ] @@ -2002,16 +2029,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" dependencies = [ "block2", - "objc2", + "objc2 0.5.2", "objc2-contacts", - "objc2-foundation", + "objc2-foundation 0.2.2", ] [[package]] name = "objc2-encode" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" [[package]] name = "objc2-foundation" @@ -2019,11 +2046,33 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "block2", "dispatch", "libc", - "objc2", + "objc2 0.5.2", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c" +dependencies = [ + "bitflags 2.9.1", + "objc2 0.6.1", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7282e9ac92529fa3457ce90ebb15f4ecbc383e8338060960760fa2cf75420c3c" +dependencies = [ + "bitflags 2.9.1", + "objc2 0.6.1", + "objc2-core-foundation", ] [[package]] @@ -2033,9 +2082,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" dependencies = [ "block2", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -2044,10 +2093,10 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "block2", - "objc2", - "objc2-foundation", + "objc2 0.5.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -2056,10 +2105,10 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "block2", - "objc2", - "objc2-foundation", + "objc2 0.5.2", + "objc2-foundation 0.2.2", "objc2-metal", ] @@ -2069,8 +2118,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" dependencies = [ - "objc2", - "objc2-foundation", + "objc2 0.5.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -2079,14 +2128,14 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "block2", - "objc2", + "objc2 0.5.2", "objc2-cloud-kit", "objc2-core-data", "objc2-core-image", "objc2-core-location", - "objc2-foundation", + "objc2-foundation 0.2.2", "objc2-link-presentation", "objc2-quartz-core", "objc2-symbols", @@ -2101,8 +2150,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" dependencies = [ "block2", - "objc2", - "objc2-foundation", + "objc2 0.5.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -2111,33 +2160,33 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "block2", - "objc2", + "objc2 0.5.2", "objc2-core-location", - "objc2-foundation", + "objc2-foundation 0.2.2", ] [[package]] -name = "objc_id" -version = "0.1.1" +name = "object" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ - "objc", + "memchr", ] [[package]] name = "once_cell" -version = "1.20.2" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "orbclient" -version = "0.3.47" +version = "0.3.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" +checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" dependencies = [ "libredox", ] @@ -2163,24 +2212,24 @@ dependencies = [ [[package]] name = "owned_ttf_parser" -version = "0.20.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7" +checksum = "22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4" dependencies = [ "ttf-parser", ] [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -2188,22 +2237,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.12", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "percent-encoding" @@ -2213,18 +2262,18 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", @@ -2233,9 +2282,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -2245,9 +2294,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.1" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", "fastrand", @@ -2256,15 +2305,15 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.28" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "png" -version = "0.17.10" +version = "0.17.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" dependencies = [ "bitflags 1.3.2", "crc32fast", @@ -2275,44 +2324,42 @@ dependencies = [ [[package]] name = "polling" -version = "3.3.1" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +checksum = "b53a684391ad002dd6a596ceb6c74fd004fdce75f4be2e3f615068abbea5fd50" dependencies = [ "cfg-if", "concurrent-queue", + "hermit-abi", "pin-project-lite", - "rustix", + "rustix 1.0.7", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] -name = "portable-atomic" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" - -[[package]] -name = "portable-atomic-util" -version = "0.2.4" +name = "potential_utf" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" dependencies = [ - "portable-atomic", + "zerovec", ] [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ "toml_edit", ] @@ -2344,9 +2391,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.36.2" +version = "0.37.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" +checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" dependencies = [ "memchr", ] @@ -2360,6 +2407,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "rand" version = "0.8.5" @@ -2387,7 +2440,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.16", ] [[package]] @@ -2406,76 +2459,136 @@ dependencies = [ ] [[package]] -name = "regex" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.3" +name = "redox_syscall" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", + "bitflags 2.9.1", ] -[[package]] -name = "regex-syntax" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" - [[package]] name = "renderdoc-sys" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.16", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + [[package]] name = "ron" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ - "base64", - "bitflags 2.9.0", + "base64 0.21.7", + "bitflags 2.9.1", "serde", "serde_derive", ] +[[package]] +name = "rustc-demangle" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" + [[package]] name = "rustc-hash" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + [[package]] name = "rustix" -version = "0.38.28" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", - "linux-raw-sys", - "windows-sys 0.52.0", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +dependencies = [ + "bitflags 2.9.1", + "errno", + "libc", + "linux-raw-sys 0.9.4", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustls" +version = "0.23.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" +dependencies = [ + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", ] [[package]] name = "rustversion" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" + +[[package]] +name = "ryu" version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "same-file" @@ -2502,9 +2615,20 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" name = "serde" version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" dependencies = [ - "serde_derive", + "js-sys", + "serde", + "wasm-bindgen", ] [[package]] @@ -2518,11 +2642,23 @@ dependencies = [ "syn", ] +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "serde_repr" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", @@ -2540,11 +2676,17 @@ dependencies = [ "digest", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" dependencies = [ "libc", ] @@ -2575,9 +2717,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "smithay-client-toolkit" @@ -2585,14 +2727,14 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "calloop", "calloop-wayland-source", "cursor-icon", "libc", "log", "memmap2", - "rustix", + "rustix 0.38.44", "thiserror 1.0.69", "wayland-backend", "wayland-client", @@ -2617,9 +2759,9 @@ dependencies = [ [[package]] name = "smol_str" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" +checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" dependencies = [ "serde", ] @@ -2630,20 +2772,20 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] -name = "static_assertions" -version = "1.1.0" +name = "stable_deref_trait" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] -name = "str-buf" -version = "1.0.6" +name = "static_assertions" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "strum" @@ -2667,28 +2809,45 @@ dependencies = [ "syn", ] +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "syn" -version = "2.0.100" +version = "2.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "f6397daf94fa90f058bd0fd88429dd9e5738999cca8d701813c80723add80462" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tempfile" -version = "3.9.0" +version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ - "cfg-if", "fastrand", - "redox_syscall", - "rustix", - "windows-sys 0.52.0", + "getrandom 0.3.3", + "once_cell", + "rustix 1.0.7", + "windows-sys 0.59.0", ] [[package]] @@ -2752,31 +2911,36 @@ dependencies = [ ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "tinystr" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ - "tinyvec_macros", + "displaydoc", + "zerovec", ] [[package]] -name = "tinyvec_macros" -version = "0.1.1" +name = "tokio" +version = "1.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +dependencies = [ + "backtrace", + "pin-project-lite", +] [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", "toml_datetime", @@ -2785,9 +2949,9 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -2796,9 +2960,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662" dependencies = [ "proc-macro2", "quote", @@ -2807,33 +2971,33 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", ] [[package]] name = "ttf-parser" -version = "0.20.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" +checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" [[package]] name = "type-map" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb68604048ff8fa93347f02441e4487594adc20bb8a084f9e564d2b827a0a9f" +checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90" dependencies = [ - "rustc-hash", + "rustc-hash 2.1.1", ] [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "uds_windows" @@ -2841,37 +3005,22 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ - "memoffset 0.9.0", + "memoffset", "tempfile", "winapi", ] -[[package]] -name = "unicode-bidi" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" - [[package]] name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" @@ -2885,11 +3034,33 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "ureq" +version = "2.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" +dependencies = [ + "base64 0.22.1", + "flate2", + "log", + "once_cell", + "rustls", + "rustls-pki-types", + "url", + "webpki-roots 0.26.11", +] + [[package]] name = "url" -version = "2.5.0" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -2897,22 +3068,39 @@ dependencies = [ ] [[package]] -name = "utf8parse" -version = "0.2.2" +name = "utf8_iter" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "waffle_search" +version = "0.1.0" +dependencies = [ + "eframe", + "egui", + "ehttp", + "idb", + "log", + "serde", + "serde-wasm-bindgen", + "serde_json", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -2924,6 +3112,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" version = "0.2.100" @@ -2997,13 +3194,13 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.7" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" +checksum = "fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121" dependencies = [ "cc", "downcast-rs", - "rustix", + "rustix 0.38.44", "scoped-tls", "smallvec", "wayland-sys", @@ -3011,12 +3208,12 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.6" +version = "0.31.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3f45d1222915ef1fd2057220c1d9d9624b7654443ea35c3877f7a52bd0a5a2d" +checksum = "978fa7c67b0847dbd6a9f350ca2569174974cd4082737054dbb7fbb79d7d9a61" dependencies = [ - "bitflags 2.9.0", - "rustix", + "bitflags 2.9.1", + "rustix 0.38.44", "wayland-backend", "wayland-scanner", ] @@ -3027,29 +3224,29 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cursor-icon", "wayland-backend", ] [[package]] name = "wayland-cursor" -version = "0.31.0" +version = "0.31.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44aa20ae986659d6c77d64d808a046996a932aa763913864dc40c359ef7ad5b" +checksum = "a65317158dec28d00416cb16705934070aef4f8393353d41126c54264ae0f182" dependencies = [ - "nix 0.26.4", + "rustix 0.38.44", "wayland-client", "xcursor", ] [[package]] name = "wayland-protocols" -version = "0.32.4" +version = "0.32.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5755d77ae9040bb872a25026555ce4cb0ae75fd923e90d25fba07d81057de0" +checksum = "779075454e1e9a521794fed15886323ea0feda3f8b0fc1390f5398141310422a" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "wayland-backend", "wayland-client", "wayland-scanner", @@ -3057,11 +3254,11 @@ dependencies = [ [[package]] name = "wayland-protocols-plasma" -version = "0.3.4" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0a41a6875e585172495f7a96dfa42ca7e0213868f4f15c313f7c33221a7eff" +checksum = "4fd38cdad69b56ace413c6bcc1fbf5acc5e2ef4af9d5f8f1f9570c0c83eae175" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -3070,11 +3267,11 @@ dependencies = [ [[package]] name = "wayland-protocols-wlr" -version = "0.3.4" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad87b5fd1b1d3ca2f792df8f686a2a11e3fe1077b71096f7a175ab699f89109" +checksum = "1cb6cdc73399c0e06504c437fe3cf886f25568dd5454473d565085b36d6a8bbf" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -3083,20 +3280,20 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" +checksum = "896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484" dependencies = [ "proc-macro2", - "quick-xml 0.36.2", + "quick-xml 0.37.5", "quote", ] [[package]] name = "wayland-sys" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" +checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615" dependencies = [ "dlib", "log", @@ -3126,36 +3323,53 @@ dependencies = [ [[package]] name = "webbrowser" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "425ba64c1e13b1c6e8c5d2541c8fac10022ca584f33da781db01b5756aef1f4e" +checksum = "d5df295f8451142f1856b1bd86a606dfe9587d439bc036e319c827700dbd555e" dependencies = [ - "block2", - "core-foundation", + "core-foundation 0.10.1", "home", "jni", "log", "ndk-context", - "objc2", - "objc2-foundation", + "objc2 0.6.1", + "objc2-foundation 0.3.1", "url", "web-sys", ] +[[package]] +name = "webpki-roots" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.0", +] + +[[package]] +name = "webpki-roots" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "weezl" -version = "0.1.8" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" +checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" [[package]] name = "wgpu" -version = "24.0.3" +version = "24.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35904fb00ba2d2e0a4d002fcbbb6e1b89b574d272a50e5fc95f6e81cf281c245" +checksum = "6b0b3436f0729f6cdf2e6e9201f3d39dc95813fad61d826c1ed07918b4539353" dependencies = [ "arrayvec", - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg_aliases", "document-features", "js-sys", @@ -3175,13 +3389,13 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "24.0.2" +version = "24.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671c25545d479b47d3f0a8e373aceb2060b67c6eb841b24ac8c32348151c7a0c" +checksum = "7f0aa306497a238d169b9dc70659105b4a096859a34894544ca81719242e1499" dependencies = [ "arrayvec", "bit-vec", - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg_aliases", "document-features", "indexmap", @@ -3191,7 +3405,7 @@ dependencies = [ "parking_lot", "profiling", "raw-window-handle", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror 2.0.12", "wgpu-hal", @@ -3207,7 +3421,7 @@ dependencies = [ "android_system_properties", "arrayvec", "ash", - "bitflags 2.9.0", + "bitflags 2.9.1", "bytemuck", "cfg_aliases", "core-graphics-types", @@ -3230,7 +3444,7 @@ dependencies = [ "profiling", "raw-window-handle", "renderdoc-sys", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror 2.0.12", "wasm-bindgen", @@ -3245,7 +3459,7 @@ version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50ac044c0e76c03a0378e7786ac505d010a873665e2d51383dcff8dd227dc69c" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "js-sys", "log", "web-sys", @@ -3269,20 +3483,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-wsapoll" -version = "0.1.1" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -3364,15 +3569,6 @@ dependencies = [ "windows-targets 0.42.2", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -3430,13 +3626,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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +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.42.2" @@ -3455,6 +3667,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.42.2" @@ -3473,6 +3691,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.42.2" @@ -3491,12 +3715,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.42.2" @@ -3515,6 +3751,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.42.2" @@ -3533,6 +3775,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.42.2" @@ -3551,6 +3799,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.42.2" @@ -3569,37 +3823,45 @@ 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 = "winit" -version = "0.30.9" +version = "0.30.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a809eacf18c8eca8b6635091543f02a5a06ddf3dad846398795460e6e0ae3cc0" +checksum = "a4409c10174df8779dc29a4788cac85ed84024ccbc1743b776b21a520ee1aaf4" dependencies = [ "ahash", "android-activity", "atomic-waker", - "bitflags 2.9.0", + "bitflags 2.9.1", "block2", + "bytemuck", "calloop", "cfg_aliases", "concurrent-queue", - "core-foundation", - "core-graphics 0.23.1", + "core-foundation 0.9.4", + "core-graphics", "cursor-icon", "dpi", "js-sys", "libc", "memmap2", "ndk", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", "objc2-ui-kit", "orbclient", + "percent-encoding", "pin-project", "raw-window-handle", - "redox_syscall", - "rustix", + "redox_syscall 0.4.1", + "rustix 0.38.44", "smithay-client-toolkit", "smol_str", "tracing", @@ -3613,45 +3875,72 @@ dependencies = [ "web-sys", "web-time", "windows-sys 0.52.0", + "x11-dl", + "x11rb", "xkbcommon-dl", ] [[package]] name = "winnow" -version = "0.6.20" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.1", +] + +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + [[package]] name = "x11rb" -version = "0.12.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a" +checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" dependencies = [ + "as-raw-xcb-connection", "gethostname", - "nix 0.26.4", - "winapi", - "winapi-wsapoll", + "libc", + "libloading", + "once_cell", + "rustix 0.38.44", "x11rb-protocol", ] [[package]] name = "x11rb-protocol" -version = "0.12.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc" -dependencies = [ - "nix 0.26.4", -] +checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" [[package]] name = "xcursor" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" +checksum = "0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61" [[package]] name = "xdg-home" @@ -3669,7 +3958,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "dlib", "log", "once_cell", @@ -3678,15 +3967,39 @@ dependencies = [ [[package]] name = "xkeysym" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621" +checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" [[package]] name = "xml-rs" -version = "0.8.19" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda" + +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] [[package]] name = "zbus" @@ -3698,19 +4011,19 @@ dependencies = [ "async-executor", "async-fs", "async-io", - "async-lock 3.4.0", + "async-lock", "async-process", "async-recursion", "async-task", "async-trait", "blocking", "enumflags2", - "event-listener 5.3.1", + "event-listener", "futures-core", "futures-sink", "futures-util", "hex", - "nix 0.29.0", + "nix", "ordered-stream", "rand", "serde", @@ -3789,18 +4102,78 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index e0e77e1..9009d0d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,10 @@ [package] -name = "eframe_template" +name = "waffle_search" version = "0.1.0" -authors = ["Emil Ernerfeldt "] -edition = "2021" +authors = ["Emil Ernerfeldt , h0lybyte"] +edition = "2024" include = ["LICENSE-APACHE", "LICENSE-MIT", "**/*.rs", "Cargo.toml"] -rust-version = "1.81" +rust-version = "1.86" [package.metadata.docs.rs] all-features = true @@ -21,18 +21,14 @@ eframe = { version = "0.31", default-features = false, features = [ "x11", # To support older Linux distributions (restores one of the default features) ] } log = "0.4.27" - -# You only need serde if you want app persistence: serde = { version = "1.0.219", features = ["derive"] } - -# native: -[target.'cfg(not(target_arch = "wasm32"))'.dependencies] -env_logger = "0.11.8" - -# web: -[target.'cfg(target_arch = "wasm32")'.dependencies] +serde_json = "1.0" +ehttp = { version = "0.5.0", features = ["json"] } +idb = "0.6.4" +serde-wasm-bindgen = "0.6.5" +web-sys = "0.3.70" wasm-bindgen-futures = "0.4.50" -web-sys = "0.3.70" # to access the DOM (to hide the loading text) +wasm-bindgen = "0.2.100" [profile.release] opt-level = 2 # fast and small wasm diff --git a/assets/sw.js b/assets/sw.js index 7ecd229..83b155a 100644 --- a/assets/sw.js +++ b/assets/sw.js @@ -2,8 +2,8 @@ var cacheName = 'egui-template-pwa'; var filesToCache = [ './', './index.html', - './eframe_template.js', - './eframe_template_bg.wasm', + './waffle_search.js', + './waffle_search_bg.wasm', ]; /* Start the service worker and cache all of the app's content */ diff --git a/rust-toolchain b/rust-toolchain index dd9d16c..3d3bbe0 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -5,6 +5,6 @@ # to the user in the error, instead of "error: invalid channel name '[toolchain]'". [toolchain] -channel = "1.81" # Avoid specifying a patch version here; see https://github.com/emilk/eframe_template/issues/145 +channel = "1.86.0" # Avoid specifying a patch version here; see https://github.com/emilk/eframe_template/issues/145 components = [ "rustfmt", "clippy" ] targets = [ "wasm32-unknown-unknown" ] diff --git a/sample.json b/sample.json new file mode 100644 index 0000000..947c1aa --- /dev/null +++ b/sample.json @@ -0,0 +1,1174 @@ +{ + "total_count": 867178, + "incomplete_results": false, + "items": [ + { + "id": 724712, + "node_id": "MDEwOlJlcG9zaXRvcnk3MjQ3MTI=", + "name": "rust", + "full_name": "rust-lang/rust", + "private": false, + "owner": { + "login": "rust-lang", + "id": 5430905, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjU0MzA5MDU=", + "avatar_url": "https://avatars.githubusercontent.com/u/5430905?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rust-lang", + "html_url": "https://github.com/rust-lang", + "followers_url": "https://api.github.com/users/rust-lang/followers", + "following_url": "https://api.github.com/users/rust-lang/following{/other_user}", + "gists_url": "https://api.github.com/users/rust-lang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rust-lang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rust-lang/subscriptions", + "organizations_url": "https://api.github.com/users/rust-lang/orgs", + "repos_url": "https://api.github.com/users/rust-lang/repos", + "events_url": "https://api.github.com/users/rust-lang/events{/privacy}", + "received_events_url": "https://api.github.com/users/rust-lang/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/rust-lang/rust", + "description": "Empowering everyone to build reliable and efficient software.", + "fork": false, + "url": "https://api.github.com/repos/rust-lang/rust", + "forks_url": "https://api.github.com/repos/rust-lang/rust/forks", + "keys_url": "https://api.github.com/repos/rust-lang/rust/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/rust-lang/rust/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/rust-lang/rust/teams", + "hooks_url": "https://api.github.com/repos/rust-lang/rust/hooks", + "issue_events_url": "https://api.github.com/repos/rust-lang/rust/issues/events{/number}", + "events_url": "https://api.github.com/repos/rust-lang/rust/events", + "assignees_url": "https://api.github.com/repos/rust-lang/rust/assignees{/user}", + "branches_url": "https://api.github.com/repos/rust-lang/rust/branches{/branch}", + "tags_url": "https://api.github.com/repos/rust-lang/rust/tags", + "blobs_url": "https://api.github.com/repos/rust-lang/rust/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/rust-lang/rust/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/rust-lang/rust/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/rust-lang/rust/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/rust-lang/rust/statuses/{sha}", + "languages_url": "https://api.github.com/repos/rust-lang/rust/languages", + "stargazers_url": "https://api.github.com/repos/rust-lang/rust/stargazers", + "contributors_url": "https://api.github.com/repos/rust-lang/rust/contributors", + "subscribers_url": "https://api.github.com/repos/rust-lang/rust/subscribers", + "subscription_url": "https://api.github.com/repos/rust-lang/rust/subscription", + "commits_url": "https://api.github.com/repos/rust-lang/rust/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/rust-lang/rust/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/rust-lang/rust/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/rust-lang/rust/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/rust-lang/rust/contents/{+path}", + "compare_url": "https://api.github.com/repos/rust-lang/rust/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/rust-lang/rust/merges", + "archive_url": "https://api.github.com/repos/rust-lang/rust/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/rust-lang/rust/downloads", + "issues_url": "https://api.github.com/repos/rust-lang/rust/issues{/number}", + "pulls_url": "https://api.github.com/repos/rust-lang/rust/pulls{/number}", + "milestones_url": "https://api.github.com/repos/rust-lang/rust/milestones{/number}", + "notifications_url": "https://api.github.com/repos/rust-lang/rust/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/rust-lang/rust/labels{/name}", + "releases_url": "https://api.github.com/repos/rust-lang/rust/releases{/id}", + "deployments_url": "https://api.github.com/repos/rust-lang/rust/deployments", + "created_at": "2010-06-16T20:39:03Z", + "updated_at": "2025-06-10T15:31:50Z", + "pushed_at": "2025-06-10T15:57:00Z", + "git_url": "git://github.com/rust-lang/rust.git", + "ssh_url": "git@github.com:rust-lang/rust.git", + "clone_url": "https://github.com/rust-lang/rust.git", + "svn_url": "https://github.com/rust-lang/rust", + "homepage": "https://www.rust-lang.org", + "size": 682817, + "stargazers_count": 104211, + "watchers_count": 104211, + "language": "Rust", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 13425, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 11202, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "compiler", + "hacktoberfest", + "language", + "rust" + ], + "visibility": "public", + "forks": 13425, + "open_issues": 11202, + "watchers": 104211, + "default_branch": "master", + "score": 1 + }, + { + "id": 133442384, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzM0NDIzODQ=", + "name": "deno", + "full_name": "denoland/deno", + "private": false, + "owner": { + "login": "denoland", + "id": 42048915, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjQyMDQ4OTE1", + "avatar_url": "https://avatars.githubusercontent.com/u/42048915?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/denoland", + "html_url": "https://github.com/denoland", + "followers_url": "https://api.github.com/users/denoland/followers", + "following_url": "https://api.github.com/users/denoland/following{/other_user}", + "gists_url": "https://api.github.com/users/denoland/gists{/gist_id}", + "starred_url": "https://api.github.com/users/denoland/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/denoland/subscriptions", + "organizations_url": "https://api.github.com/users/denoland/orgs", + "repos_url": "https://api.github.com/users/denoland/repos", + "events_url": "https://api.github.com/users/denoland/events{/privacy}", + "received_events_url": "https://api.github.com/users/denoland/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/denoland/deno", + "description": "A modern runtime for JavaScript and TypeScript.", + "fork": false, + "url": "https://api.github.com/repos/denoland/deno", + "forks_url": "https://api.github.com/repos/denoland/deno/forks", + "keys_url": "https://api.github.com/repos/denoland/deno/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/denoland/deno/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/denoland/deno/teams", + "hooks_url": "https://api.github.com/repos/denoland/deno/hooks", + "issue_events_url": "https://api.github.com/repos/denoland/deno/issues/events{/number}", + "events_url": "https://api.github.com/repos/denoland/deno/events", + "assignees_url": "https://api.github.com/repos/denoland/deno/assignees{/user}", + "branches_url": "https://api.github.com/repos/denoland/deno/branches{/branch}", + "tags_url": "https://api.github.com/repos/denoland/deno/tags", + "blobs_url": "https://api.github.com/repos/denoland/deno/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/denoland/deno/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/denoland/deno/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/denoland/deno/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/denoland/deno/statuses/{sha}", + "languages_url": "https://api.github.com/repos/denoland/deno/languages", + "stargazers_url": "https://api.github.com/repos/denoland/deno/stargazers", + "contributors_url": "https://api.github.com/repos/denoland/deno/contributors", + "subscribers_url": "https://api.github.com/repos/denoland/deno/subscribers", + "subscription_url": "https://api.github.com/repos/denoland/deno/subscription", + "commits_url": "https://api.github.com/repos/denoland/deno/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/denoland/deno/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/denoland/deno/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/denoland/deno/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/denoland/deno/contents/{+path}", + "compare_url": "https://api.github.com/repos/denoland/deno/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/denoland/deno/merges", + "archive_url": "https://api.github.com/repos/denoland/deno/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/denoland/deno/downloads", + "issues_url": "https://api.github.com/repos/denoland/deno/issues{/number}", + "pulls_url": "https://api.github.com/repos/denoland/deno/pulls{/number}", + "milestones_url": "https://api.github.com/repos/denoland/deno/milestones{/number}", + "notifications_url": "https://api.github.com/repos/denoland/deno/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/denoland/deno/labels{/name}", + "releases_url": "https://api.github.com/repos/denoland/deno/releases{/id}", + "deployments_url": "https://api.github.com/repos/denoland/deno/deployments", + "created_at": "2018-05-15T01:34:26Z", + "updated_at": "2025-06-10T15:53:58Z", + "pushed_at": "2025-06-10T15:44:32Z", + "git_url": "git://github.com/denoland/deno.git", + "ssh_url": "git@github.com:denoland/deno.git", + "clone_url": "https://github.com/denoland/deno.git", + "svn_url": "https://github.com/denoland/deno", + "homepage": "https://deno.com", + "size": 174465, + "stargazers_count": 103273, + "watchers_count": 103273, + "language": "Rust", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 5620, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2217, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": true, + "topics": [ + "deno", + "javascript", + "rust", + "typescript" + ], + "visibility": "public", + "forks": 5620, + "open_issues": 2217, + "watchers": 103273, + "default_branch": "main", + "score": 1 + }, + { + "id": 196701619, + "node_id": "MDEwOlJlcG9zaXRvcnkxOTY3MDE2MTk=", + "name": "tauri", + "full_name": "tauri-apps/tauri", + "private": false, + "owner": { + "login": "tauri-apps", + "id": 54536011, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjU0NTM2MDEx", + "avatar_url": "https://avatars.githubusercontent.com/u/54536011?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/tauri-apps", + "html_url": "https://github.com/tauri-apps", + "followers_url": "https://api.github.com/users/tauri-apps/followers", + "following_url": "https://api.github.com/users/tauri-apps/following{/other_user}", + "gists_url": "https://api.github.com/users/tauri-apps/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tauri-apps/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tauri-apps/subscriptions", + "organizations_url": "https://api.github.com/users/tauri-apps/orgs", + "repos_url": "https://api.github.com/users/tauri-apps/repos", + "events_url": "https://api.github.com/users/tauri-apps/events{/privacy}", + "received_events_url": "https://api.github.com/users/tauri-apps/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/tauri-apps/tauri", + "description": "Build smaller, faster, and more secure desktop and mobile applications with a web frontend.", + "fork": false, + "url": "https://api.github.com/repos/tauri-apps/tauri", + "forks_url": "https://api.github.com/repos/tauri-apps/tauri/forks", + "keys_url": "https://api.github.com/repos/tauri-apps/tauri/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/tauri-apps/tauri/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/tauri-apps/tauri/teams", + "hooks_url": "https://api.github.com/repos/tauri-apps/tauri/hooks", + "issue_events_url": "https://api.github.com/repos/tauri-apps/tauri/issues/events{/number}", + "events_url": "https://api.github.com/repos/tauri-apps/tauri/events", + "assignees_url": "https://api.github.com/repos/tauri-apps/tauri/assignees{/user}", + "branches_url": "https://api.github.com/repos/tauri-apps/tauri/branches{/branch}", + "tags_url": "https://api.github.com/repos/tauri-apps/tauri/tags", + "blobs_url": "https://api.github.com/repos/tauri-apps/tauri/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/tauri-apps/tauri/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/tauri-apps/tauri/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/tauri-apps/tauri/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/tauri-apps/tauri/statuses/{sha}", + "languages_url": "https://api.github.com/repos/tauri-apps/tauri/languages", + "stargazers_url": "https://api.github.com/repos/tauri-apps/tauri/stargazers", + "contributors_url": "https://api.github.com/repos/tauri-apps/tauri/contributors", + "subscribers_url": "https://api.github.com/repos/tauri-apps/tauri/subscribers", + "subscription_url": "https://api.github.com/repos/tauri-apps/tauri/subscription", + "commits_url": "https://api.github.com/repos/tauri-apps/tauri/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/tauri-apps/tauri/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/tauri-apps/tauri/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/tauri-apps/tauri/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/tauri-apps/tauri/contents/{+path}", + "compare_url": "https://api.github.com/repos/tauri-apps/tauri/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/tauri-apps/tauri/merges", + "archive_url": "https://api.github.com/repos/tauri-apps/tauri/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/tauri-apps/tauri/downloads", + "issues_url": "https://api.github.com/repos/tauri-apps/tauri/issues{/number}", + "pulls_url": "https://api.github.com/repos/tauri-apps/tauri/pulls{/number}", + "milestones_url": "https://api.github.com/repos/tauri-apps/tauri/milestones{/number}", + "notifications_url": "https://api.github.com/repos/tauri-apps/tauri/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/tauri-apps/tauri/labels{/name}", + "releases_url": "https://api.github.com/repos/tauri-apps/tauri/releases{/id}", + "deployments_url": "https://api.github.com/repos/tauri-apps/tauri/deployments", + "created_at": "2019-07-13T09:09:37Z", + "updated_at": "2025-06-10T15:13:38Z", + "pushed_at": "2025-06-10T04:42:35Z", + "git_url": "git://github.com/tauri-apps/tauri.git", + "ssh_url": "git@github.com:tauri-apps/tauri.git", + "clone_url": "https://github.com/tauri-apps/tauri.git", + "svn_url": "https://github.com/tauri-apps/tauri", + "homepage": "https://tauri.app", + "size": 96452, + "stargazers_count": 93363, + "watchers_count": 93363, + "language": "Rust", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": true, + "forks_count": 2888, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1137, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "desktop-app", + "high-performance", + "mobile-app", + "native-app", + "rust", + "web-frontend", + "webview" + ], + "visibility": "public", + "forks": 2888, + "open_issues": 1137, + "watchers": 93363, + "default_branch": "dev", + "score": 1 + }, + { + "id": 299354207, + "node_id": "MDEwOlJlcG9zaXRvcnkyOTkzNTQyMDc=", + "name": "rustdesk", + "full_name": "rustdesk/rustdesk", + "private": false, + "owner": { + "login": "rustdesk", + "id": 71636191, + "node_id": "MDQ6VXNlcjcxNjM2MTkx", + "avatar_url": "https://avatars.githubusercontent.com/u/71636191?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rustdesk", + "html_url": "https://github.com/rustdesk", + "followers_url": "https://api.github.com/users/rustdesk/followers", + "following_url": "https://api.github.com/users/rustdesk/following{/other_user}", + "gists_url": "https://api.github.com/users/rustdesk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rustdesk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rustdesk/subscriptions", + "organizations_url": "https://api.github.com/users/rustdesk/orgs", + "repos_url": "https://api.github.com/users/rustdesk/repos", + "events_url": "https://api.github.com/users/rustdesk/events{/privacy}", + "received_events_url": "https://api.github.com/users/rustdesk/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/rustdesk/rustdesk", + "description": "An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.", + "fork": false, + "url": "https://api.github.com/repos/rustdesk/rustdesk", + "forks_url": "https://api.github.com/repos/rustdesk/rustdesk/forks", + "keys_url": "https://api.github.com/repos/rustdesk/rustdesk/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/rustdesk/rustdesk/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/rustdesk/rustdesk/teams", + "hooks_url": "https://api.github.com/repos/rustdesk/rustdesk/hooks", + "issue_events_url": "https://api.github.com/repos/rustdesk/rustdesk/issues/events{/number}", + "events_url": "https://api.github.com/repos/rustdesk/rustdesk/events", + "assignees_url": "https://api.github.com/repos/rustdesk/rustdesk/assignees{/user}", + "branches_url": "https://api.github.com/repos/rustdesk/rustdesk/branches{/branch}", + "tags_url": "https://api.github.com/repos/rustdesk/rustdesk/tags", + "blobs_url": "https://api.github.com/repos/rustdesk/rustdesk/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/rustdesk/rustdesk/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/rustdesk/rustdesk/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/rustdesk/rustdesk/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/rustdesk/rustdesk/statuses/{sha}", + "languages_url": "https://api.github.com/repos/rustdesk/rustdesk/languages", + "stargazers_url": "https://api.github.com/repos/rustdesk/rustdesk/stargazers", + "contributors_url": "https://api.github.com/repos/rustdesk/rustdesk/contributors", + "subscribers_url": "https://api.github.com/repos/rustdesk/rustdesk/subscribers", + "subscription_url": "https://api.github.com/repos/rustdesk/rustdesk/subscription", + "commits_url": "https://api.github.com/repos/rustdesk/rustdesk/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/rustdesk/rustdesk/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/rustdesk/rustdesk/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/rustdesk/rustdesk/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/rustdesk/rustdesk/contents/{+path}", + "compare_url": "https://api.github.com/repos/rustdesk/rustdesk/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/rustdesk/rustdesk/merges", + "archive_url": "https://api.github.com/repos/rustdesk/rustdesk/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/rustdesk/rustdesk/downloads", + "issues_url": "https://api.github.com/repos/rustdesk/rustdesk/issues{/number}", + "pulls_url": "https://api.github.com/repos/rustdesk/rustdesk/pulls{/number}", + "milestones_url": "https://api.github.com/repos/rustdesk/rustdesk/milestones{/number}", + "notifications_url": "https://api.github.com/repos/rustdesk/rustdesk/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/rustdesk/rustdesk/labels{/name}", + "releases_url": "https://api.github.com/repos/rustdesk/rustdesk/releases{/id}", + "deployments_url": "https://api.github.com/repos/rustdesk/rustdesk/deployments", + "created_at": "2020-09-28T15:36:08Z", + "updated_at": "2025-06-10T15:23:06Z", + "pushed_at": "2025-06-10T14:01:47Z", + "git_url": "git://github.com/rustdesk/rustdesk.git", + "ssh_url": "git@github.com:rustdesk/rustdesk.git", + "clone_url": "https://github.com/rustdesk/rustdesk.git", + "svn_url": "https://github.com/rustdesk/rustdesk", + "homepage": "https://rustdesk.com", + "size": 59115, + "stargazers_count": 90348, + "watchers_count": 90348, + "language": "Rust", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 12966, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 63, + "license": { + "key": "agpl-3.0", + "name": "GNU Affero General Public License v3.0", + "spdx_id": "AGPL-3.0", + "url": "https://api.github.com/licenses/agpl-3.0", + "node_id": "MDc6TGljZW5zZTE=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "anydesk", + "dart", + "flutter", + "flutter-apps", + "flutter-desktop", + "flutter-examples", + "flutter-mobile", + "flutter-ui", + "flutter-web", + "hacktoberfest", + "linux", + "p2p", + "rdp", + "remote-control", + "remote-desktop", + "rust", + "rust-lang", + "teamviewer", + "vnc", + "wayland" + ], + "visibility": "public", + "forks": 12966, + "open_issues": 63, + "watchers": 90348, + "default_branch": "master", + "score": 1 + }, + { + "id": 641656392, + "node_id": "R_kgDOJj7mSA", + "name": "union", + "full_name": "unionlabs/union", + "private": false, + "owner": { + "login": "unionlabs", + "id": 129756567, + "node_id": "O_kgDOB7vtlw", + "avatar_url": "https://avatars.githubusercontent.com/u/129756567?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/unionlabs", + "html_url": "https://github.com/unionlabs", + "followers_url": "https://api.github.com/users/unionlabs/followers", + "following_url": "https://api.github.com/users/unionlabs/following{/other_user}", + "gists_url": "https://api.github.com/users/unionlabs/gists{/gist_id}", + "starred_url": "https://api.github.com/users/unionlabs/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/unionlabs/subscriptions", + "organizations_url": "https://api.github.com/users/unionlabs/orgs", + "repos_url": "https://api.github.com/users/unionlabs/repos", + "events_url": "https://api.github.com/users/unionlabs/events{/privacy}", + "received_events_url": "https://api.github.com/users/unionlabs/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/unionlabs/union", + "description": "The trust-minimized, zero-knowledge bridging protocol, designed for censorship resistance, extremely high security, and usage in decentralized finance.", + "fork": false, + "url": "https://api.github.com/repos/unionlabs/union", + "forks_url": "https://api.github.com/repos/unionlabs/union/forks", + "keys_url": "https://api.github.com/repos/unionlabs/union/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/unionlabs/union/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/unionlabs/union/teams", + "hooks_url": "https://api.github.com/repos/unionlabs/union/hooks", + "issue_events_url": "https://api.github.com/repos/unionlabs/union/issues/events{/number}", + "events_url": "https://api.github.com/repos/unionlabs/union/events", + "assignees_url": "https://api.github.com/repos/unionlabs/union/assignees{/user}", + "branches_url": "https://api.github.com/repos/unionlabs/union/branches{/branch}", + "tags_url": "https://api.github.com/repos/unionlabs/union/tags", + "blobs_url": "https://api.github.com/repos/unionlabs/union/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/unionlabs/union/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/unionlabs/union/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/unionlabs/union/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/unionlabs/union/statuses/{sha}", + "languages_url": "https://api.github.com/repos/unionlabs/union/languages", + "stargazers_url": "https://api.github.com/repos/unionlabs/union/stargazers", + "contributors_url": "https://api.github.com/repos/unionlabs/union/contributors", + "subscribers_url": "https://api.github.com/repos/unionlabs/union/subscribers", + "subscription_url": "https://api.github.com/repos/unionlabs/union/subscription", + "commits_url": "https://api.github.com/repos/unionlabs/union/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/unionlabs/union/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/unionlabs/union/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/unionlabs/union/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/unionlabs/union/contents/{+path}", + "compare_url": "https://api.github.com/repos/unionlabs/union/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/unionlabs/union/merges", + "archive_url": "https://api.github.com/repos/unionlabs/union/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/unionlabs/union/downloads", + "issues_url": "https://api.github.com/repos/unionlabs/union/issues{/number}", + "pulls_url": "https://api.github.com/repos/unionlabs/union/pulls{/number}", + "milestones_url": "https://api.github.com/repos/unionlabs/union/milestones{/number}", + "notifications_url": "https://api.github.com/repos/unionlabs/union/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/unionlabs/union/labels{/name}", + "releases_url": "https://api.github.com/repos/unionlabs/union/releases{/id}", + "deployments_url": "https://api.github.com/repos/unionlabs/union/deployments", + "created_at": "2023-05-16T22:33:39Z", + "updated_at": "2025-06-10T16:04:36Z", + "pushed_at": "2025-06-10T11:12:27Z", + "git_url": "git://github.com/unionlabs/union.git", + "ssh_url": "git@github.com:unionlabs/union.git", + "clone_url": "https://github.com/unionlabs/union.git", + "svn_url": "https://github.com/unionlabs/union", + "homepage": "https://union.build", + "size": 467638, + "stargazers_count": 66878, + "watchers_count": 66878, + "language": "Rust", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 3238, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 292, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "astro", + "blockchain", + "bridge", + "cosmos", + "cosmwasm", + "ethereum", + "evm", + "golang", + "indexer", + "move", + "nix", + "prover", + "relayer", + "rust", + "solidity", + "svelte", + "typescipt", + "typescript", + "zero-knowledge" + ], + "visibility": "public", + "forks": 3238, + "open_issues": 292, + "watchers": 66878, + "default_branch": "main", + "score": 1 + }, + { + "id": 331107018, + "node_id": "MDEwOlJlcG9zaXRvcnkzMzExMDcwMTg=", + "name": "sway", + "full_name": "FuelLabs/sway", + "private": false, + "owner": { + "login": "FuelLabs", + "id": 55993183, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjU1OTkzMTgz", + "avatar_url": "https://avatars.githubusercontent.com/u/55993183?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/FuelLabs", + "html_url": "https://github.com/FuelLabs", + "followers_url": "https://api.github.com/users/FuelLabs/followers", + "following_url": "https://api.github.com/users/FuelLabs/following{/other_user}", + "gists_url": "https://api.github.com/users/FuelLabs/gists{/gist_id}", + "starred_url": "https://api.github.com/users/FuelLabs/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/FuelLabs/subscriptions", + "organizations_url": "https://api.github.com/users/FuelLabs/orgs", + "repos_url": "https://api.github.com/users/FuelLabs/repos", + "events_url": "https://api.github.com/users/FuelLabs/events{/privacy}", + "received_events_url": "https://api.github.com/users/FuelLabs/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/FuelLabs/sway", + "description": "🌴 Empowering everyone to build reliable and efficient smart contracts.", + "fork": false, + "url": "https://api.github.com/repos/FuelLabs/sway", + "forks_url": "https://api.github.com/repos/FuelLabs/sway/forks", + "keys_url": "https://api.github.com/repos/FuelLabs/sway/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/FuelLabs/sway/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/FuelLabs/sway/teams", + "hooks_url": "https://api.github.com/repos/FuelLabs/sway/hooks", + "issue_events_url": "https://api.github.com/repos/FuelLabs/sway/issues/events{/number}", + "events_url": "https://api.github.com/repos/FuelLabs/sway/events", + "assignees_url": "https://api.github.com/repos/FuelLabs/sway/assignees{/user}", + "branches_url": "https://api.github.com/repos/FuelLabs/sway/branches{/branch}", + "tags_url": "https://api.github.com/repos/FuelLabs/sway/tags", + "blobs_url": "https://api.github.com/repos/FuelLabs/sway/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/FuelLabs/sway/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/FuelLabs/sway/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/FuelLabs/sway/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/FuelLabs/sway/statuses/{sha}", + "languages_url": "https://api.github.com/repos/FuelLabs/sway/languages", + "stargazers_url": "https://api.github.com/repos/FuelLabs/sway/stargazers", + "contributors_url": "https://api.github.com/repos/FuelLabs/sway/contributors", + "subscribers_url": "https://api.github.com/repos/FuelLabs/sway/subscribers", + "subscription_url": "https://api.github.com/repos/FuelLabs/sway/subscription", + "commits_url": "https://api.github.com/repos/FuelLabs/sway/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/FuelLabs/sway/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/FuelLabs/sway/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/FuelLabs/sway/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/FuelLabs/sway/contents/{+path}", + "compare_url": "https://api.github.com/repos/FuelLabs/sway/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/FuelLabs/sway/merges", + "archive_url": "https://api.github.com/repos/FuelLabs/sway/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/FuelLabs/sway/downloads", + "issues_url": "https://api.github.com/repos/FuelLabs/sway/issues{/number}", + "pulls_url": "https://api.github.com/repos/FuelLabs/sway/pulls{/number}", + "milestones_url": "https://api.github.com/repos/FuelLabs/sway/milestones{/number}", + "notifications_url": "https://api.github.com/repos/FuelLabs/sway/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/FuelLabs/sway/labels{/name}", + "releases_url": "https://api.github.com/repos/FuelLabs/sway/releases{/id}", + "deployments_url": "https://api.github.com/repos/FuelLabs/sway/deployments", + "created_at": "2021-01-19T20:54:33Z", + "updated_at": "2025-06-10T09:33:22Z", + "pushed_at": "2025-06-10T11:21:14Z", + "git_url": "git://github.com/FuelLabs/sway.git", + "ssh_url": "git@github.com:FuelLabs/sway.git", + "clone_url": "https://github.com/FuelLabs/sway.git", + "svn_url": "https://github.com/FuelLabs/sway", + "homepage": "https://docs.fuel.network/docs/sway/", + "size": 98645, + "stargazers_count": 62241, + "watchers_count": 62241, + "language": "Rust", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "has_discussions": true, + "forks_count": 5405, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 871, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "compiler", + "fuel", + "language", + "sway" + ], + "visibility": "public", + "forks": 5405, + "open_issues": 871, + "watchers": 62241, + "default_branch": "master", + "score": 1 + }, + { + "id": 340547520, + "node_id": "MDEwOlJlcG9zaXRvcnkzNDA1NDc1MjA=", + "name": "zed", + "full_name": "zed-industries/zed", + "private": false, + "owner": { + "login": "zed-industries", + "id": 79345384, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjc5MzQ1Mzg0", + "avatar_url": "https://avatars.githubusercontent.com/u/79345384?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/zed-industries", + "html_url": "https://github.com/zed-industries", + "followers_url": "https://api.github.com/users/zed-industries/followers", + "following_url": "https://api.github.com/users/zed-industries/following{/other_user}", + "gists_url": "https://api.github.com/users/zed-industries/gists{/gist_id}", + "starred_url": "https://api.github.com/users/zed-industries/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zed-industries/subscriptions", + "organizations_url": "https://api.github.com/users/zed-industries/orgs", + "repos_url": "https://api.github.com/users/zed-industries/repos", + "events_url": "https://api.github.com/users/zed-industries/events{/privacy}", + "received_events_url": "https://api.github.com/users/zed-industries/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/zed-industries/zed", + "description": "Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.", + "fork": false, + "url": "https://api.github.com/repos/zed-industries/zed", + "forks_url": "https://api.github.com/repos/zed-industries/zed/forks", + "keys_url": "https://api.github.com/repos/zed-industries/zed/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/zed-industries/zed/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/zed-industries/zed/teams", + "hooks_url": "https://api.github.com/repos/zed-industries/zed/hooks", + "issue_events_url": "https://api.github.com/repos/zed-industries/zed/issues/events{/number}", + "events_url": "https://api.github.com/repos/zed-industries/zed/events", + "assignees_url": "https://api.github.com/repos/zed-industries/zed/assignees{/user}", + "branches_url": "https://api.github.com/repos/zed-industries/zed/branches{/branch}", + "tags_url": "https://api.github.com/repos/zed-industries/zed/tags", + "blobs_url": "https://api.github.com/repos/zed-industries/zed/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/zed-industries/zed/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/zed-industries/zed/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/zed-industries/zed/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/zed-industries/zed/statuses/{sha}", + "languages_url": "https://api.github.com/repos/zed-industries/zed/languages", + "stargazers_url": "https://api.github.com/repos/zed-industries/zed/stargazers", + "contributors_url": "https://api.github.com/repos/zed-industries/zed/contributors", + "subscribers_url": "https://api.github.com/repos/zed-industries/zed/subscribers", + "subscription_url": "https://api.github.com/repos/zed-industries/zed/subscription", + "commits_url": "https://api.github.com/repos/zed-industries/zed/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/zed-industries/zed/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/zed-industries/zed/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/zed-industries/zed/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/zed-industries/zed/contents/{+path}", + "compare_url": "https://api.github.com/repos/zed-industries/zed/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/zed-industries/zed/merges", + "archive_url": "https://api.github.com/repos/zed-industries/zed/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/zed-industries/zed/downloads", + "issues_url": "https://api.github.com/repos/zed-industries/zed/issues{/number}", + "pulls_url": "https://api.github.com/repos/zed-industries/zed/pulls{/number}", + "milestones_url": "https://api.github.com/repos/zed-industries/zed/milestones{/number}", + "notifications_url": "https://api.github.com/repos/zed-industries/zed/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/zed-industries/zed/labels{/name}", + "releases_url": "https://api.github.com/repos/zed-industries/zed/releases{/id}", + "deployments_url": "https://api.github.com/repos/zed-industries/zed/deployments", + "created_at": "2021-02-20T03:01:06Z", + "updated_at": "2025-06-10T16:00:47Z", + "pushed_at": "2025-06-10T16:00:42Z", + "git_url": "git://github.com/zed-industries/zed.git", + "ssh_url": "git@github.com:zed-industries/zed.git", + "clone_url": "https://github.com/zed-industries/zed.git", + "svn_url": "https://github.com/zed-industries/zed", + "homepage": "https://zed.dev", + "size": 212311, + "stargazers_count": 61157, + "watchers_count": 61157, + "language": "Rust", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": true, + "forks_count": 4456, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2644, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "gpui", + "rust-lang", + "text-editor", + "zed" + ], + "visibility": "public", + "forks": 4456, + "open_issues": 2644, + "watchers": 61157, + "default_branch": "main", + "score": 1 + }, + { + "id": 51980455, + "node_id": "MDEwOlJlcG9zaXRvcnk1MTk4MDQ1NQ==", + "name": "alacritty", + "full_name": "alacritty/alacritty", + "private": false, + "owner": { + "login": "alacritty", + "id": 29714349, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NzE0MzQ5", + "avatar_url": "https://avatars.githubusercontent.com/u/29714349?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alacritty", + "html_url": "https://github.com/alacritty", + "followers_url": "https://api.github.com/users/alacritty/followers", + "following_url": "https://api.github.com/users/alacritty/following{/other_user}", + "gists_url": "https://api.github.com/users/alacritty/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alacritty/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alacritty/subscriptions", + "organizations_url": "https://api.github.com/users/alacritty/orgs", + "repos_url": "https://api.github.com/users/alacritty/repos", + "events_url": "https://api.github.com/users/alacritty/events{/privacy}", + "received_events_url": "https://api.github.com/users/alacritty/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/alacritty/alacritty", + "description": "A cross-platform, OpenGL terminal emulator.", + "fork": false, + "url": "https://api.github.com/repos/alacritty/alacritty", + "forks_url": "https://api.github.com/repos/alacritty/alacritty/forks", + "keys_url": "https://api.github.com/repos/alacritty/alacritty/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/alacritty/alacritty/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/alacritty/alacritty/teams", + "hooks_url": "https://api.github.com/repos/alacritty/alacritty/hooks", + "issue_events_url": "https://api.github.com/repos/alacritty/alacritty/issues/events{/number}", + "events_url": "https://api.github.com/repos/alacritty/alacritty/events", + "assignees_url": "https://api.github.com/repos/alacritty/alacritty/assignees{/user}", + "branches_url": "https://api.github.com/repos/alacritty/alacritty/branches{/branch}", + "tags_url": "https://api.github.com/repos/alacritty/alacritty/tags", + "blobs_url": "https://api.github.com/repos/alacritty/alacritty/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/alacritty/alacritty/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/alacritty/alacritty/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/alacritty/alacritty/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/alacritty/alacritty/statuses/{sha}", + "languages_url": "https://api.github.com/repos/alacritty/alacritty/languages", + "stargazers_url": "https://api.github.com/repos/alacritty/alacritty/stargazers", + "contributors_url": "https://api.github.com/repos/alacritty/alacritty/contributors", + "subscribers_url": "https://api.github.com/repos/alacritty/alacritty/subscribers", + "subscription_url": "https://api.github.com/repos/alacritty/alacritty/subscription", + "commits_url": "https://api.github.com/repos/alacritty/alacritty/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/alacritty/alacritty/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/alacritty/alacritty/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/alacritty/alacritty/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/alacritty/alacritty/contents/{+path}", + "compare_url": "https://api.github.com/repos/alacritty/alacritty/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/alacritty/alacritty/merges", + "archive_url": "https://api.github.com/repos/alacritty/alacritty/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/alacritty/alacritty/downloads", + "issues_url": "https://api.github.com/repos/alacritty/alacritty/issues{/number}", + "pulls_url": "https://api.github.com/repos/alacritty/alacritty/pulls{/number}", + "milestones_url": "https://api.github.com/repos/alacritty/alacritty/milestones{/number}", + "notifications_url": "https://api.github.com/repos/alacritty/alacritty/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/alacritty/alacritty/labels{/name}", + "releases_url": "https://api.github.com/repos/alacritty/alacritty/releases{/id}", + "deployments_url": "https://api.github.com/repos/alacritty/alacritty/deployments", + "created_at": "2016-02-18T05:02:30Z", + "updated_at": "2025-06-10T14:59:39Z", + "pushed_at": "2025-05-31T01:29:24Z", + "git_url": "git://github.com/alacritty/alacritty.git", + "ssh_url": "git@github.com:alacritty/alacritty.git", + "clone_url": "https://github.com/alacritty/alacritty.git", + "svn_url": "https://github.com/alacritty/alacritty", + "homepage": "https://alacritty.org", + "size": 14002, + "stargazers_count": 59121, + "watchers_count": 59121, + "language": "Rust", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 3122, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 333, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "bsd", + "gpu", + "linux", + "macos", + "opengl", + "rust", + "terminal", + "terminal-emulators", + "vte", + "windows" + ], + "visibility": "public", + "forks": 3122, + "open_issues": 333, + "watchers": 59121, + "default_branch": "master", + "score": 1 + }, + { + "id": 42489829, + "node_id": "MDEwOlJlcG9zaXRvcnk0MjQ4OTgyOQ==", + "name": "rustlings", + "full_name": "rust-lang/rustlings", + "private": false, + "owner": { + "login": "rust-lang", + "id": 5430905, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjU0MzA5MDU=", + "avatar_url": "https://avatars.githubusercontent.com/u/5430905?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rust-lang", + "html_url": "https://github.com/rust-lang", + "followers_url": "https://api.github.com/users/rust-lang/followers", + "following_url": "https://api.github.com/users/rust-lang/following{/other_user}", + "gists_url": "https://api.github.com/users/rust-lang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rust-lang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rust-lang/subscriptions", + "organizations_url": "https://api.github.com/users/rust-lang/orgs", + "repos_url": "https://api.github.com/users/rust-lang/repos", + "events_url": "https://api.github.com/users/rust-lang/events{/privacy}", + "received_events_url": "https://api.github.com/users/rust-lang/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/rust-lang/rustlings", + "description": ":crab: Small exercises to get you used to reading and writing Rust code!", + "fork": false, + "url": "https://api.github.com/repos/rust-lang/rustlings", + "forks_url": "https://api.github.com/repos/rust-lang/rustlings/forks", + "keys_url": "https://api.github.com/repos/rust-lang/rustlings/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/rust-lang/rustlings/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/rust-lang/rustlings/teams", + "hooks_url": "https://api.github.com/repos/rust-lang/rustlings/hooks", + "issue_events_url": "https://api.github.com/repos/rust-lang/rustlings/issues/events{/number}", + "events_url": "https://api.github.com/repos/rust-lang/rustlings/events", + "assignees_url": "https://api.github.com/repos/rust-lang/rustlings/assignees{/user}", + "branches_url": "https://api.github.com/repos/rust-lang/rustlings/branches{/branch}", + "tags_url": "https://api.github.com/repos/rust-lang/rustlings/tags", + "blobs_url": "https://api.github.com/repos/rust-lang/rustlings/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/rust-lang/rustlings/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/rust-lang/rustlings/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/rust-lang/rustlings/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/rust-lang/rustlings/statuses/{sha}", + "languages_url": "https://api.github.com/repos/rust-lang/rustlings/languages", + "stargazers_url": "https://api.github.com/repos/rust-lang/rustlings/stargazers", + "contributors_url": "https://api.github.com/repos/rust-lang/rustlings/contributors", + "subscribers_url": "https://api.github.com/repos/rust-lang/rustlings/subscribers", + "subscription_url": "https://api.github.com/repos/rust-lang/rustlings/subscription", + "commits_url": "https://api.github.com/repos/rust-lang/rustlings/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/rust-lang/rustlings/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/rust-lang/rustlings/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/rust-lang/rustlings/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/rust-lang/rustlings/contents/{+path}", + "compare_url": "https://api.github.com/repos/rust-lang/rustlings/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/rust-lang/rustlings/merges", + "archive_url": "https://api.github.com/repos/rust-lang/rustlings/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/rust-lang/rustlings/downloads", + "issues_url": "https://api.github.com/repos/rust-lang/rustlings/issues{/number}", + "pulls_url": "https://api.github.com/repos/rust-lang/rustlings/pulls{/number}", + "milestones_url": "https://api.github.com/repos/rust-lang/rustlings/milestones{/number}", + "notifications_url": "https://api.github.com/repos/rust-lang/rustlings/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/rust-lang/rustlings/labels{/name}", + "releases_url": "https://api.github.com/repos/rust-lang/rustlings/releases{/id}", + "deployments_url": "https://api.github.com/repos/rust-lang/rustlings/deployments", + "created_at": "2015-09-15T02:25:18Z", + "updated_at": "2025-06-10T13:54:02Z", + "pushed_at": "2025-06-03T08:32:01Z", + "git_url": "git://github.com/rust-lang/rustlings.git", + "ssh_url": "git@github.com:rust-lang/rustlings.git", + "clone_url": "https://github.com/rust-lang/rustlings.git", + "svn_url": "https://github.com/rust-lang/rustlings", + "homepage": "https://rustlings.rust-lang.org", + "size": 4195, + "stargazers_count": 58724, + "watchers_count": 58724, + "language": "Rust", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "has_discussions": true, + "forks_count": 10639, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 66, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "beginner-friendly", + "exercises", + "rust", + "rustlings" + ], + "visibility": "public", + "forks": 10639, + "open_issues": 66, + "watchers": 58724, + "default_branch": "main", + "score": 1 + }, + { + "id": 290882787, + "node_id": "MDEwOlJlcG9zaXRvcnkyOTA4ODI3ODc=", + "name": "fuel-core", + "full_name": "FuelLabs/fuel-core", + "private": false, + "owner": { + "login": "FuelLabs", + "id": 55993183, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjU1OTkzMTgz", + "avatar_url": "https://avatars.githubusercontent.com/u/55993183?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/FuelLabs", + "html_url": "https://github.com/FuelLabs", + "followers_url": "https://api.github.com/users/FuelLabs/followers", + "following_url": "https://api.github.com/users/FuelLabs/following{/other_user}", + "gists_url": "https://api.github.com/users/FuelLabs/gists{/gist_id}", + "starred_url": "https://api.github.com/users/FuelLabs/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/FuelLabs/subscriptions", + "organizations_url": "https://api.github.com/users/FuelLabs/orgs", + "repos_url": "https://api.github.com/users/FuelLabs/repos", + "events_url": "https://api.github.com/users/FuelLabs/events{/privacy}", + "received_events_url": "https://api.github.com/users/FuelLabs/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/FuelLabs/fuel-core", + "description": "Rust full node implementation of the Fuel v2 protocol.", + "fork": false, + "url": "https://api.github.com/repos/FuelLabs/fuel-core", + "forks_url": "https://api.github.com/repos/FuelLabs/fuel-core/forks", + "keys_url": "https://api.github.com/repos/FuelLabs/fuel-core/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/FuelLabs/fuel-core/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/FuelLabs/fuel-core/teams", + "hooks_url": "https://api.github.com/repos/FuelLabs/fuel-core/hooks", + "issue_events_url": "https://api.github.com/repos/FuelLabs/fuel-core/issues/events{/number}", + "events_url": "https://api.github.com/repos/FuelLabs/fuel-core/events", + "assignees_url": "https://api.github.com/repos/FuelLabs/fuel-core/assignees{/user}", + "branches_url": "https://api.github.com/repos/FuelLabs/fuel-core/branches{/branch}", + "tags_url": "https://api.github.com/repos/FuelLabs/fuel-core/tags", + "blobs_url": "https://api.github.com/repos/FuelLabs/fuel-core/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/FuelLabs/fuel-core/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/FuelLabs/fuel-core/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/FuelLabs/fuel-core/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/FuelLabs/fuel-core/statuses/{sha}", + "languages_url": "https://api.github.com/repos/FuelLabs/fuel-core/languages", + "stargazers_url": "https://api.github.com/repos/FuelLabs/fuel-core/stargazers", + "contributors_url": "https://api.github.com/repos/FuelLabs/fuel-core/contributors", + "subscribers_url": "https://api.github.com/repos/FuelLabs/fuel-core/subscribers", + "subscription_url": "https://api.github.com/repos/FuelLabs/fuel-core/subscription", + "commits_url": "https://api.github.com/repos/FuelLabs/fuel-core/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/FuelLabs/fuel-core/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/FuelLabs/fuel-core/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/FuelLabs/fuel-core/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/FuelLabs/fuel-core/contents/{+path}", + "compare_url": "https://api.github.com/repos/FuelLabs/fuel-core/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/FuelLabs/fuel-core/merges", + "archive_url": "https://api.github.com/repos/FuelLabs/fuel-core/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/FuelLabs/fuel-core/downloads", + "issues_url": "https://api.github.com/repos/FuelLabs/fuel-core/issues{/number}", + "pulls_url": "https://api.github.com/repos/FuelLabs/fuel-core/pulls{/number}", + "milestones_url": "https://api.github.com/repos/FuelLabs/fuel-core/milestones{/number}", + "notifications_url": "https://api.github.com/repos/FuelLabs/fuel-core/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/FuelLabs/fuel-core/labels{/name}", + "releases_url": "https://api.github.com/repos/FuelLabs/fuel-core/releases{/id}", + "deployments_url": "https://api.github.com/repos/FuelLabs/fuel-core/deployments", + "created_at": "2020-08-27T21:12:14Z", + "updated_at": "2025-06-10T13:15:22Z", + "pushed_at": "2025-06-10T13:15:11Z", + "git_url": "git://github.com/FuelLabs/fuel-core.git", + "ssh_url": "git@github.com:FuelLabs/fuel-core.git", + "clone_url": "https://github.com/FuelLabs/fuel-core.git", + "svn_url": "https://github.com/FuelLabs/fuel-core", + "homepage": "", + "size": 906994, + "stargazers_count": 57634, + "watchers_count": 57634, + "language": "Rust", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "has_discussions": true, + "forks_count": 2852, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 175, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "blockchain", + "fuel" + ], + "visibility": "public", + "forks": 2852, + "open_issues": 175, + "watchers": 57634, + "default_branch": "master", + "score": 1 + } + ] +} \ No newline at end of file diff --git a/src/app.rs b/src/app.rs index fa63053..a3967d1 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1,11 +1,14 @@ +use crate::db::github::{GithubDb, Repository}; + /// We derive Deserialize/Serialize so we can persist app state on shutdown. #[derive(serde::Deserialize, serde::Serialize)] #[serde(default)] // if we add new fields, give them default values when deserializing old state pub struct TemplateApp { // Example stuff: label: String, - - #[serde(skip)] // This how you opt-out of serialization of a field + #[serde(skip)] + db: GithubDb, + #[serde(skip)] value: f32, } @@ -15,6 +18,7 @@ impl Default for TemplateApp { // Example stuff: label: "Hello World!".to_owned(), value: 2.7, + db: GithubDb::new(), } } } @@ -22,16 +26,24 @@ impl Default for TemplateApp { impl TemplateApp { /// Called once before the first frame. pub fn new(cc: &eframe::CreationContext<'_>) -> Self { - // This is also where you can customize the look and feel of egui using - // `cc.egui_ctx.set_visuals` and `cc.egui_ctx.set_fonts`. - - // Load previous app state (if any). - // Note that you must enable the `persistence` feature for this to work. - if let Some(storage) = cc.storage { + let app: TemplateApp = if let Some(storage) = cc.storage { return eframe::get_value(storage, eframe::APP_KEY).unwrap_or_default(); - } + } else { + Default::default() + }; + app + } - Default::default() + fn filter_repos<'a>(&self, query: &str) -> Vec { + let repos = self.db.get_repos(); + let repos = repos.lock().unwrap(); + repos.iter() + .filter(|repo| { + repo.full_name.as_ref().map_or(false, |name| name.to_lowercase().contains(&query.to_lowercase())) || + repo.description.as_ref().map_or(false, |desc| desc.to_lowercase().contains(&query.to_lowercase())) + }) + .cloned() + .collect() } } @@ -43,67 +55,59 @@ impl eframe::App for TemplateApp { /// Called each time the UI needs repainting, which may be many times per second. fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { - // Put your widgets into a `SidePanel`, `TopBottomPanel`, `CentralPanel`, `Window` or `Area`. - // For inspiration and more examples, go to https://emilk.github.io/egui - - egui::TopBottomPanel::top("top_panel").show(ctx, |ui| { - // The top panel is often a good place for a menu bar: + // Use a field for search instead of static mut + if !self.label.is_empty() && self.label != "Hello World!" { + let filtered = self.filter_repos(&self.label); + egui::SidePanel::left("side_panel").show(ctx, |ui| { + ui.heading("Repository Sync & Search"); + if ui.button("Sync").clicked() { + #[cfg(target_arch = "wasm32")] + self.db.sync_and_store(); + #[cfg(not(target_arch = "wasm32"))] + self.db.fetch_repositories(); + } + ui.separator(); + ui.label("Search:"); + ui.text_edit_singleline(&mut self.label); + ui.separator(); + ui.label(format!("Results: {}", filtered.len())); + }); - egui::menu::bar(ui, |ui| { - // NOTE: no File->Quit on web pages! - let is_web = cfg!(target_arch = "wasm32"); - if !is_web { - ui.menu_button("File", |ui| { - if ui.button("Quit").clicked() { - ctx.send_viewport_cmd(egui::ViewportCommand::Close); - } + egui::CentralPanel::default().show(ctx, |ui| { + ui.heading("Filtered Repositories"); + for repo in &filtered { + let name = repo.full_name.as_deref().unwrap_or(""); + let desc = repo.description.as_deref().unwrap_or(""); + let stars = repo.stargazers_count.unwrap_or(0); + ui.horizontal(|ui| { + ui.label(format!("⭐ {}", stars)); + ui.hyperlink_to(name, repo.html_url.as_deref().unwrap_or("#")); }); - ui.add_space(16.0); + if !desc.is_empty() { + ui.label(desc); + } + ui.separator(); } - - egui::widgets::global_theme_preference_buttons(ui); }); - }); - - egui::CentralPanel::default().show(ctx, |ui| { - // The central panel the region left after adding TopPanel's and SidePanel's - ui.heading("eframe template"); - - ui.horizontal(|ui| { - ui.label("Write something: "); + } else { + egui::SidePanel::left("side_panel").show(ctx, |ui| { + ui.heading("Repository Sync & Search"); + if ui.button("Sync").clicked() { + #[cfg(target_arch = "wasm32")] + self.db.sync_and_store(); + #[cfg(not(target_arch = "wasm32"))] + self.db.fetch_repositories(); + } + ui.separator(); + ui.label("Search:"); ui.text_edit_singleline(&mut self.label); + ui.separator(); + ui.label("Results: 0"); }); - - ui.add(egui::Slider::new(&mut self.value, 0.0..=10.0).text("value")); - if ui.button("Increment").clicked() { - self.value += 1.0; - } - - ui.separator(); - - ui.add(egui::github_link_file!( - "https://github.com/emilk/eframe_template/blob/main/", - "Source code." - )); - - ui.with_layout(egui::Layout::bottom_up(egui::Align::LEFT), |ui| { - powered_by_egui_and_eframe(ui); - egui::warn_if_debug_build(ui); + egui::CentralPanel::default().show(ctx, |ui| { + ui.heading("Filtered Repositories"); + ui.label("No results. Enter a search term."); }); - }); + } } } - -fn powered_by_egui_and_eframe(ui: &mut egui::Ui) { - ui.horizontal(|ui| { - ui.spacing_mut().item_spacing.x = 0.0; - ui.label("Powered by "); - ui.hyperlink_to("egui", "https://github.com/emilk/egui"); - ui.label(" and "); - ui.hyperlink_to( - "eframe", - "https://github.com/emilk/egui/tree/master/crates/eframe", - ); - ui.label("."); - }); -} diff --git a/src/db/github.rs b/src/db/github.rs new file mode 100644 index 0000000..f106f91 --- /dev/null +++ b/src/db/github.rs @@ -0,0 +1,332 @@ +use ehttp::{self}; +#[cfg(target_arch = "wasm32")] +use ehttp::{Mode}; +use idb::{ObjectStoreParams, Factory, DatabaseEvent}; +use wasm_bindgen_futures::spawn_local; +use wasm_bindgen::JsValue; +use serde::{Deserialize, Serialize}; +use std::sync::{Arc, Mutex}; + +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct Owner { + pub site_admin: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct License { + pub node_id: Option, + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct Repository { + pub id: Option, + pub node_id: Option, + pub name: Option, + pub full_name: Option, + pub private: Option, + pub owner: Option, + pub html_url: Option, + pub description: Option, + pub fork: Option, + pub url: Option, + pub forks_url: Option, + pub keys_url: Option, + pub collaborators_url: Option, + pub teams_url: Option, + pub hooks_url: Option, + pub issue_events_url: Option, + pub events_url: Option, + pub assignees_url: Option, + pub branches_url: Option, + pub tags_url: Option, + pub blobs_url: Option, + pub git_tags_url: Option, + pub git_refs_url: Option, + pub trees_url: Option, + pub statuses_url: Option, + pub languages_url: Option, + pub stargazers_url: Option, + pub contributors_url: Option, + pub subscribers_url: Option, + pub subscription_url: Option, + pub commits_url: Option, + pub git_commits_url: Option, + pub comments_url: Option, + pub issue_comment_url: Option, + pub contents_url: Option, + pub compare_url: Option, + pub merges_url: Option, + pub archive_url: Option, + pub downloads_url: Option, + pub issues_url: Option, + pub pulls_url: Option, + pub milestones_url: Option, + pub notifications_url: Option, + pub labels_url: Option, + pub releases_url: Option, + pub deployments_url: Option, + pub created_at: Option, + pub updated_at: Option, + pub pushed_at: Option, + pub git_url: Option, + pub ssh_url: Option, + pub clone_url: Option, + pub svn_url: Option, + pub homepage: Option, + pub size: Option, + pub stargazers_count: Option, + pub watchers_count: Option, + pub language: Option, + pub has_issues: Option, + pub has_projects: Option, + pub has_downloads: Option, + pub has_wiki: Option, + pub has_pages: Option, + pub has_discussions: Option, + pub forks_count: Option, + pub mirror_url: Option, + pub archived: Option, + pub disabled: Option, + pub open_issues_count: Option, + pub license: Option, + pub allow_forking: Option, + pub is_template: Option, + pub web_commit_signoff_required: Option, + pub topics: Option>, + pub visibility: Option, + pub forks: Option, + pub open_issues: Option, + pub watchers: Option, + pub default_branch: Option, + pub score: Option, +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct SearchResponse { + pub total_count: Option, + pub incomplete_results: Option, + pub items: Vec, +} + +pub struct GithubDb { + repos: Arc>>, + error: Arc>>, + is_loading: Arc>, +} + +impl GithubDb { + pub fn new() -> Self { + Self { + repos: Arc::new(Mutex::new(Vec::new())), + error: Arc::new(Mutex::new(None)), + is_loading: Arc::new(Mutex::new(false)), + } + } + + pub fn get_repos(&self) -> Arc>> { + Arc::clone(&self.repos) + } + + pub fn get_error(&self) -> Arc>> { + Arc::clone(&self.error) + } + + pub fn get_is_loading(&self) -> Arc> { + Arc::clone(&self.is_loading) + } + + pub fn sync_and_store(&self) { + let repos = Arc::clone(&self.repos); + let error = Arc::clone(&self.error); + let is_loading = Arc::clone(&self.is_loading); + *is_loading.lock().unwrap() = true; + let request = ehttp::Request { + method: String::from("GET"), + url: String::from("https://api.github.com/search/repositories?q=language:rust&sort=stars&order=desc&per_page=100"), + body: vec![], + headers: ehttp::Headers::new(&[("User-Agent", "rust-egui-ehttp-app")]), + #[cfg(target_arch = "wasm32")] + mode: Mode::Cors, + }; + + ehttp::fetch(request, move |result: ehttp::Result| { + *is_loading.lock().unwrap() = false; + match result { + Ok(response) => { + if response.ok { + match response.json::() { + Ok(search_response) => { + + // Fix use-after-move error: clone filtered_repos for both uses + let filtered_repos = search_response + .items + .into_iter() + .filter(|repo| repo.license.is_some()) + .collect::>(); + let filtered_repos_for_mutex = filtered_repos.clone(); + let filtered_repos_for_async = filtered_repos_for_mutex.clone(); + *repos.lock().unwrap() = filtered_repos_for_mutex; + spawn_local(async move { + if let Err(e) = Self::store_repos_in_indexeddb(&filtered_repos_for_async).await { + *error.lock().unwrap() = Some(format!("Failed to store in IndexedDB: {}", e)); + } + }); + } + Err(e) => { + *error.lock().unwrap() = Some(format!("Failed to parse JSON: {}", e)); + } + } + } else { + *error.lock().unwrap() = Some(format!("HTTP Error: {} - {}", response.status, response.status_text)); + } + } + Err(e) => { + *error.lock().unwrap() = Some(format!("Request failed: {}", e)); + } + } + }); + } + + // Load from IndexedDB + pub fn load_from_indexeddb(&self) { + let repos = Arc::clone(&self.repos); + let error = Arc::clone(&self.error); + spawn_local(async move { + match Self::read_from_indexeddb().await { + Ok(cached_repos) => { + *repos.lock().unwrap() = cached_repos; + } + Err(e) => { + *error.lock().unwrap() = Some(format!("Failed to load from IndexedDB: {}", e)); + } + } + }); + } + + pub fn fetch_repositories(&self) { + if *self.is_loading.lock().unwrap() { + return; + } + *self.is_loading.lock().unwrap() = true; + let repos = Arc::clone(&self.repos); + let error = Arc::clone(&self.error); + let is_loading = Arc::clone(&self.is_loading); + + // Build request, with mode only on wasm32 + let request = { + ehttp::Request { + method: String::from("GET"), + url: String::from("https://api.github.com/search/repositories?q=language:rust&sort=stars&order=desc&per_page=100"), + body: vec![], + headers: ehttp::Headers::new(&[("User-Agent", "rust-egui-ehttp-app")]), + #[cfg(target_arch = "wasm32")] + mode: Mode::Cors, + } + }; + + ehttp::fetch(request, move |result: ehttp::Result| { + *is_loading.lock().unwrap() = false; + match result { + Ok(response) => { + if response.ok { + match response.json::() { + Ok(search_response) => { + let filtered_repos = search_response + .items + .into_iter() + .filter(|repo| repo.license.is_some()) + .collect::>(); + + + *repos.lock().unwrap() = filtered_repos.clone(); + + // Store in IndexedDB asynchronously (WASM only) + { + let filtered_repos_for_async = filtered_repos.clone(); + spawn_local(async move { + if let Err(e) = Self::store_repos_in_indexeddb(&filtered_repos_for_async).await { + *error.lock().unwrap() = Some(format!("Failed to store in IndexedDB: {}", e)); + } + }); + } + } + Err(e) => { + *error.lock().unwrap() = Some(format!("Failed to parse JSON: {}", e)); + } + } + } else { + *error.lock().unwrap() = Some(format!("HTTP Error: {} - {}", response.status, response.status_text)); + } + } + Err(e) => { + *error.lock().unwrap() = Some(format!("Request failed: {}", e)); + } + } + }); + } + + // IndexedDB helpers + async fn read_from_indexeddb() -> Result, String> { + let factory = Factory::new().map_err(|e| format!("Failed to create IndexedDB factory: {:?}", e))?; + let db = factory + .open("RustProjectsDB", None) + .map_err(|e| format!("Failed to open database: {:?}", e))? + .await + .map_err(|e| format!("Failed to open database: {:?}", e))?; + let tx = db + .transaction(&["repositories"], idb::TransactionMode::ReadOnly) + .map_err(|e| format!("Failed to create transaction: {:?}", e))?; + let store = tx + .object_store("repositories") + .map_err(|e| format!("Failed to access object store: {:?}", e))?; + let value = store + .get(JsValue::from_str("latest")) + .map_err(|e| format!("Failed to get data: {:?}", e))? + .await + .map_err(|e| format!("Failed to get data: {:?}", e))?; + if let Some(value) = value { + let json = serde_wasm_bindgen::from_value::(value) + .map_err(|e| format!("Failed to deserialize JSON: {:?}", e))?; + let search_response = serde_json::from_value::(json) + .map_err(|e| format!("Failed to parse search response: {:?}", e))?; + Ok(search_response.items.into_iter().filter(|repo| repo.license.is_some()).collect()) + } else { + Ok(vec![]) + } + } + + async fn store_repos_in_indexeddb(repos: &Vec) -> Result<(), String> { + let factory = Factory::new().map_err(|e| format!("Failed to create IndexedDB factory: {:?}", e))?; + let mut open_request = factory + .open("RustProjectsDB", Some(1)) + .map_err(|e| format!("Failed to open database: {:?}", e))?; + open_request.on_upgrade_needed(|event| { + let db = event.database().expect("Failed to get database"); + let store_params = ObjectStoreParams::new(); + db.create_object_store("repositories", store_params) + .expect("Failed to create object store"); + }); + let db = open_request + .await + .map_err(|e| format!("Failed to open database: {:?}", e))?; + let tx = db + .transaction(&["repositories"], idb::TransactionMode::ReadWrite) + .map_err(|e| format!("Failed to create transaction: {:?}", e))?; + let store = tx + .object_store("repositories") + .map_err(|e| format!("Failed to access object store: {:?}", e))?; + store + .put( + &serde_wasm_bindgen::to_value(&SearchResponse { + total_count: Some(repos.len() as u64), + incomplete_results: Some(false), + items: repos.clone(), + }).map_err(|e| format!("Failed to convert to JsValue: {:?}", e))?, + Some(&JsValue::from_str("latest")), + ) + .map_err(|e| format!("Failed to store data: {:?}", e))?; + tx.await.map_err(|e| format!("Failed to complete transaction: {:?}", e))?; + Ok(()) + } +} \ No newline at end of file diff --git a/src/db/mod.rs b/src/db/mod.rs new file mode 100644 index 0000000..5fefcea --- /dev/null +++ b/src/db/mod.rs @@ -0,0 +1,2 @@ +pub mod github; +pub use github::*; \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index fbae77a..0a4b607 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,6 @@ #![warn(clippy::all, rust_2018_idioms)] mod app; +mod db; pub use app::TemplateApp; +pub use db::*; \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 029bf61..9b7c2ad 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,30 +1,6 @@ #![warn(clippy::all, rust_2018_idioms)] #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release -// When compiling natively: -#[cfg(not(target_arch = "wasm32"))] -fn main() -> eframe::Result { - env_logger::init(); // Log to stderr (if you run with `RUST_LOG=debug`). - - let native_options = eframe::NativeOptions { - viewport: egui::ViewportBuilder::default() - .with_inner_size([400.0, 300.0]) - .with_min_inner_size([300.0, 220.0]) - .with_icon( - // NOTE: Adding an icon is optional - eframe::icon_data::from_png_bytes(&include_bytes!("../assets/icon-256.png")[..]) - .expect("Failed to load icon"), - ), - ..Default::default() - }; - eframe::run_native( - "eframe template", - native_options, - Box::new(|cc| Ok(Box::new(eframe_template::TemplateApp::new(cc)))), - ) -} - -// When compiling to web using trunk: #[cfg(target_arch = "wasm32")] fn main() { use eframe::wasm_bindgen::JsCast as _; @@ -50,7 +26,7 @@ fn main() { .start( canvas, web_options, - Box::new(|cc| Ok(Box::new(eframe_template::TemplateApp::new(cc)))), + Box::new(|cc| Ok(Box::new(waffle_search::TemplateApp::new(cc)))), ) .await;