-
Notifications
You must be signed in to change notification settings - Fork 627
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
Bump 'ashpd' version to '0.10.2' #7276
base: master
Are you sure you want to change the base?
Conversation
'ashpd' version 0.9 relies on 'async-io' by default, which pulls in a lot of extra crates. 'ashpd' 0.10 switches to 'tokio' by default. I hope this cuts down the size of Slint's dependency tree.
Thanks for the PR and initiative! The main reason why I opted for the older version of Ashpd is so that zbus/zvariant aren’t duplicated dependencies via AccessKit (atspi-common). I’d like to upgrade when AccessKit upgrades. In terms of async runtime, I’d prefer of AccessKit and ashpd use zbus with async-io instead of tokio, because the former has just a single I/o thread - that seems lighter. That said, there is another way to reduce dependencies: replacing ashpd with zbus directly to watch the color scheme dbus property. What do you think? |
Thanks for the quick response! I'm glad that we agree this is an issue. I didn't notice AccessKit needs zbus too; I completely understand waiting until it upgrades (is there a PR for that, by the way? I might make one if not). While I agree that I like your idea of skipping |
Once a new access kit version is released that depends on a newer zbus, then we should upgrade. The current version of accesskit_unix uses zbus 4. I suspect a future version may upgrade.
I think Slint should not impose a run-time choice on their users and minimise dependencies, and if possible the internal concerns (how the winit backend talks to dbus services) should be separated from the application. As such, I think async-io is a great choice for Slint implementation details. If the application wants to use async-io as well, that's fine - they can share the thread. If the application wants to use tokio, then it's free to do that and I think it's an acceptable situation that Slint has one background thread running. Tokio and async-io can co-exist in the same process, fortunately.
It would be awesome if you have time to explore using zbus directly. It seems to me that the color scheme is a u32 and with a zbus object proxy listening to the |
I've been trying out Slint for a bit, and I think it's really neat! One of my concerns is the size of the dependency tree, even for really minimal builds (e.g. disabling accessibility and only using the
winit
backend andfemtovg
renderer gives ~500 transitive dependencies).'ashpd' version 0.9 relies on 'async-io' by default, which pulls in a lot of extra crates. 'ashpd' 0.10 switches to 'tokio' by default. I hope this cuts down the size of Slint's dependency tree. From what I can tell, everything still builds just fine. I haven't been able to run tests because rustc hits OOM when trying to compile them.