PackageTrack
Sign in Get early access

yew-macro

A framework for making client-side single-page apps

0.23.0 4.7M downloads/mo #4676 most downloaded on crates.io yewstack/yew

What this package is like to depend on

Last release 5 months ago

10 Mar 2026

Release timing varies

gaps range from 1 weeks to 2.2 years

Nearly every release is documented

notes for 20 of 21 stable releases

4 versions withdrawn

withdrawn after publishing

7 years old

25 releases · first in 2019

3 releases in the last 12 months

see the full history below

Release timeline

25 releases · Jul 2019 to Mar 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 25
  1. 0.23.0 10 Mar 2026
    Release notes

    bumping from 0.22 should require no code changes for most users.

    🚨 Breaking changes

    • Performance: use_reducer now skips re-rendering for the same Rc. [@Pascal-So, #3945]
      NOTE: Whether this is breaking is arguable. It merely breaks the promise that a dispatch will always cause a re-render. For code that wishes to force re-render, use_force_update helps. Please refer to the migration guide for details.

    ⚡️ Features

    • &str and String can now be used for props of type Option<Html>. [@Casheeew, #4020]
    • Added a scheduler::flush function to reliably finish rendering. Useful in testing as a replacement for timeouts. [@Madoshakalaka, #4044]

    🛠 Fixes

    • No more broken child re-renders while setting parents' states. [@Madoshakalaka, #4060]
    • Ergonomics: Bare Nones are now allowed for Option<T> props in the html! macro. [@Madoshakalaka, #4021]

    ⚙️ Improvements

    • Yew's scheduler now yields to the main thread from time to time. This fix will make the web page more responsive and reduce warnings about long tasks in the console. [@Madoshakalaka, #4033]
    Open source →
    Release notes

    bumping from 0.22 should require no code changes for most users.

    🚨 Breaking changes

    • Performance: use_reducer now skips re-rendering for the same Rc. [@Pascal Sommer, #3945] NOTE: Whether this is breaking is arguable. It merely breaks the promise that a dispatch will always cause a re-render. For code that wishes to force re-render, use_force_update helps. Please refer to the migration guide for details.

    ⚡️ Features

    • &str and String can now be used for props of type Option<Html>. [@Cashew, #4020]
    • Added a scheduler::flush function to reliably finish rendering. Useful in testing as a replacement for timeouts. [@Siyuan Yan, #4044]

    🛠 Fixes

    • No more broken child re-renders while setting parents' states. [@Siyuan Yan, #4060]
    • Ergonomics: Bare Nones are now allowed for Option<T> props in the html! macro. [@Siyuan Yan, #4021]

    ⚙️ Improvements

    • Yew's scheduler now yields to the main thread from time to time. This fix will make the web page more responsive and reduce warnings about long tasks in the console. [@Siyuan Yan, #4033]
    Open source →
  2. 0.22.1 28 Feb 2026 withdrawn
    Release notes

    🛠 Fixes

    • Domslot hydration panic caused by suspension [@Siyuan Yan, #4003]
    • Some Option<T> and &T types can be used as children again. e.g. Option<AttrValue> [@Siyuan Yan, #4005]
    • Custom hooks now compiles in edition 2024. [@Siyuan Yan, #3992]
    • No more stale states in callbacks when multiple events fire rapidly. [@Siyuan Yan, #3988]
    • Fixed invisible svg issue on Chrome when included with from_html_unchecked [@Jason Heard, #3970]
    • Fixed documentation typo in introduction.mdx. [@devfbe, #3417]

    ⚙️ Improvements

    • Improved SSR example with meta rendering. [@Siyuan Yan, #4011]
    • Replaced once_cell with std equivalents (LazyLock, OnceLock). [@Siyuan Yan, #4010]
    • Updated rust dependencies.
    Open source →
  3. 0.22.0 08 Dec 2025
    Release notes

    ✨ yew 0.22.0

    🚨 Breaking changes

    ⚡️ Features

    🛠 Fixes

    ⚙️ Improvements

    📝 Documentation

    ✨ yew-router 0.19.0

    ⚡️ Features

    🚨 Breaking changes

    ✨ yew-agent 0.4.0

    🛠 Fixes

    • Fix calls of the disconnected method of on every render. [@deftsp, #3435]

    ⚡️ Features

    🚨 Breaking changes

    Open source →
    Release notes

    🚨 Breaking changes

    ⚡️ Features

    🛠 Fixes

    ⚙️ Improvements

    📝 Documentation

    Open source →
  4. 0.21.0 29 Sep 2023
    Release notes

    What's Changed

    Note truncated.

    Open source →
    Release notes

    Users can follow the migration guide to migrate from 0.20.0 to 0.21.0.

    🛠 Fixes

    • Fix rust-analyzer non_camel_case_types warning. [[@Sean Bruton](https://github.com/Sean Bruton), #3388]
    • Fix incorrect text escaping during SSR. [[@Tim Kurdov](https://github.com/Tim Kurdov), #3381]
    • Fix top-level reconciliation in portals. [@WorldSEnder, #3020]
    • Fix clippy::let_unit_value lint in propless components. [@WorldSEnder, #2970]

    ⚡️ Features

    • Updated the docs of set_event_bubbling. [[@Tim Kurdov](https://github.com/Tim Kurdov), #3391]
    • feat: support arrays for Classes/classes!(). [@Pouriya, #3393]
    • Mark VNode as #[must_use]. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3387]
    • Add IntoPropValue implementation to convert from Cows to AttrValue. [[@Tim Kurdov](https://github.com/Tim Kurdov), #3346]
    • Remove compatibility code before 1.64. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3379]
    • Keep checked attribute for elements without special handling. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #3373]
    • feat: implement hydration for vraw. [[@Dillen Meijboom](https://github.com/Dillen Meijboom), #3245]
    • Add webkitdirectory to the boolean attributes list. [[@Julius Lungys](https://github.com/Julius Lungys), #3214]
    • Incremental performance improvements to element creation. [[@Greg Johnston](https://github.com/Greg Johnston), #3169]
    • Make VList's children Rc'ed. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3050]
    • Update dependencies. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #3171]
    • Pass string types to Html props. [[@Cecile Tonglet](https://github.com/Cecile Tonglet), #2872]
    • Implement an internal DomSlot for positioning instead of NodeRef. [@WorldSEnder, #3048]
    • Prefer pop_first if it is available. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3084]
    • Add method map() on Children to wrap easily. [[@Cecile Tonglet](https://github.com/Cecile Tonglet), #3039]
    • Reentrant event listeners. [@WorldSEnder, #3037]
    • Add impl IntoIterator on &Classes. [[@Cecile Tonglet](https://github.com/Cecile Tonglet), #3038]
    • Assert there are no circular references. [@WorldSEnder, #3025]

    🚨 Breaking changes

    • Remove special handling of struct fields of type Option in derive(Properties). [[@Tim Kurdov](https://github.com/Tim Kurdov), #3398]
    • Agent v2. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #2773]
    • Update signature of use_prepared_state/use_transitive_state. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #3376]
    • Make signature of use_future_with consistent. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #3372]
    • Allow any type to be used as Children (take 2). [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3289]
    • Enable PartialEq for all virtual dom types. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3206]
    • Pass hook dependencies as the first function argument. [[@Arniu Tseng](https://github.com/Arniu Tseng), #2861]
    • Make Classes cheap to clone. [[@Cecile Tonglet](https://github.com/Cecile Tonglet), #3021]
    Open source →
  5. 0.20.0 25 Nov 2022
    Release notes

    Yew pinned to 0.23 now.

    🛠 Fixes

    • '/' is no longer wrongly encoded in wildcard route segments. [@Madoshakalaka, #4056]
    • Fixed a url corruption issue causing redirection to /basename//basename resulting in a 404. [@Madoshakalaka, #4030]
    Open source →
    Release notes

    Yew pinned to 0.23 now.

    🛠 Fixes

    • '/' is no longer wrongly encoded in wildcard route segments. [@Siyuan Yan, #4056]
    • Fixed a url corruption issue causing redirection to /basename//basename resulting in a 404. [@Siyuan Yan, #4030]
    Open source →
  6. 0.19.3 11 Dec 2021

    Nothing published for this version

  7. 0.19.2 11 Dec 2021 withdrawn

    Nothing published for this version

  8. 0.19.1 07 Dec 2021 withdrawn

    Nothing published for this version

  9. 0.19.0 06 Dec 2021 withdrawn
    Release notes

    ⚡️ Features

    🚨 Breaking changes

    Open source →
  10. 0.18.0 15 May 2021
    Release notes

    ⚡️ Features

    • Update dependencies. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #3171]
    • Only handle "normal" clicks on <Link>s. [[@Kai Salmon](https://github.com/Kai Salmon), #3056]

    🚨 Breaking changes

    • Encode Path Parameters in yew-router. [[@Jedd Dryden](https://github.com/Jedd Dryden), #3187]
    • Pass hook dependencies as the first function argument. [[@Arniu Tseng](https://github.com/Arniu Tseng), #2861]
    Open source →
  11. 0.17.0 29 Jun 2020
    Release notes
    • 🛠 Fixes
      • Fix basename handling in router. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #2297]
    • ⚡️ Features
      • Simple NodeRef passing to <Link> for yew-router. [[@Athan Clark](https://github.com/Athan Clark), #2877]
      • Make Switch to accept a closure as render function directly. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #2659]
      • #[cfg(feature = "render")] and yew::Renderer. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #2498]
      • Includes query parameters in rendered Link component. [[@Yuki Kodama](https://github.com/Yuki Kodama), #2464]
      • Update to edition 2021. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #2354]
      • Support named wildcards when deriving Routable.. [[@Jonathan Bailey](https://github.com/Jonathan Bailey), #2345]
      • Add HashRouter, basename and use gloo-history. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #2239]
    Open source →
  12. 0.16.1 14 May 2020
    Release notes
    • 🛠 Fixes
      • Worker script is now loaded from absolute path. [[@domdir], #1175]
      • Improved html! macro error messages. [[@teymour-aldridge], #1192], [[@kaoet], #1219]
    Open source →
  13. 0.16.0 09 May 2020
    Release notes
    Open source →
  14. 0.15.0 25 Apr 2020
    Release notes
    • ⚡️ Features
      • None
    • 🛠 Fixes
      • None
    • 🚨 Breaking changes
      • RouterButton now prevents default events per default @TheNeikos
    Open source →
  15. 0.14.1 04 Apr 2020
    Release notes
    • 🛠 Fixes
      • Connected message was only called for first bridge creation. [[@nicklaswj], #1029]
    Open source →
  16. 0.14.0 14 Mar 2020
    Release notes
    • ⚡️ Features
      • None
    • 🛠 Fixes
      • None
    • 🚨 Breaking changes
      • The unit_state module has been removed.
      • Bump yew version to 0.17.
    Open source →
  17. 0.13.0 01 Mar 2020
    Release notes
    • 🚨 Breaking changes
      • Bump yew version to 0.16.
    Open source →
  18. 0.12.0 16 Feb 2020
    Release notes
    • 🚨 Breaking changes
      • Bump yew version to 0.15.
    • Extraneous

      • Remove guide example.
    Open source →
  19. 0.11.0 06 Jan 2020
    Release notes
    • 🛠 Fixes
      • Fixed docs.rs document generation [254] (Thanks @jetli)
      • Fixed clippy for web_sys target [249] (Thanks @jetli)
    Open source →
  20. 0.10.0 11 Nov 2019
    Release notes
    • Bumped version of Yew from v0.12.0 to v0.13.0
    • This brings support for web_sys, which necessitates specifying either "web_sys" or "std_web" as a feature. (Thanks @tarkah)
    Open source →
  21. 0.9.2 13 Oct 2019
    Release notes
    • 🛠 Fixes
      • Fix yew-macro dependency version
    Open source →
  22. 0.9.1 13 Oct 2019
    Release notes

    Happy Canadian Thanksgiving! 🦃

    • ⚡️ Features
      • Implemented Default trait for VNode so that unwrap_or_default can be called on Option<Html<Self>>. [[@hgzimmerman], #672]
      • Implemented PartialEq trait for Classes so that is more ergonomic to use Classes type in component props. [[@hgzimmerman], #680]
      • Updated wasm-bindgen dependency to 0.2.50. Please update your wasm-bindgen-cli tool by running cargo install --force --version 0.2.50 -- wasm-bindgen-cli. [[@jstarry], #695]
    • 🛠 Fixes
      • Fixed issue where text nodes were sometimes rendered out of order. [[@jstarry], #697]
      • Fixed regression introduced in 0.9.0 that prevented tag attributes from updating properly. [[@jstarry], #698]
      • Fixed emscripten builds by pinning the version for the ryu downstream dependency. [[@jstarry], #703]
      • Updated stdweb to 0.4.20 which fixed emscripten builds and unblocked updating wasm-bindgen to 0.2.50. [[@ctaggart], [@jstarry], #683, #694]
      • Cleaned up build warnings for missing dyn keywords. [[@benreyn], #687]
    Open source →
  23. 0.9.0 27 Sep 2019
    Release notes
    • ⚡️ Features
      • Improved error handling in macro. [233] @jplatte
    • 🛠 Fixes
      • Fix RouterAnchor href [228] @jetli
      • Undo non-passive state for prevent_default [240] @jetli
    Open source →
  24. 0.8.0 10 Aug 2019
    Release notes
    • ⚡️ Features
      • Use a default type parameter of () to specify state-related type parameters instead of the old macro-based solution. [157]
      • Remove need for JsSerializable bound on the state parameter used for storing extra data in the history API.[185]
      • RouterLink and RouterButton now support having children Html. This deprecates the text prop. [192]
      • Fragment routing is now easily implementable by using an adapter because parser rules for the routing syntax were relaxed. [195] [211]
      • Support using this library only with the Switch derive, allowing it to run in non-web contexts. [199]
    • 🚨 Breaking changes
      • If you were using default-features = false, you will have to now specify features = ["service"] to get the same behavior as before. [199]
      • RouterAnchor and RouterButton now have props that take a route: SW where SW: Switch prop instead of a link: String and they now have a mandatory type parameter that specifies this SW. [207]
      • Route's state field now holds a T instead of an Option<T>. [205]
      • Using default type parameters to specify the state typ instead of the macro that generated a module (unit_state) means that any imports from that module should now be replaced with the path that the type normally has in the project. [157]
    • Inconsequential

      • Change state related type parameters from T to STATE. [208]
    Open source →
  25. 0.7.0 19 Jul 2019
    Release notes
    • ⚡️ Features
      • Redirects that happen in the Router component actually change the url in the browser [171]
      • Allow parsing (almost) any character after a # is encountered in matcher strings. This enables this library to be used as a fragment router. [150]
    • 🛠 Fixes
      • Allow ! to appear after {...} in matcher strings. [148]
      • Matcher strings can now start with &. [168]
    • 🚨 Breaking changes
      • Upgrade to Yew 0.10.0
      • Switch components now need to implement Clone in order to be used with the Router [171]
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive