Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Highlightsfor the most attractive new features.BREAKINGfor breaking changes.Addedfor new features.Changedfor changes in existing functionality.Deprecatedfor soon-to-be removed features.Removedfor now removed features.Fixedfor any bug fixes.Securityin case of vulnerabilities.Docsfor documentation changes.YANKEDfor deprecated releases.Internalfor internal changes. Only for maintainers.
Tip
This homepage is used to provide a blog-like changelog and BREAKING CHANGE migration guide.
You can expand sub-projects to view detailed changelogs.
Unreleased¶
0.5.0¶
Highlights¶
Wheel on Windows Arm64¶
- #139 - feat: add support for the
windows-11-armplatform wheel.
You can now install pytauri-wheel from PyPI on Windows 11 Arm64.
Using Unreleased Commits¶
- #147 - feat: support installation from git repository.
See: https://pytauri.github.io/pytauri/0.5/usage/using-unreleased-commits/
Accessing the request headers¶
- #136 - feat(pytauri): accessing the request headers in
Commands.
See: https://pytauri.github.io/pytauri/0.5/usage/concepts/ipc/#accessing-request-headers
Protect source code¶
- #134 - docs: add tutorial on using
Cythonto protect source code.
See: https://pytauri.github.io/pytauri/0.5/usage/tutorial/build-standalone-cython/
BREAKING¶
- #136 -
tauri v2.5requires upgrading@tauri-apps/api: ^2.5andtauri-plugin-pytauri-api: ^0.5. - #141 - feat(pytauri)!:
pytauri.path.PathResolvernow returns apathlib.Pathobject instead of astr. -
#133 - fix(pytauri)!: make
BuilderArgs.invoke_handleras required parameter for #110.If you do not specify
invoke_handler,pytauriwill not register thetauri-plugin-pytauriplugin, which means you cannot usepyInvokein the frontend to callCommands(you will receive an error like "plugin pytauri not found"). If this is indeed the behavior you expect, explicitly passNone.
Added¶
- #141 - chore: bump
pyo3to0.24.1. - #124 - #136 - chore: bump
tauridependencies:taurito2.5.1tauri-utilsto~2.4tauri-buildto2.2tauri-pluginto2.2tauri-plugin-notificationto2.2tauri-plugin-openerto2.2@tauri-apps/apito^2.5@tauri-apps/plugin-openerto^2.2@tauri-apps/plugin-dialogto^2.2
Docs¶
- #124 - docs: update example to use
App.run_returninstead ofApp.run, allowing cleanup tasks to be performed after the app exits (e.g., shutting down theniceguiserver) and retrieving the exit code.
0.4.0¶
Highlights¶
Precompiled python wheel (goodbye Rust compiler)¶
In v0.4.0, we have introduced an exciting new feature: precompiled Python wheel support! 🎉
This means you can use PyTauri without writing any Rust code or needing a Rust compiler.
This allows you to perform full-stack development in pure Python (like pywebview but battery-included 🤓).
Please refer to the PyTauri Wheel documentation for more information.
New logo for PyTauri¶
Thanks to @ISOR3X in #111! PyTauri now has its own logo 🎉:

It is indeed a snake, but not eating a bean, or perhaps it was not intended to be. It is more so a combination of the Tauri logo (two dots with rings around them) and the Python logo (the snake, specifically the head). The left part is more intended to visualize the snake curling around. Perhaps it is a bit too abstract.
Changed¶
- #63 - chore: bump
tauritov2.3.
Internal¶
- #119 - ci(rs/release): add
--no-verifytocargo publishso that we can release parallelly. - #113 - ci: add
macos-latestos inlint-testCI. - #111 - docs: added PyTauri logo and updated documentation colors
- #103 - chore: transfer repo to
pytauriorg.
0.3.0¶
Highlights¶
Changed¶
- #79 - bump
rust-version = "1.82"
Docs¶
- #88 - docs: add rust api reference section.
- #85 - docs: add concepts
IPCandusing multiprocessingsections. - #80 -
example/nicegui-app:- Use
BuilderArgs.setupfor initialization instead of listening to theRunEvent.Readyevent. - Rewrite the
FrontServerstartup/shutdownevent hook logic. - Modularize the code.
- Use
- #79 -
example/nicegui-app:- use
trayandmenufeature - use
python3.10matchstatement instead ofif-elsestatement - bump
requires-python = ">=3.10"
- use
Internal¶
- #81 - ci: add
clear-cache.ymlworkflow.
0.2.0¶
BREAKING¶
- #70 - feat(notification): removed
NotificationBuilderArgs. SeeCHANGELOG.mdofpy/pytauri-plugin-notificationfor how to migrate. - #57 - refactor(py/pytauri): remove
RunEventEnum, use matchedRunEventdirectly. SeeCHANGELOG.mdofpy/pytaurifor how to migrate. - #56 - perf(pytauri): all IPC methods that previously accepted
bytearrayas a parameter now only acceptbytesas a parameter. - #52 - refactor(standalone)!: new API for preparing python interpreter.
The
pytauri::standalonemodule has been completely rewritten. Previously, you usedprepare_freethreaded_python_with_executableandappend_ext_mod. Now, you need to usePythonInterpreterBuilder. See thepytauricrate rust API docs and tutorial (examples/tauri-app)main.rscode for more information on how to migrate.
Docs¶
- #60 - update
examplesmain.rsto removeresource_dir()UNC path prefix\\?\forPythonInterpreterEnv::Standalone. Fix pallets/jinja#1675 fornicegui-appstandalone example. - #55 - Add
integrate with niceguiexamplenicegui-app. Seeexamples/nicegui-app. - #52 - update
examples/tauri-appmain.rsfor new API to prepare python interpreter. - #52 - add the usage of
multiprocessing.freeze_supportinexamples/tauri-app__main__.py.
Changed¶
- #46 - bump
tauritov2.2
Internal¶
- #83 - chore: bump
pyo3tov0.23.4inCargo.lockto fix PyO3/pyo3#4828. - #64 - test: add integration tests for
commandandchannelipc