Skip to content

tao

Cross-platform application window creation library in Rust.

0.36.x

0.36.0

Jul 29, 2026
  • 2b818c4e (#1288 by @Legend-Master) Breaking Change:

    Changed the names of the Android JNI lifecycle functions exposed by android_binding! as follows:

    • create to onFirstActivityCreate
    • onActivityCreate to onCreate
    • start to onStart
    • resume to onResume
    • pause to onPause
    • stop to onStop
    • Removed onActivitySaveInstanceState
    • onActivityDestroy to onDestroy
    • onActivityLowMemory to onLowMemory

    onLowMemory no longer takes any parameters. onFirstActivityCreate no longer takes any parameters.

  • 4d5005ff (#1173 by @sftse) fn set_min_inner_size, fn set_max_inner_size, fn set_inner_size_constraints, fn set_fullscreen and fn set_theme on Window were not properly thread-safe on Linux.

  • 2ff9e3e9 (#1271 by @Legend-Master) Fix EventLoopProxy::send_event sometimes doesn't deliver the event until the next EventLoopProxy::send_event call

  • 14a6dec2 (#1252 by @Legend-Master) Fix getting the DPI internally leaks HDC handles on Windows. Also only call GetDC when on < Windows 8.1 which improves its performance.

  • 47d38f36 (#1228 by @ushinohama966) fix(linux): map JIS keyboard specific keys (Zenkaku_Hankaku, Hiragana_Katakana, Henkan, Muhenkan) in raw_key_to_key to prevent them from becoming Key::Unidentified.

  • 2ada91bf (#1254 by @tenderdeve) On macOS, re-apply the custom traffic light inset after a title change and after leaving fullscreen, so the buttons no longer jump back to their default position on those events.

  • 07f3742b (#1218 by @dgerhardt) On Linux, multiple issues regarding window decoration handling for Wayland have been fixed (#899, #1046, tauri-apps/tauri#6562, tauri-apps/tauri#13440, tauri-apps/tauri#13749, tauri-apps/tauri#14251, tauri-apps/tauri#14748). Title bar buttons and changing of the title should now work as expected. Furthermore, client-side decorations are no longer applied, when server-side decorations are supported. SSD are no longer applied when decorations are disabled for a window during creation. Toggling of SSD rendering for existing windows is however not supported at this time.

  • dad6b990 (#1266 by @FabianLars) Tao now initializes ndk-context again. This happens in the first onActivityCreate call and uses an Application context instead of an Activity context.

  • 729bbcad (#1270 by @ahirner) Prevent iOS apps from aborting when UIKit lays out a Tao view while it is temporarily detached from its window.

  • f2163508 (#1245 by @velocitysystems) Prevent use-after-free in iOS configurationForConnectingSceneSession that crashes release builds on launch.

  • 3f70d07c (#1250 by @velocitysystems) Fix iPadOS 26 system window controls overlapping WKWebView content by implementing preferredWindowingControlStyleForScene: on the scene delegate and returning the minimal style. The optional protocol method is a no-op on iOS versions earlier than 26.

  • 87c46b52 (#1238 by @Legend-Master) Refactored some Windows keyboard internal implementations to catch up with winit, there should not be any behavior changes, please report if you find one

  • f7f8173d (#1264 by @seemoer) Release the window state lock before updating taskbar visibility on Windows to avoid a reentrant TaskbarCreated deadlock.

  • 71b59efe (#1209 by @lucasfernog) Moved Android and iOS lifecycle events to WindowEvent, including Started, Stopped, Suspended, and Resumed, so they are emitted for the specific window whose activity or scene changed lifecycle state.

  • 87c46b52 (#1238 by @Legend-Master) WindowEvent::ReceivedImeText event's text is now coming from ImmGetCompositionStringW instead of a recording WM_CHAR and WM_SYSCHAR messages

  • 5f209bd8 (#1231 by @Legend-Master) Fixed with_background_color doesn't work on initial load on Windows

  • c704261c (#1215 by @chuwik) Avoid Windows keyboard and IME deadlocks caused by re-entrant message processing while input state locks are held.

  • 5f209bd8 (#1231 by @Legend-Master) Removed window subclassing on Windows

Dependencies
  • Upgraded to tao-macros@0.1.4

0.35.x

0.35.3

May 23, 2026

0.35.2

May 4, 2026

0.35.1

May 4, 2026

0.35.0

Mar 23, 2026
  • 4e7c2f4a (#1154 by @lucasfernog) Breaking change: The Android activity should now reference and call the following external functions:

    private external fun onActivityCreate(activity)
    private external fun start()
    private external fun resume()
    private external fun pause()
    private external fun stop()
    private external fun onActivitySaveInstanceState()
    private external fun onActivityDestroy(activity)
    private external fun onActivityLowMemory()
  • 18040018 (#1146 by @JeffTsang) Event::Resumed is now only emitted when the app is actually resumed (going back to foreground) so it won't be called on app startup.

  • 56e9840b (#1141 by @haecker-felix) Use the Linux XDG Desktop Portal to add support for the system color scheme. Needs dbus feature flag.

  • 4e7c2f4a (#1154 by @lucasfernog) Added multi-window support for iOS and Android.

    Leverages scenes on iOS and Activity embedding on Android.

    iOS:

    • Added Event::SceneRequested (on iPad the user can request a new window to be open - e.g. by long pressing the app icon and selecting "New window")
    • Request new scene to be created on Window::new (if needed, main scene is detected automatically) and assign the window instance later when it gets connected

    Android:

    • Create new activity on Window::new (if needed, main activity is detected automatically)
    • Added builder methods to determine the activity to be created
    • System determines what to do with the activity (new stack, next to another one.. based on the embedding rules)
  • 9cea0358 (#1155 by @lucasfernog) Fire Event::Opened on Android, which now requires the activity to call the onNewIntent(intent) external function.

  • 18040018 (#1146 by @JeffTsang) Use WillEnterForeground instead of DidBecomeActive for Event::Resumed in iOS.

0.34.x

0.34.8

Mar 22, 2026

0.34.7

Mar 22, 2026

0.34.6

Mar 4, 2026

0.34.5

Oct 20, 2025

0.34.4

Oct 16, 2025
  • 25f2c58a (#1148 by @lucasfernog) Trigger WindowEvent::Destroyed when the Android activity is destroyed. In this case, the app should either exit by setting the control flow to ControlFlow::ExitWithCode or NOT call the create() external function when the activity is recreated and onCreate is called, handling how to recreate the app window via a separate hook that can leverage the existing tao event loop.

0.34.3

Sep 1, 2025

0.34.2

Aug 18, 2025
  • 60a47340 (#1108 by @Simon-Laux) feat: MacOS: add universal applink support by implementing application:willContinueUserActivityWithType: and application:continueUserActivity:restorationHandler:, reusing the existing Event::Opened { urls } event for the user facing api.

0.34.1

Aug 17, 2025

0.34.0

Jun 24, 2025

0.33.x

0.33.0

Apr 7, 2025

0.32.x

0.32.8

Mar 7, 2025
  • b863d49c (#1058 by @1111mp) macOS: Add set_dock_visibility method to support setting the visibility of the application in the dock.
  • 996e28df (#1090 by @lucasfernog) Fix crash when sending key event when macOS app has no window opened.
  • dd9251a8 (#1091 by @1111mp) Fix Window::theme() always returning Theme::Light and WindowEvent::ThemeChanged() not delivered on macOS.

0.32.7

Mar 4, 2025
  • 1951b9ab (#1083 by @gezihuzi) Fixed application crash during startup when certain window buttons are disabled on macOS.

0.32.6

Feb 28, 2025
  • 9d1da74b (#1080 by @amrbashir) Fix crash on Windows because of missing functions on older Windows systems, regression in 0.32

0.32.5

Feb 28, 2025

0.32.4

Feb 27, 2025

0.32.3

Feb 26, 2025
  • c91dcde7 (#1075 by @Legend-Master) On Windows, fix Window::inner_size always returns the restore size instead of the current size for maximized undecorated window

0.32.2

Feb 26, 2025
  • b296cf53 (#1074 by @amrbashir) On Windows, add WindowExtWindows::has_undecorated_shadow to check if window has shadows for undecorated window or not.
  • f4ec11d7 (#1070 by @Legend-Master) Fix undecorated top left and right border resizing direction on Windows

0.32.1

Feb 24, 2025

0.32.0

Feb 22, 2025

0.31.x

0.31.1

Jan 4, 2025
  • 83e35e96 (#1036 by @FabioGNR) Call gtk::init when creating the eventloop to fix crashes with some gtk APIs.
  • bb537fe9 (#1039 by @amrbashir) On Windows, fix regression that caused Window::set_size to have no effect at all for undecorated window with shadows.

0.31.0

Dec 8, 2024
  • 5d6d7da0 (#1017 by @amrbashir) On Windows, fix regression caused undecorated window with shadows to be slightly larger on creation.
  • 2e6cf1a4 (#1022 by @Jnschrber) On Windows, fix crash on older windows versions that doesn't support dark mode.
  • 6b49f55a (#1016 by @Legend-Master) Expose raw gdk monitor through MonitorHandleExtUnix::gdk_monitor
  • 720bd93f (#1018 by @amrbashir) On Windows, fix regression in initial window position when using logical positions.
  • 73741a75 (#1008 by @amrbashir) Remove instant dependency, changed StartCause::ResumeTimeReached, StartCause::WaitCancelled and ControlFlow::WaitUntil to use std::time::Instant instead.
  • fa9aaa60 (#1019 by @amrbashir) On Windows, fix fullscreen for undecorated window have white borders.

Full Changelog

tao full changelog

Version List


© 2026 Tauri Contributors. CC-BY / MIT