Monthly updates

July 2026

This is a summary of what we are currently working on at Hexcat.

Each section below links to the relevant Rust Project Goal, which contains more in-depth technical updates. We only provide a high-level overview here. This work is done in collaboration with other contributors not part of Hexcat. Mentoring others is a great way to onboard new contributors to the Rust project, improving its longterm health.

Outside of these Project Goals, we are always doing a significant amount of smaller work that positively impacts Rust. We are doing a lot of mentoring, reviews, and cleanup work, drive the meetings for the Rust Types Team and Rust Library Team, and respond to regressions and other critical issues.

Our work is only possible thanks to the funding and support from our clients and sponsors, including Amazon, Google, and Turbopuffer. 💛 If you'd like to support our work or if you have any input on how to make these updates more effective, please contact mara@hexcat.nl or lcnr@hexcat.nl.

Next-generation trait solver

Rust Project Goal: Next-generation trait solver

This work is currently driven by lcnr.

Given the amount of on-going work here, we've switched to a weekly update cadence here. So there have been 4 update this month.

The last month has been incredibly productive. There have been a lot of huge performance improvements, see especially the most recent update.

We intend to enable the new trait solver by default on nightly in the next few days as all major issues have been fixed. We should then be able to properly stabilize it within the next 2–3 months.

Higher-ranked region rework

Rust Project Goal: Higher-ranked region rework

This work is currently driven by Boxy and lcnr and was previously called "Assumptions on Binders".

Boxy and lcnr spent a lot of time discussing this feature and we now have a fairly clear roadmap towards stabilization of an MVP by roughly the end of this year. This MVP should be slightly stronger than the existing -Zhigher-ranked-assumptions flag, see the list of known fixed issues for a vague idea of what this will cover.

We also realized that Assumptions on Binders is a poor description of what we're doing as it's far more general than this: we're entirely rewriting how region constraints are handled in the type system. Boxy rewrote the Project Goal to correctly explain the larger scope.

Implicit default auto traits

Rust Project Goals: Extern types and SVE and Move and Forget

Work on Move and Forget is currently driven by lcnr while collaborating with David Wood and Rémy Rakic on the type system work needed for extern types and SVE.

Not much has happened here from our side as we've mainly been pushing to stabilize the next-generation trait solver. It is slowly moving along and we should get support for Move on nightly during the next few months.

Const generics

Rust Project Goal: Const generics

This work is currently driven by Boxy and Ashley.

We're also doing weekly updates for Const Generics as it's quite active. This month has mainly been a lot of implementation work polishing feature(generic_const_args).

We're now in a good spot to remove feature(generic_const_exprs) and doing so is mainly blocked on writing a blogpost explaining how to migrate to generic_const_args. We need to do so before stabilizing the next-generation trait solver as it does not support generic_const_exprs.

There's more!

Not all our work is tracked by the above Rust Project Goals. Here are some of the highlights of our other work:

lcnr has been more proactively getting involved in the Project Goals team to make it more useful for contributors, project leadership, the wider community, and funders. Please reach out to them if you have any thoughts here!

Boxy and Fallible continue to work on improvements to the rustc-dev-guide. Fallible is currently focussed on type inference subtleties during HIR typeck after finishing the chapter on well-formedness.

Nia published the binary size roadmap.

Nia re-instantiated the custom allocators working group and is making progress towards stable custom allocators.

See you next month for more updates!

June 2026

This is a summary of what we are currently working on at Hexcat.

As Rust is an open source project, a lot of this work is done in collaboration with other contributors not part of Hexcat. We try delegate work and mentor others as much as possible. This is a great way to onboarding new contributors to the Rust project, increasing its longterm health and making us more effective longterm.

Each section below links to the relevant Rust Project Goal, where you can find the motivation behind the features and more in-depth technical updates. This page only provides a high-level overview of our contributions in these area.

Outside of these Project Goals, we are always doing a significant amount of smaller work that positively impacts Rust. We are doing a lot of mentoring, reviews, and cleanup work, drive the meetings for the Rust Types Team and Rust Library Team, and respond to regressions and other critical issues.

