-
Notifications
You must be signed in to change notification settings - Fork 566
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
Druid status update and loose 0.9 roadmap #1945
Comments
Is that still the goal? Druid is humming along just fine, but Runebender doesn’t appear to be active. |
What's the status on 0.8? The latest release on crates.io triggers deprecation warning in some of its dependencies, and will stop working with upcoming compiler version (looks like this will happen once rust-lang/rust#83125 gets phased out). |
Do we want IME to be split out into its own crate? I'd be happy to attempt an initial pass at this if there's interest. |
@msrd0 To alleviate your concerns: I'm committed to making the removal of the rustc back-compat hack (rust-lang/rust#83125) as smoothly as possible, with as little ecosystem breakage as possible. I will not merge that PR if it would mean that Of course, I'd appreciate any help in helping users to upgrade away from the broken dependencies 😄 |
After further investigation, the deprecation warnings are actually false positives. I'll be addressing them in an upcoming rustc PR, but druid 0.7 is going to keep compiling without any changes. |
I am actively working towards 0.8 being a reality. No specific date to announce at this moment, but it will happen soon. Definitely before the next Rust release. |
@xStrom any news on 0.8? |
I think we should open a ticket in the glazier repos for each of the items in the druid-shell section, and then close this issue. |
I'm pleased to announce that Druid v0.8 is finally here. This release is the result of two years of work by 80 contributors. Some of the bigger changes include a massive rework of our textbox widget with support for IME, |
This is intended as a short informal overview of my current thinking on Druid, and my current plans. Right now I am mostly working on font compilation stuff, but I hope to shift focus more fully back to Druid around October. This was sitting as a draft in my gists, though, and this feels like a better place for it. 😅
Sometime soon I would like to do a rollup release (
0.8
) of all the various work done since 0.7.N.B: The primary goal of Druid is to allow me to build Runebender. This goal is what dictates the roadmap, and also explains certain omissions: there are various features that might be important to a general-purpose GUI framework that are not currently important to Runebender (such as protected text input) and which may be neglected for the time being.
I want to separately address druid and druid-shell, that is the high-level GUI API and the lower-level system-integrations. Very briefly, my main interest right now is in working on "finishing up" the lower level infrastructure.
the high level architecture
I continue to have some concerns about this. In particular, I find that once an application gets large,
Data
becomes hard to reason about: anything can potentially change anywhere, and in any order, and this can make it easy to introduce difficult bugs.I do not have a current plan to change this drastically, right now. There have been various musings and experiments over the past year, but nothing conclusive. Later this fall Raph and I are hoping to spend a week or two together in person hacking on this, and it's possible something will come of that, and it's also possible that it won't. My dream here remains to have something much closer to a truly declarative/reactive framework, but which also lets the user hand-write widgets in the current druid style as an "escape hatch". Making this work is a pain, though.
druid-shell
regardless of any changes we make at a high level, we are going to continue using druid-shell to interact with target platform. There are a bunch of long-standing issues with druid-shell, and so my focus right now is on resolving these. In particular:
piet
: currently druid-shell is tightly bound to piet. If you want to use druid-shell without piet, you are out of luck. This limitation seems arbitrary and unhelpful, and I would like to unwind it. it should be thedruid
crate that is responsible for setting up the graphics context.WNDPROC
messages on windows, or overriding additional methods on key objects on mac; this is not a priority though.WinHandler
. I would prefer to move to a model where we have a singleAppHandler
that receives all events for all windows, and then possibly only have aWinHandler
for the very specific case of VSTs, see:The text was updated successfully, but these errors were encountered: