Cross-platform Window library in Rust for Tauri. [WIP]

Related tags

Utilities tao
Overview

tao

Chat Server devto devto https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg support

Cross-platform application window creation library in Rust that supports all major platforms like Windows, macOS, Linux, iOS and Android. Built for you, maintained for Tauri.

Cargo Features

Tao provides the following features, which can be enabled in your Cargo.toml file:

  • serde: Enables serialization/deserialization of certain types with Serde.
  • menu: Enables system tray and more menu item variants on Linux. This flag is enabled by default. You can still create those types if you disable it. They just don't create the actual objects. We set this flag because some implementations require more installed packages. Disable this if you don't want to install those additional packages.

Platform-specific notes

Android

This library makes use of the ndk-rs crates, refer to that repo for more documentation.

Running on an Android device needs a dynamic system library, add this to Cargo.toml:

[[example]]
name = "request_redraw_threaded"
crate-type = ["cdylib"]

And add this to the example file to add the native activity glue:

#[cfg_attr(target_os = "android", ndk_glue::main(backtrace = "on"))]
fn main() {
    ...
}

And run the application with cargo apk run --example request_redraw_threaded

Linux

Gtk and its related libraries are used to build the support of Linux. Be sure to install following packages before building:

Arch Linux / Manjaro:

sudo pacman -S gtk3 gtksourceview3 libappindicator-gtk3

Debian / Ubuntu:

sudo apt install libgtk-3-dev libgtksourceview-3.0-dev libappindicator3-dev

MacOS

To ensure compatibility with older MacOS systems, tao links to CGDisplayCreateUUIDFromDisplayID through the CoreGraphics framework. However, under certain setups this function is only available to be linked through the newer ColorSync framework. So, tao provides the TAO_LINK_COLORSYNC environment variable which can be set to 1 or true while compiling to enable linking via ColorSync.

Acknowledgement

We would like to thank the authors and contributors to winit for their groundbreaking work upon which this crate is not only based, but also leans heavily upon. Thankyou!!!