Our work is only possible thanks to the funding and support from our clients and sponsors. If you'd like to support our work or if you have any input on how to make these updates more effective, please contact mara@hexcat.nl or lcnr@hexcat.nl.

Next-generation trait solver

Rust Project Goal: 2026/next-solver

This work is currently driven by lcnr.

For the new trait solver, our main focus has been improving the compile-time performance to avoid performance regressions and a redesign of the way we handle the normalization of aliases, e.g. associated types.

The most significant performance regression from the existing implementation in our benchmarks was wg-grammar. Over the course of the last month, we've improved its performance from being 18.7× slower than the old implementation to 1.6× slower via three different PRs. This is a more than 10× performance improvement!

We have designed and implemented a new normalization approach, fixing the largest remaining issue blocking stabilization. This was a huge effort requiring a new design and then implementing this over the course of the last month. See the last Project Goal update for more details.

With this we intend to do another crater run before enabling the next-generation trait solver on nightly by default for testing. This should hopefully uncover any remaining issues we're not aware off at which point we're then on the final stretch towards stabilization.

Assumptions on binders

Rust Project Goal: 2026/assumptions_on_binders

This work is currently driven by Boxy and lcnr.

Boxy has been driving this work and we have merged an initial implementation of this feature after roughly 6 months of work.

With this initial implementation merged, she is now focussing on a lot of minor issues and cleanups. We also need to add a special DSL for testing, as getting sufficient test coverage by writing actual Rust programs is not feasible. This is also a great place to onboard new contributors to this area of the compiler.

Implicit default auto traits

Rust Project Goals: 2026/scalable-vectors and 2026/move-trait

Work on Move and Forget is currently driven by lcnr while collaborating with David Wood and Rémy Rakic on the type system work needed for extern types and SVE.

Adding new implicit trait bounds has two main difficulties. We need to minimize the performance cost of adding additional trait bounds everywhere. Adding such new bounds without any additional performance work is unacceptable, regressing performance by up to 7400% in some stress-tests.

We want to add support for these traits on nightly. To do this without having fully resolved the performance concerns, we add fast-paths for crates which do not enable the corresponding features. There is already unstable support for MetaSized which was originally implemented by David Wood. We're close to also merging unstable support for Move and I expect that adding Forget afterwards will not be too challenging.

The next-generation trait solver alleviates some of the performance impact and also enables more optimization, so stabilizing Move and Forget is blocked on its stabilization.

Finally, we are actually working on targeted performance optimizations for these traits.


We also need to make sure adding these new bounds does not cause breaking changes and enable library authors to remove these implicitly added bounds over time. New types which implement e.g. Move can otherwise not be used with large parts of the ecosystem.

For this we have been working on changing minor edge cases of the type system to avoid breakage, e.g. candidate preference in the trait solver.

We are also working on adding new language features to enable users to migrate off these default bounds by creating a new Library Trait Evolution Initiative.

Similarly, lcnr has been collaborating with @lqd to support weakening errors involving generic parameters to a FCW, see their blogpost for a better overview of this feature.

Const generics

Rust Project Goal: 2026/const-generics

This work is currently driven by Boxy and Ashley.

We are currently splitting some of the more uncontroversial types out of feature(adt_const_params) to stabilize them separately while leaving more involved user defined types for later.

We are seperately doing a lot of implementation and design work for feature(generic_const_args). One of our near-term goals is to get this into a good enough state to remove support for feature(generic_const_exprs), as the implementation of that feature has fundamental issues while negatively impacting the work on other parts of the compiler.

There's more!

Not all our work is tracked by the above Rust Project Goals. Here are some of the highlights of our other work:

lcnr has been mentoring work on migrations necessary for the stabilization of the never type, two of the three have already been implemented and approved by the Types Team: #157820 #156047.

Boxy and Fallible are working on improvements to the rustc-dev-guide. Last month they have been focussing on explaining "well-formedness".

Jana continues to host the twice-weekly Compiler Team Office Hours where Rust compiler team members and contributors meet in a video call to discuss their work.

Mara has started the initial work for organizing the Rust All-Hands 2027, which will take place in the Netherlands again, as part of RustWeek 2027.

Nia is working on creating a roadmap and Rust Project Goal for binary size improvements.

See you next month for more updates!