-
-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: new blog post "Introduce aw-tauri" #34
Open
brayo-pip
wants to merge
22
commits into
ActivityWatch:master
Choose a base branch
from
brayo-pip:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 21 commits
Commits
Show all changes
22 commits
Select commit
Hold shift + click to select a range
5c96d48
feat: Introduce aw-tauri as a lightweight, cross-platform alternative…
brayo-pip e19a25d
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip 9e488ba
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip 4bec6e9
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip d81f656
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip 96dd276
Minor formattting
brayo-pip 830a496
feat: briefly mention Aw-sync
brayo-pip ec8b2fd
feat: fix broken link
brayo-pip f0deff7
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip 3c806ad
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip a10f9d1
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip 03f04fb
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip bb2e37e
Update dates
brayo-pip 043f9fd
Final touches
brayo-pip 838b7c1
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip 0a93666
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip f06073a
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip 68c0580
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip 96bbdd6
move user experience up. add autostart as a feature
brayo-pip 4805cb6
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip 38c888c
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip 14f469b
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
--- | ||
layout: post | ||
A lighter faster ActivityWatch with Tauri: now available for testing | ||
brayo-pip marked this conversation as resolved.
Show resolved
Hide resolved
|
||
date: 2024-5-13 16:35 +0300 | ||
author: "Brian Vuku" | ||
author_twitter: "subrupt" | ||
--- | ||
|
||
We're excited to introduce a new initiative [`aw-tauri`](http://github.com/ActivityWatch/aw-tauri), which is a lighter, faster cross-platform repackaging of ActivityWatch. As the name implies the project is built with [Tauri](https://tauri.app), a relatively new Rust-based toolkit that enables easy development of small, fast, and secure applications with a great developer experience. | ||
|
||
## Why Tauri | ||
|
||
Tauri apps are lightweight, memory efficient and secure by design. Tauri does not ship a renderer but uses the platform native renderer via WebViews. This simple design choice makes the app size compact and memory efficient during runtime, as compared to electron apps. Tauri apps are secure, only interacting with the host systems through Tauri APIs. | ||
|
||
## User Experience | ||
|
||
`aw-tauri` aims to replace the functionality that is currently implemented in [`aw-qt`](https://github.com/ActivityWatch/aw-qt) and [`aw-notify`](https://github.com/ActivityWatch/aw-notify). Creating a new Rust-powered entrypoint for running ActivityWatch and its modules. With [`aw-server-rust`](https://github.com/ActivityWatch/aw-server-rust) as the default server, it leads to a reliable and highly performant application. Reliability and performance is very important for apps like ActivityWatch, which always run in the background and collect data that is otherwise lost. | ||
|
||
`aw-tauri` is designed to be a drop-in replacement for `aw-qt` and `aw-notify`, with the following improvements: | ||
|
||
- It houses its own webview, no need to visit `http://localhost:5600` in your browser anymore. | ||
- Watchers can be started and stopped right from the trayicon, just like in `aw-qt`. | ||
- Updates can be pushed seemlessly across platforms provided by tauri's update system! | ||
- [aw-sync](https://github.com/ActivityWatch/aw-server-rust/tree/master/aw-sync), which is still in active development, will be integrated into the app. Syncing data across devices will be just as seamless. | ||
- Autostart on boot, is built into the app, no need to set up systemd services for linux users. | ||
|
||
This is just the beginning, it serves as the baseline for many more improvements to come. | ||
|
||
## Developer Experience | ||
|
||
`aw-tauri` is built with [aw-server-rust](https://github.com/ActivityWatch/aw-server-rust) serving the backend together with [aw-webui](https://github.com/ActivityWatch/aw-webui). We have taken care to keep the codebase lean and clean, such that it takes very little time to get acquainted with the codebase. | ||
|
||
In our current build process for Python modules like `aw-qt`, we rely heavily on PyInstaller for building into binaries. This has been an enduring source of problems, and many developer weeks (if not months) have been spent trying to work out all the issues over the years (especially macOS support, because of the need to codesign a very messy `.app` bundle). | ||
|
||
With Tauri, they have handled most of the heavy lifting, and make it easy to produce working binaries for all target platforms. Much of this is simply due to Rust (avoids PyInstaller and its complexity), but also the added tooling for codesigning, and producing suitable bundles for each platform: on Linux you get a lightweight `.AppImage`, on Windows a `.msi` installer, and `.app` on macOS. | ||
|
||
## Conclusion | ||
|
||
`aw-tauri` is still in active development, contributions are welcome and encouraged! | ||
|
||
Check out the [README](https://github.com/ActivityWatch/aw-tauri/blob/master/README.md) to see the status of development, and where you can help out. | ||
|
||
We are hopeful that it will help solve many of our remaining challenges, and are excited to see it help shape the future of ActivityWatch. | ||
Comment on lines
+37
to
+43
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd like to add links here to an early release that people can test themselves (possibly with many caveats). |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Avoid renaming the file before we publish, it makes it hard to read the diff.