Comments
  • On macOS, fix resize event emits before fullscreen actually exit

    On macOS, fix resize event emits before fullscreen actually exit

    What kind of change does this PR introduce?

    • [x] Bugfix
    • [ ] Feature
    • [ ] Docs
    • [ ] Code style update
    • [ ] Refactor
    • [ ] Build-related changes
    • [ ] Other, please describe:

    Does this PR introduce a breaking change?

    • [ ] Yes
    • [x] No

    Checklist

    • [x] This PR will resolve https://github.com/tauri-apps/tauri/issues/4519
    • [x] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
    • [x] I have added a convincing reason for adding this feature, if necessary
    • [x] It can be built on all targets and pass CI/CD.

    Other information

    opened by wusyong 0
  • [bug] Main window collapses in on itself when being forced to another monitor

    [bug] Main window collapses in on itself when being forced to another monitor

    Describe the bug

    There seem to be specific cases where either the size of the main window collapses, or its content disappears, when it is forced onto another monitor (e.g. because of the monitor its on being disconnected). The window turns transparent, small, and without a titlebar.

    Example of the main window after this bug occurs: image

    Reproduction

    It's a bit finnicky to reproduce. I've only tried doing so on Windows 11.

    1. Create a new vanilla-js tauri app
    2. Make sure two monitors are both connected in extended mode. (If you connect the second monitor after the app has started, I can't seem to get it to trigger)
    3. Launch with tauri dev. Window is now on monitor 1. 1mNI0CHki4
    4. Move the main window to monitor 2. Just move it by dragging it over, window snapping seems to prevent the bug from occurring. Main window is now on monitor 2. 7EJTSUrZoI
    5. Put focus on a window back on monitor 1. If the main window is still focused before the next step, the bug does not seem to occur.
    6. Disconnect monitor 2. The main window will be moved and minimized on monitor 1.
    7. "Un-minimize" the main window. The window should now show in the unwanted state. gK1jvsgW1T

    Expected behavior

    I would expect the window to behave normally: It should keep showing its content like before the monitor was disconnected.

    Platform and versions

    Environment
      › OS: Windows 10.0.22000 X64
      › Webview2: 108.0.1462.54
      › MSVC:
          - Visual Studio Build Tools 2019
          - Visual Studio Community 2022
      › Node.js: 16.14.0
      › npm: 8.3.1
      › pnpm: Not installed!
      › yarn: 1.22.17
      › rustup: 1.25.1
      › rustc: 1.64.0
      › cargo: 1.64.0
      › Rust toolchain: stable-x86_64-pc-windows-msvc
    
    Packages
      › @tauri-apps/cli [NPM]: 1.2.2
      › @tauri-apps/api [NPM]: 1.2.0
      › tauri [RUST]: 1.2.2,
      › tauri-build [RUST]: 1.2.1,
      › tao [RUST]: 0.15.8,
      › wry [RUST]: 0.23.4,
    
    App
      › build-type: bundle
      › CSP: unset
      › distDir: ../dist
      › devPath: ../dist
    
    App directory structure
      ├─ dist
      ├─ node_modules
      └─ src-tauri
    

    Stack trace

    N/A
    

    Additional context

    No response

    type: bug status: needs triage 
    opened by Raphiiko 0
  • Publish New Versions

    Publish New Versions

    Version Updates

    Merging this PR will release new versions of the following packages based on your change files.

    tao

    [0.15.9]

    • On Linux, Fix mnemonics for submenus.
      • 77569c89 fix(linux): fix mnemonics for submenus (#650) on 2022-12-20
    • On iOS, add Sync trait to EventLoopProxy when T has Send trait.
      • 651137ce On iOS, add Sync trait on EventLoopProxy when T has Send trait (#658) on 2023-01-04
    version updates 
    opened by github-actions[bot] 0
  • [bug][MacOS] Event Loop hard loops when using Right Mouse Button on system tray

    [bug][MacOS] Event Loop hard loops when using Right Mouse Button on system tray

    I've tested this under MacOS 12 and 13, and the problem occurs on both. It's not present in Windows or Linux.

    This bug occurs with the system tray example, run via cargo run --features tray --example system_tray.

    If you Right Click on the icon created by tao, and select 'Quit' the event loop will hard loop (non-stop event triggering while the control_flow is in an 'Exit' state) until you Ctrl+C the program or, if you haven't yet dropped it, interact with the icon again.

    I've done a bit of digging, but I'm not entirely sure what causes it, nor have I been able to find a workaround.

    type: bug platform: macOS status: needs triage 
    opened by FrostyCoolSlug 0
  • Use the color-scheme XDG portal on Linux for checking if the theme should be light/dark

    Use the color-scheme XDG portal on Linux for checking if the theme should be light/dark

    Currently as I understand it TAO checks the current GTK theme to see if it contains "dark" in the name, however now there is a way to ask the desktop environment using XDG portals and D-Bus. The protocol was added here, and GNOME has provided documentation on how to use it here (specifically see the "Other" section, which has example code written using C, SDL and GDBus/GIO, while the other sections assume libadwaita or libhandy is used).

    The advantage of this method is that starting in GNOME 42 and elementaryOS 6 there is a global light/dark theme selector in their settings apps, which does not change the selected GTK theme, so only apps that check the portal setting will be able to follow that global light/dark preference. KDE Plasma also has such a light/dark setting, although ultimately the reported value from the portal is calculated using the selected colour scheme.

    Also, using the portal to check the light/dark preference also means that apps will be able to respond immediately to the user switching between light and dark modes, while with the current method changing the GTK theme requires a restart of the apps.

    platform: Linux type: feature request priority: low 
    opened by X-m7 0
Releases(tao-v0.15.8)
  • tao-v0.15.8(Dec 16, 2022)

    Updating crates.io index

    Cargo Audit

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 473 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (187 crate dependencies)
    

    [0.15.8]

    • Add with_cursor_moved Unix extension trait method.
      • 8c6b2d05 Add with_cursor_moved unix extension method (#644) on 2022-12-14

    Cargo Publish

    `\`\`
    Updating crates.io index
       Packaging tao v0.15.8 (/home/runner/work/tao/tao)
       Uploading tao v0.15.8 (/home/runner/work/tao/tao)
    
    Source code(tar.gz)
    Source code(zip)
  • tao-v0.15.7(Dec 10, 2022)

    Updating crates.io index

    Cargo Audit

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 473 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (187 crate dependencies)
    

    [0.15.7]

    • On Linux, fix menu item mnemonics.
    • On Windows, retain WS_MAXIMIZE window style when unminimizing a maximized window.
      • ca844a2e fix(Windows): retain WS_MAXIMIZE when unminimizing a maximized window, closes #622 (#638) on 2022-12-04
      • e623efdc publish new versions (#639) on 2022-12-10
      • bdce0a4c Revert "publish new versions (#639)" on 2022-12-10
    • On macOS, strip menu mnemonics for consistency with other platforms.

    Cargo Publish

    `\`\`
    Updating crates.io index
       Packaging tao v0.15.7 (/home/runner/work/tao/tao)
       Uploading tao v0.15.7 (/home/runner/work/tao/tao)
    
    Source code(tar.gz)
    Source code(zip)
  • tao-v0.15.6(Nov 21, 2022)

    Updating crates.io index

    Cargo Audit

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 469 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (188 crate dependencies)
    

    [0.15.6]

    • Revert nextResponder call because this will bring key beep sound regression. We'll call the key equivalent in wry instead.
      • a59b69b2 On macOS, revert nextResponder calls (#628) on 2022-11-21

    Cargo Publish

    `\`\`
    Updating crates.io index
       Packaging tao v0.15.6 (/home/runner/work/tao/tao)
       Uploading tao v0.15.6 (/home/runner/work/tao/tao)
    
    Source code(tar.gz)
    Source code(zip)
  • tao-v0.15.5(Nov 20, 2022)

    Updating crates.io index

    Cargo Audit

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 469 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (188 crate dependencies)
    

    [0.15.5]

    • Change WebviewAttributes::focused default to true.
      • ece3e8f6 fix: default focused to true on 2022-11-20
    • On Linux, wake the main context in EventLoopProxy::send_event().
      • b7b5f04d Gtk: wake the main context in EventLoopProxy::send_event(), closes #625 (#626) on 2022-11-16

    Cargo Publish

    `\`\`
    Updating crates.io index
       Packaging tao v0.15.5 (/home/runner/work/tao/tao)
       Uploading tao v0.15.5 (/home/runner/work/tao/tao)
    
    Source code(tar.gz)
    Source code(zip)
  • tao-v0.15.4(Nov 16, 2022)

    Updating crates.io index

    Cargo Audit

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 469 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (187 crate dependencies)
    

    [0.15.4]

    • On macOS, call next responder in view's keyDown and doCommandbySelector.
      • 516e5fcd On macOS, remove doCommandBySelector in view (#620) on 2022-11-09
      • e9d6dadb Publish New Versions (#621) on 2022-11-09
      • 045b768e On macOS, call next responder in view's keyDown and doCommandbySelector (#623) on 2022-11-14

    Cargo Publish

    `\`\`
    Updating crates.io index
       Packaging tao v0.15.4 (/home/runner/work/tao/tao)
       Uploading tao v0.15.4 (/home/runner/work/tao/tao)
    
    Source code(tar.gz)
    Source code(zip)
  • tao-v0.15.3(Nov 9, 2022)

    Updating crates.io index

    Cargo Audit

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 469 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (187 crate dependencies)
    

    [0.15.3]

    • On macOS, remove doCommandBySelector in view since this will block the key event to responder chain.
      • 516e5fcd On macOS, remove doCommandBySelector in view (#620) on 2022-11-09

    Cargo Publish

    `\`\`
    Updating crates.io index
       Packaging tao v0.15.3 (/home/runner/work/tao/tao)
       Uploading tao v0.15.3 (/home/runner/work/tao/tao)
    
    Source code(tar.gz)
    Source code(zip)
  • tao-v0.15.2(Nov 8, 2022)

    Updating crates.io index

    Cargo Audit

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 469 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (187 crate dependencies)
    

    [0.15.2]

    • On Windows, fix compliation regression introduced in 0.15.1 when tray feature is active
      • 081664dc fix(Windows): fix build regression when tray feature is used (#618) on 2022-11-09

    Cargo Publish

    `\`\`
    Updating crates.io index
       Packaging tao v0.15.2 (/home/runner/work/tao/tao)
       Uploading tao v0.15.2 (/home/runner/work/tao/tao)
    
    Source code(tar.gz)
    Source code(zip)
  • tao-v0.15.1(Nov 8, 2022)

    Updating crates.io index

    Cargo Audit

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 469 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (187 crate dependencies)
    

    [0.15.1]

    • On Windows, fix window always visible initially.
      • ae06c3e2 fix(Windows): fix windows always visible initially on 2022-11-08

    Cargo Publish

    `\`\`
    Updating crates.io index
       Packaging tao v0.15.1 (/home/runner/work/tao/tao)
       Uploading tao v0.15.1 (/home/runner/work/tao/tao)
    
    Source code(tar.gz)
    Source code(zip)
  • tao-v0.15.0(Nov 8, 2022)

    Updating crates.io index

    Cargo Audit

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 469 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (187 crate dependencies)
    

    [0.15.0]

    • Add support for parsing ArrowUp, ArrowDown, ArrowLeft and ArrowRight in a str as valid key. Previously only Up, Down, Left and Right worked.
      • 5e85dbef fix: parse Arrow* in a accelerator string (#609) on 2022-10-31
    • Add WindowBuilder::with_content_protection.
      • 8084c800 feat: add WindowBuilder::with_content_protection (#605) on 2022-10-30
    • On macOS, fix default cursor always being arrow cursor
      • 1359fccf On macOS, fix default cursor always being arrow cursor (#614) on 2022-11-06
    • On Windows, fixed focus event emission on minimize.
      • 37bca310 fix(windows): fix focus event emission on minimize (#559) on 2022-09-21
    • Update jni to 0.20.
      • 38fef108 feat(android): update to jni 0.20 (#610) on 2022-10-31
    • On Linux, add DeviceEvent::Key.
      • 775974d7 feat(linux): add DeviceEvent::Key (#600) on 2022-10-21
    • fix(linux): Improve event loop process on Linux a bit. This changes only a few check and should make dragging windows on egui smoother.
      • b529eec9 fix(linux): improve event loop process on Linux (#587) on 2022-10-12
    • Fix inverted delta in WindowEvent::MouseWheel on Linux
      • 8451f754 fix: Inverse mouse scroll wheel on Linux (#585) on 2022-10-11
    • Add EventLoopExtMacOS::set_activate_ignoring_other_apps on macOS.
      • d2c6a91c feat: add EventLoopExtMacOS::set_activate_ignoring_other_apps (#612) on 2022-11-01
    • Add WindowExtMacOS::set_allows_automatic_window_tabbing, WindowExtMacOS::allows_automatic_window_tabbing, and WindowBuilderExtMacOS::with_automatic_window_tabbing on macOS.
      • 7c7ce8ab feat(macos): add allows_automatic_window_tabbing APIs (#586) on 2022-10-12
    • Support cross compiling for macos from a non macos host.
    • Add WindowExtMacOS::is_doucmented_edited and WindowExtMacOS::set_is_doucmented_edited on macOS.
      • 33fdeab6 feat(macos): add document edited apis, closes #268 (#287) on 2022-10-03
    • On macOS, scale menu item icons height to 18.
      • 5e3d344c fix(macos): scale menu item icon height to 18, closes #584 (#590) on 2022-10-15
    • Add support for the "+" key in menu accelerators using KeyCode::Plus or the "Plus" keyword. See documentation for KeyCode::Plus for notes on platform-dependent behaviour.
      • 937aba7b feat(menus): add support for Plus key in accelerators, closes #227 (#573) on 2022-09-27
    • Add the application name to the "Quit" and "Hide" native menu items on macOS.
      • 65f768e5 fix(menus): add app name to native Quit and Hide items on macOS, closes #536 (#570) on 2022-09-25
    • Fix the native Services menu on macOS.
      • d343abf8 fix(menus): fix macOS Services menu not working, closes #243 (#569) on 2022-09-25
    • Scale the tray icon according to its aspect ratio on macOS.
      • dbbfd97c feat(macos): support to change tray icon aspect ratio, close #564 (#565) on 2022-09-25
    • Add builder methods on Linux to control the drawing behavior of the window. WindowBuilderExtUnix::with_double_buffered, WindowBuilderExtUnix::with_rgba_visual and WindowBuilderExtUnix::with_app_paintable
      • 0637c605 feat(linux): add drawing behavior builder methods, closes #567 (#572) on 2022-09-27
    • On Windows, show Window menu (also known as the System menu or Control menu) in response to Alt+Space.
      • 0d76094e fix(Windows): show window menu on alt+space, closes 547 (#593) on 2022-10-19
    • On Windows, fix icons specified on WindowBuilder not taking effect for windows created after the firt one.
      • d72b1e1a fix(Windows): fix icons specified on WindowBuilder not taking effect for windows created after the first one (#604) on 2022-10-27
    • Added tabbing identifier APIs on macOS.
      • 8815291e feat(macos): add tabbing identifier APIs (#592) on 2022-10-18
    • On Linux, reduce channel redirect. Now sending user events and redraw request will send to event loops directly.
      • dd86a9eb refactor(linux): reduce channel redirect (#588) on 2022-10-16
    • Add WindowBuilder::with_focused to specify whether to initially focus the window or not.
      • e42ff071 feat: add WindowBuilder::with_focused (#576) on 2022-10-03
    • Add APIs for disabling the individual window controls on desktop platforms, Window::set_closable, Window::is_closable, WindowBuilder::with_closable, Window::set_minimizable, Window::is_minimizable, WindowBuilder::with_minimizable, Window::set_maximizable, Window::is_maximizable, WindowBuilder::with_maximizable. See the docs for platform-specific notes, especially regarding Linux.
      • a50fd867 feat: options to disable individual window controls, closes #116 (#574) on 2022-10-11
    • Add Window::title to get the current window title.
    • Default to MOD_NOREPEAT for registering global shortcuts / hotkeys via win32 RegisterHotKey on Windows. This prevents shortcuts from repeatedly activating when the accelerator is pressed and held down, and ensures that we maintain platform-agnostic consistency.
      • d15a756c Prevent global shortcut activation from repeating on Windows (#602) on 2022-10-23

    Cargo Publish

    `\`\`
    Updating crates.io index
       Packaging tao v0.15.0 (/home/runner/work/tao/tao)
       Uploading tao v0.15.0 (/home/runner/work/tao/tao)
    
    Source code(tar.gz)
    Source code(zip)
  • tao-v0.14.0(Sep 13, 2022)

    Updating crates.io index

    Cargo Audit

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 457 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (183 crate dependencies)
    

    [0.14.0]

    • Implement "always on bottom" as contrary to "always on top".
    • Fix calling android functions when package name contained escaped underscore.
      • 6d8cc7e3 fix(android): unescape escaped underscore in package name (#531) on 2022-08-16
    • Add Window::set_content_protection for macOS and Windows.
      • 802146fb feat: implement set_content_protection, closes #550 (#551) on 2022-09-04
      • Add DeviceEventFilter on Windows.
    • Breaking: On Windows, device events are now ignored for unfocused windows by default, use EventLoopWindowTarget::set_device_event_filter to set the filter level.
    • 5bbd4f8f Add DeviceEventFilter on Windows (#465) on 2022-08-17
    • Fix system tray creation after event loop starts on macOS.
      • 759b7db3 fix(macos): retain tray to prevent segfault when event loop is running (#539) on 2022-08-20
    • Fix resize doesn't work when calling with resizable. Also add platform specific note to set_resizable. On Linux, most size methods like maximized are async and do not work well with calling sequentailly. For setting inner or outer size, you don't need to set resizable to true before it. It can resize no matter what. But if you insist to do so, it has a 100, 100 minimum limitation somehow. For maximizing, it requires resizable is true. If you really want to set resizable to false after it. You might need a mechanism to check the window is really maximized.
      • 4524d5d3 fix(Linux): resize doesn't work when calling with resizable, fix #545 (#553) on 2022-09-08
    • Add Window::is_focused.
    • On Linux, fix global shortcut are never triggered when a Lock key is ON, eg. NumLock, CapsLock.
      • 07e3c1f5 fix(linux/globalShorcut): extract needed mods from event state, closes #307, closes #537 (#538) on 2022-08-19
      • 871ad037 chore: remove changefile, bug still exists on 2022-08-20
      • 7e5556e0 fix(linux/globalShortcut): grab the shortcut with extra mods, closes #307 (#540) on 2022-08-20
    • Disables the global shortcut manager on wayland as its X11-specific.
      • 27ab6f4d fix(linux/globalShortcut): disable on wayland (#543) on 2022-08-26
    • Added SystemTrayExtMacOS::set_title to SystemTray and SystemTrayBuilderExtMacOS::with_title to set the tray icon title on MacOS
      • 972307dd feat: added text support to system tray for macos, closes #65 (#554) on 2022-09-10
    • Update windows-rs to the latest 0.39.0 release.

    The alloc feature has been removed, which means it no longer accepts Rust String or &str parameters and implicitly converts them to PWSTR or PSTR.

    For string literals, that feature was replaced with s!() and w!() macros which null terminate the string literal at compile time and convert to UTF-16 if necessary. The s!() macro is fine, however the w!() macro uses HSTRING types from WinRT for maximum compatibility with WinRT types. Since Tao only uses Win32 APIs, this change relies on util::encode_wide to convert to a Vec<u16> instead.

    Cargo Publish

    `\`\`
    Updating crates.io index
       Packaging tao v0.14.0 (/home/runner/work/tao/tao)
       Uploading tao v0.14.0 (/home/runner/work/tao/tao)
    
    Source code(tar.gz)
    Source code(zip)
  • tao-v0.13.3(Aug 14, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 440 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (186 crate dependencies) \`

    [0.13.3]

    • Implement custom protocol on Android.
      • b464b8ae feat(android): implement custom protocol (#527) on 2022-08-13
    • Changed WebViewMessage::Eval to evaluate an specific script.
      • 903c7e7f feat(android): change WebViewMessage::Eval to run specific script (#529) on 2022-08-13
    • Fix webview initialization scripts implementation on Android.
      • 3d66ad0b fix(android): run initialization scripts before page loads (#528) on 2022-08-13
    • Removed the webview logic from the Android glue.
      • 152aaa44 refactor(android): remove WebView logic, allow wry to hook into it (#530) on 2022-08-14
    • Implement SystemTray::set_tooltip and SystemTrayBuilder::with_tooltip on Windows.
      • 06949a79 feat(windows): implement with_tooltip&set_tooltip, closes #205 (#524) on 2022-08-10

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.13.3 (/home/runner/work/tao/tao) Uploading tao v0.13.3 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.13.2(Aug 9, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 436 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (186 crate dependencies) \`

    [0.13.2]

    • Remove the NSStatusItem from the menu bar when the SystemTray instance is dropped.
      • aca4d3fb feat(tray): remove from tray on Drop on macOS (#520) on 2022-08-04
    • Fixes Window::is_decorated always returning true on macOS.
      • c3e076e9 fix(window): is_decorated wrong return value, closes #518 (#519) on 2022-08-04
    • Fix theme feature to support Darker theme on Linux.
      • c6d6c011 fix: support Darker theme on Linux (#511) on 2022-08-03
    • Add Window::is_minimized().
    • Implement SystemTrayBuilder::with_tooltip and SystemTray::set_tooltip on macOS.
      • 14e26568 feat(macos): add SystemTray::set_tooltip, ref #409 (#410) on 2022-08-03
    • On Windows, fix a ghost window appearing occasionally when clicking the tray icon.
      • ad1f641f fix(windows): fix tray event window showing up on click, closes #506 (#507) on 2022-08-02
    • Added SystemTrayBuilder::with_id and the id field to Event::TrayEvent for better multitray support.
      • 4ea78bcb feat(tray): add identifier to allow multiple tray setup (#514) on 2022-08-04
    • Hide the app indicator when dropping SystemTray on Linux
      • 9c6a543c feat(tray): hide indicator on drop on Linux (#521) on 2022-08-04

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.13.2 (/home/runner/work/tao/tao) Uploading tao v0.13.2 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.13.1(Jul 29, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 422 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (186 crate dependencies) \`

    [0.13.1]

    • On Linux, fix Window can't be displayed on wayland.
      • eb880f48 Fix window can't be displayed on wayland (#504) on 2022-07-28

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.13.1 (/home/runner/work/tao/tao) Uploading tao v0.13.1 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.13.0(Jul 27, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 422 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (186 crate dependencies) \`

    [0.13.0]

    • On Linux, receive only one draw event per cycle to prevent receiving infinite draw events.
      • b86ada73 Receive only one draw event per cycle (#500) on 2022-07-25
      • On Linux, add EventLoopWindowTargetExtUnix for methods to determine if the backend is x11 or wayland.
    • On Linux, add x11 module for glutin internal use. This is basically just x11-dl, but winit secretly exports it.
    • On Linux, add WindowBuilder::with_transparent_draw to disable the internal draw for transparent window and allows users to draw it manually.
    • db7e5cb4 feat(linux): Add necessary features for creating GL windows (#495) on 2022-07-25
    • Breaking Updated raw-window-handle to 0.5 and added Window::raw_display_handle and EventLoopWindowTarget::raw_display_handle.
      • b905852d chore(deps): update raw-window-handle to 0.5 (#493) on 2022-07-24
    • On Windows, respect min/max inner sizes when creating the window.
      • c1c6822e fix(windows): respect min/max sizes when creating window, closes #498 (#499) on 2022-07-25

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.13.0 (/home/runner/work/tao/tao) Uploading tao v0.13.0 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.12.2(Jul 21, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 421 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (186 crate dependencies) \`

    [0.12.2]

    • On Windows, fix assigning the wrong mintor rect to undecorated maximized window. This caused a blank window downstream in wry and tauri.
      • 9d97e4a6 fix(windows): get correct monitor in WM_NCCALCSIZE, closes #471 (#472) on 2022-07-12
    • Fixed set_inner_size is reset when resizable is set to false.
      • 17203d08 fix: fixed inner_size even if resizable is set to false (#461) on 2022-07-05
    • On Windows, prevent ghost window from showing up in the taskbar after either several hours of use or restarting explorer.exe.
      • feb21272 fix(windows): prevent ghost window from showing up on taskbar (#489) on 2022-07-21
    • Add theme feature on Linux.
      • 74425e8e feat: add theme feature on Linux (#468) on 2022-07-10
    • Fix maximizing window on Linux.
    • On macOS, fallback resize event for NSWindow to handle.
      • ab2e57e9 On macOS, fallback resize event for NSWindow to handle on 2022-07-12
    • Add CustomMenuItem::set_icon. Only implemented on macOS for now.
      • 13f9f182 feat(macos): implement CustomMenuItem::set_icon() (#459) on 2022-07-07
    • On Windows, subscribe to taskbar restart event and re-add the system tray icon. Also skip the window from the taskbar if it was already skipped.
      • 9450329e fix(windows): subscribe to taskbar restart event, closes #476 (#487) on 2022-07-21
    • On Windows, fix focus events being sent to inactive windows.
      • 23ae71b7 fix(windows): fix focus events being sent to inactive windows. (#488) on 2022-07-21

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.12.2 (/home/runner/work/tao/tao) Uploading tao v0.12.2 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.12.1(Jul 1, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 419 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (181 crate dependencies) \`

    [0.12.1]

    • Revert #427 due to random crash caused by it.
      • 38f9a587 Revert "Remove most RedrawWindow to event target window" (#457) on 2022-07-01

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.12.1 (/home/runner/work/tao/tao) Uploading tao v0.12.1 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.12.0(Jun 28, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 419 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (181 crate dependencies) \`

    [0.12.0]

    • On macOS, fix native file dialogs hanging the event loop and having multiple windows would prevent run_return from ever returning.
      • 5c9cc21a Fix native file dialogs freezing the event loop (#440) on 2022-06-22
    • Fix maximizing window.
    • On Windows, fix wrong fullscreen monitors being recognized when handling WM_WINDOWPOSCHANGING messages
      • 054a34ec fix: fix assigning the wrong monitor when receiving Windows move events (#438) on 2022-06-22
    • Fix global hide others shortcut.
      • dfae373e fix: global hide others shortcut (#447) on 2022-06-25
    • Fix window can't be hidden when maximized.
      • cd9ad33a Fix window can't be hidden when maximized (#384) on 2022-06-15
    • On macOS, WindowEvent::Resized is now emitted in frameDidChange instead of windowDidResize.
      • 54062ca1 fix: emit resize event on frame_did_change on macOS, closes #436 (#439) on 2022-06-22
    • On Linux, adds SystemTrayBuilderExtLinux::with_temp_icon_dir which sets a custom temp icon dir to store generated icon files. This may be useful when the application requires icons to be stored in a specific location, such as when running in a Flatpak sandbox.
      • ce209d39 feat(linux) add with_temp_icon_dir builder extension (#452) on 2022-06-26
    • On Linux, store tray icons in $XDG_RUNTIME_DIR. This is preferred over /tmp, because this directory (typically /run/user/{uid}) is only readable for the current user. While /tmp is shared with all users.
      • 01253829 feat(linux): store tray icons in XDG_RUNTIME_DIR (#449) on 2022-06-25
    • Do not emit the ThemeChanged event when the window theme is set and the system theme changes (the window keeps its theme in this scenario).
      • aae6bec9 fix(macos): do not emit ThemeChanged event if window theme didn't change (#430) on 2022-06-20
    • Remvoe core-video-sys dependency.
      • 3bb09aa6 fix: remove core-video-sys dependency, closes #435 (#441) on 2022-06-22
    • The theme function now Theme::Light on macOS older than 10.14 and the initial theme setter has no effect instead of crashing the application.
      • ba9c5571 fix(macos): guard theme APIs to not crash when running on 10.13 or older (#429) on 2022-06-20
    • Reduce WM_PAINT singal on event target window to prevent from webview2 delay.
      • 5ca39af1 Remove most RedrawWindow to event target window (#427) on 2022-06-28

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.12.0 (/home/runner/work/tao/tao) Uploading tao v0.12.0 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.11.2(Jun 14, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 417 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (179 crate dependencies) \`

    [0.11.2]

    • Fixes the Ivar menu_on_left_click not found on class TaoTrayHandler panic on macOS.
      • 2cc163d2 fix(macos): crash on tray class usage on 2022-06-14

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.11.2 (/home/runner/work/tao/tao) Uploading tao v0.11.2 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.11.1(Jun 14, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 417 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (179 crate dependencies) \`

    [0.11.1]

    • Fix macOS SystemTrayExtMacOS implementation.
      • f42c1be1 fix: fix wrong macOS trait implementation on 2022-06-14

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.11.1 (/home/runner/work/tao/tao) Uploading tao v0.11.1 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.11.0(Jun 14, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 417 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (179 crate dependencies) \`

    [0.11.0]

    • Breaking change SystemTrayBuilder::new and SystemTray::set_icon now takes system_tray::Icon on all platforms.
    • Allow to disable system tray menu only on Left Click.
      • 0858356f feat(macos): allow to disable system tray menu on left click, closes #317 (#329) on 2022-06-09
    • Connect mouse wheel event with GTK window.
      • f9e0b734 connect mouse wheel event with GTK window (#412) on 2022-06-08
    • Support child window on Linux.
      • f1e8d755 feat: support child window on linux, closes #273 (#415) on 2022-06-13
    • Support theme on macOS.
      • 8af4d8f0 feat: support theme on macOS (#408) on 2022-06-01
    • Add Window::set_ignore_cursor_events
      • 4fa87617 feat: Window::set_ignore_cursor_events, closes #184 (#421) on 2022-06-13

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.11.0 (/home/runner/work/tao/tao) Uploading tao v0.11.0 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.10.0(May 30, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 416 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (178 crate dependencies) \`

    [0.10.0]

    • Fix movable window background on macOS.
      • e0520b48 fix: fix movable window background on macOS, closes #406 (#405) on 2022-05-27
    • Remove trivial tray features.
      • f1bd25e6 Remove trivial tray features (#411) on 2022-05-30

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.10.0 (/home/runner/work/tao/tao) Uploading tao v0.10.0 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.9.1(May 23, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 415 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (178 crate dependencies) \`

    [0.9.1]

    • Fix the size of the slice passed to DragQueryFileW by passing std::mem::transmute(path_buf.spare_capacity_mut()) instead of &mut path_buf.

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.9.1 (/home/runner/work/tao/tao) Uploading tao v0.9.1 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.9.0(May 23, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 415 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (178 crate dependencies) \`

    [0.9.0]

    • Add standalone webview ndk port.
      • 68c9f07e Implement standalone webview ndk (#385) on 2022-05-19
    • Update the windows crate to the latest 0.37.0 release.

    The #[implement] macro in windows-implement and the implement feature in windows depend on some const generic features which stabilized in rustc 1.61. The MSRV on Windows targets is effectively 1.61, but other targets do not require these features.

    Since developers on non-Windows platforms are not always able to upgrade their toolchain with rustup, the package remains at 1.56. Windows developers may get less friendly compiler errors about using unstable language features until they upgrade their toolchain if they build tao without wry, which has some Windows-specific dependencies that transitively raise the MSRV for wry to 1.61.

    • 93c256f9 Update the windows-rs crate to 0.37.0 (#400) on 2022-05-23

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.9.0 (/home/runner/work/tao/tao) Uploading tao v0.9.0 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.8.5(May 18, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 412 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (182 crate dependencies) \`

    [0.8.5]

    • The current_monitor function now fallbacks to the primary monitor when the window is invisible.
      • 6cdb99fd fix(linux): fallback to primary monitor on current_monitor impl (#395) on 2022-05-18
    • Change menubar background color to transparent on Linux when the window is transparent.
      • a0d9408b fix(linux): make menubar background transparent (#389) on 2022-05-14
    • Rename full screen menu label to "Toggle Full Screen".

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.8.5 (/home/runner/work/tao/tao) Uploading tao v0.8.5 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.8.4(May 4, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 405 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (182 crate dependencies) \`

    [0.8.4]

    • On Windows, remove the accelerator from CustomMenuItem::title returnd string.
      • 634116fe fix(Windows): remove accel str from CustomMenuItem::title returned string (#377) on 2022-04-28
    • On Windows and Linux, increase the resizing area for borderless windows based on scale factor.
      • 8701f64a fix: scale borderless resizing inset based on scale_factor, closes #376 (#379) on 2022-05-01

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.8.4 (/home/runner/work/tao/tao) Uploading tao v0.8.4 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.8.3(Apr 26, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 404 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (182 crate dependencies) \`

    [0.8.3]

    • Implement Window::set_cursor_position for Linux.
      • afffaeae feat(linux): implement Window::set_cursor_position (#373) on 2022-04-23

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.8.3 (/home/runner/work/tao/tao) Uploading tao v0.8.3 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.8.2(Apr 13, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 404 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (182 crate dependencies) \`

    [0.8.2]

    • Do not fire WindowEvent::Moved when is_maximized is called on macOS.
      • 25890b94 fix(macos): do not fire Event::Moved when checking is_maximized (#366) on 2022-04-13

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.8.2 (/home/runner/work/tao/tao) Uploading tao v0.8.2 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.8.1(Apr 6, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 404 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (184 crate dependencies) \`

    [0.8.1]

    • Fixes compilation when only the tray feature is enabled.
      • da938957 fix(tao): compilation when only the tray feature is enabled (#363) on 2022-04-05

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.8.1 (/home/runner/work/tao/tao) Uploading tao v0.8.1 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.8.0(Apr 5, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 404 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (184 crate dependencies) \`

    [0.8.0]

    • Add EventLoopWindowTargetExtMacOS::set_activation_policy_at_runtime.
      • ef06c508 Set activation policy at runtime (#353) on 2022-03-30
    • On Windows and Linux, disable resizing maximized borderless windows.
      • 13c5c996 fix(win,linux): disable resizing maximized borderless windows (#356) on 2022-03-30
    • Breaking change: Renamed the ayatana Cargo feature to ayatana-tray, now the default feature for tray on Linux, and added the gtk-tray feature.
      • 40ec796d refactor(tray): split gtk and ayatana appindicator features (#362) on 2022-04-05
      • On Windows, Fix random characters when changing menu items title through CustomMenunItem::set_title.
      • e4725bf5 fix(Windows): fix random chars when changing menu item title (#361) on 2022-03-31
    • On Windows, Fix Window::set_inner_size setting a bigger size than requested.
      • 089f3878 fix(Windows): fix set_inner_size setting a bigger size, closes #194 (#354) on 2022-04-03

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.8.0 (/home/runner/work/tao/tao) Uploading tao v0.8.0 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
  • tao-v0.7.0(Mar 28, 2022)

    Updating crates.io index

    Cargo Audit

    \` Fetching advisory database from https://github.com/RustSec/advisory-db.git Loaded 403 security advisories (from /home/runner/.cargo/advisory-db) Updating crates.io index Scanning Cargo.lock for vulnerabilities (184 crate dependencies) \`

    [0.7.0]

    • Fire Event::LoopDestroyed when the macOS dock Quit menu item is clicked.
      • 34257a75 feat(macos): fire LoopDestroyed when the dock's Quit item is clicked (#351) on 2022-03-27
    • Added Event::DecorationsClick (Windows only).
      • 411af5b1 feat(windows): add Event::DecorationsClick (#352) on 2022-03-27
    • Enhance the MenuItem::About menu on Linux. Breaking change: The About variant now uses an struct instead of a string.
      • 84c677fd refactor: fix and enhance the about menu on Linux (#347) on 2022-03-25
    • Fixes the About menu on Linux not being shown.
      • 84c677fd refactor: fix and enhance the about menu on Linux (#347) on 2022-03-25
    • Properly fire WindowEvent::Destroyed on Linux when the Window is dropped.
      • cdd4ac32 fix(events): properly fire WindowEvent::Destroyed on Linux (#349) on 2022-03-25
    • Properly change the window to fullscreen state if the builder instructs it to use Fullscreen::Borderless(None).
      • 5ecbac19 fix(window): fullscreen on Linux when builder is set to Borderless(None) (#348) on 2022-03-25
    • Fixes system tray item titles on Windows by forcing the string to be null-terminated.
      • 7f900a16 fix(tray): force item title string to be null-terminated (#340) on 2022-03-09
    • Properly fire WindowEvent::Destroyed on macOS when the Window is dropped.
      • efd3eecc fix(window): properly fire WindowEvent::Destroyed on macOS (#350) on 2022-03-25
    • Fix inconsist behaviour when setting menu on mac.
      • 5abdbd1f Fix inconsist behaviour when setting menu on mac (#345) on 2022-03-17

    Cargo Publish

    \` Updating crates.io index Packaging tao v0.7.0 (/home/runner/work/tao/tao) Uploading tao v0.7.0 (/home/runner/work/tao/tao) \`

    Source code(tar.gz)
    Source code(zip)
Owner
Tauri
Build smaller, faster, and more secure desktop applications with a web frontend
Tauri
Fusion is a cross-platform App Dev ToolKit build on Rust . Fusion lets you create Beautiful and Fast apps for mobile and desktop platform.

Fusion is a cross-platform App Dev ToolKit build on Rust . Fusion lets you create Beautiful and Fast apps for mobile and desktop platform.

Fusion 1 Oct 19, 2021
A cross-platform serial port library in Rust.

Introduction serialport-rs is a general-purpose cross-platform serial port library for Rust. It provides a blocking I/O interface and port enumeration

Bryant Mairs 143 Nov 5, 2021
A cross-platform serial port library in Rust. Provides a blocking I/O interface and port enumeration including USB device information.

Note: This is a fork of the original serialport-rs project on GitLab. Please note there have been some changes to both the supported targets and which

Serialport 128 Jan 4, 2023
Rust + Yew + Axum + Tauri, full-stack Rust development for Desktop apps.

rust-yew-axum-tauri-desktop template Rust + Yew + Axum + Tauri, full-stack Rust development for Desktop apps. Crates frontend: Yew frontend app for de

Jet Li 54 Dec 23, 2022
Minimal, flexible & user-friendly X and Wayland tiling window manager with rust

SSWM Minimal, flexible & user-friendly X and Wayland tiling window manager but with rust. Feel free to open issues and make pull requests. [Overview]

Linus Walker 19 Aug 28, 2023
OpenAI ChatGPT desktop app for Mac, Windows, & Linux menubar using Tauri & Rust

ChatGPT Desktop App Unofficial open source OpenAI ChatGPT desktop app for mac, windows, and linux menubar using tauri & rust. Downloads Windows (2.7 M

Sonny Lazuardi 732 Jan 5, 2023
SimpleX Chat GUI built with Rust, Tauri and Yew

simplex-desktop A desktop application for simplex-chat. WIP, contributions are welcome. Architecture For the back end we rust with tauri and frontend

Simon Shine 5 Feb 28, 2023
TaurApp is a WhatsApp desktop client powered by Tauri and Rust.

TaurApp TaurApp is a WhatsApp desktop client powered by Tauri and Rust. TaurApp is an experimental client and is initially created to test out Tauri i

Eray Erdin (&mut self) 22 Mar 19, 2023
Akinator clone in Rust with Tauri, written in 2 days

Rustinator Akinator clone written in Rust + Tauri in 2 days How to play Install Rust Install Tauri Open a cmd/Terminal in this folder. Run cd src-taur

Face 5 Jul 17, 2023
A tiling window manager for Windows 10 based on binary space partitioning

yatta BSP Tiling Window Manager for Windows 10 Getting Started This project is still heavily under development and there are no prebuilt binaries avai

Jade 143 Nov 12, 2022
A rewrite of Phonelink for Windows Forms written in Rust, with cross-platform support.

phonelink-rs A rewrite of Phonelink for Windows Forms written in Rust, with cross-platform support. Usage Clone the repository and build, or download

ahsan-a 4 Aug 6, 2022
Build and deploy cross platform bioinformatic utilities with Rust.

The Bioinformatics Toolkit RUST-backed utilities for bioinformatic data processing. Get started The fastest way to get started it to download the appl

null 5 Sep 8, 2023
Hydrogen is the desktop application for Geplauder, built with tauri studio.

Hydrogen Hydrogen is the desktop application for Geplauder, built with tauri studio. For more information on Geplauder, click here. Usage To configure

null 4 Nov 21, 2021
Helps positioning your tauri windows.

Tauri plugin positioner A plugin for tauri that helps positioning you windows at well known locations. Install Rust [dependencies] tauri-plugin-positi

Jonas Kruckenberg 42 Jan 5, 2023
A custom invoke system for Tauri that leverages a localhost server

Tauri Invoke HTTP This is a crate that provides a custom invoke system for Tauri using a localhost server. Each message is delivered through a XMLHttp

Tauri 17 Dec 17, 2022
This is a small demo to accompany the Tauri + Yew tutorial

Tauri + Yew Demo This is a small demo to accompany the Tauri + Yew tutorial

Steve Pryde 94 Jan 2, 2023
📦 Port of tauri-bundler

?? Port of tauri-bundler You can now easily create installers for your Deno apps, thanks to the amazing work of Tauri ??

Marc Espín 28 Dec 7, 2022
Type-safe IPC for Tauri using GraphQL

Tauri Plugin graphql A plugin for Tauri that enables type-safe IPC through GraphQL. Install Rust [dependencies] tauri-plugin-graphql = "0.2" JavaScrip

Jonas Kruckenberg 40 Dec 29, 2022
🦀 Small Tauri SolidJS Example feat. Vite

Tauri Solid Example (2022) Simple Solid(vite) starter running with Tauri. Should hopefully save some time trying to setup Tauri and Solid. Currently c

Luke Secomb 14 Oct 25, 2022