PackageTrack
Sign in Get early access

wayland-backend

Low-level bindings to the Wayland protocol

0.3.17 41M downloads/mo #1408 most downloaded on crates.io smithay/wayland-rs

What this package is like to depend on

Last release 9 days ago

14 Aug 2026

Ships fairly regularly

a new release about every 2 months

Most releases are documented

notes for 16 of 20 stable releases

4 versions withdrawn

withdrawn after publishing

5 years old

48 releases · first in 2022

6 releases in the last 12 months

see the full history below

Release timeline

48 releases · Jan 2022 to Aug 2026
2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 48
  1. 0.3.17 14 Aug 2026
    Release notes

    Backport from master.

    Bugfixes

    • client/sys: Make ReadEventsGuard impl Send+Sync, like rs backend
    Open source →
  2. 0.3.16 22 Jul 2026
    Release notes

    Backport from master.

    Bugfixes

    • client/sys: Fix deadlock if Backend is used in ObjectData::destroyed
    • client/sys: Fix some race conditions accessing udata in a thread while it is being set, or the proxy is being destroyed.
    Open source →
  3. 0.3.15 31 Mar 2026
    Release notes

    Bugfixes

    • server/rs: Fix potential deadlock destroying global udata
    • client/rs: Do not send request with destroyed object as argument
      • Matches client/sys
    Open source →
  4. 0.3.14 05 Mar 2026
    Release notes
    • client: Put ObjectId::display_ptr behind libwayland_client_1_23 feature
      • Breaking change to fix issue with release
    Open source →
  5. 0.3.13 05 Mar 2026 withdrawn
    Release notes

    Additions

    • client: Added display_ptr method to ObjectId
    • server: Addded Handle::global_name
      • Requires libwayland_server_1_22 feature
    • client: Added set_max_buffer_size method
    • server: Added set_default_max_buffer_size and set_client_max_buffer_size methods
    Open source →
  6. 0.3.12 30 Dec 2025
    Release notes

    Bugfixes

    • backend/server/rs: Send protocol error if method requires newer protocol version

    Changes

    • backend/client/rs: Unbounded buffering, matching libwayland behavior

    Additions

    • backend: Added a destroy_object method
    • backend/server: Remove registry from known_registries if destructor is called
    Open source →
  7. 0.3.11 28 Jul 2025

    Nothing published for this version

  8. 0.3.10 29 Apr 2025
    Release notes

    Bugfixes

    • Freeze when dispatching within the queue dispatch on the same thread with system lib
    Open source →
  9. 0.3.9 28 Apr 2025 withdrawn
    Release notes

    Bugfixes

    • backend/sys: Prevent send_request being called in parallel with dispatch_pending

    Additions

    • backend/client_sys: ReadEventsGuard::read_without_dispatch for just reading the events without dispatch
    Open source →
  10. 0.3.8 31 Jan 2025
    Release notes

    Bugfixes

    • backend/rs: Prevent a potential deadlock during client cleanup
    Open source →
  11. 0.3.7 04 Sep 2024
    Release notes

    Bugfixes

    • backend/sys: Fix importing external objects with Backend::manage_object by associating the proxy with the correct event queue
    Open source →
  12. 0.3.6 16 Jul 2024
    Release notes

    Bugfixes

    • backend/rs: server: Fixed potential deadlock on object destruction
    Open source →
  13. 0.3.5 04 Jul 2024
    Release notes

    Additions

    • Backend::manage_object for handling foreign proxies with the sys backend

    Bugfixes

    • backend/rs: server: Fixed potential deadlock caused by dead clients
    • backend/sys: client dispatching now always uses distinct event queue
    Open source →
  14. 0.3.4 31 May 2024
    Release notes

    Additions

    • Add rwh_06 feature for raw-window-handle 0.6

    Bugfixes

    • backend/rs: WAYLAND_DEBUG now displays fixed as decimal, not integer.
      • Matches libwayland
    Open source →
  15. 0.3.3 29 Jan 2024
    Release notes

    Additions

    • client: Implement Eq for Backend

    Bugfixes

    • backend/sys: Fix error/segfault if object argument is no longer alive
    • backend/rs: Retry send/recv on EINTR
      • Matches the behavior of libwayland
    Open source →
  16. 0.3.2 25 Sep 2023
    Release notes

    Bugfixes

    • server/sys: Fix an issue where the backend could deadlock in some cases when sending an event that destroys an object.
    Open source →
  17. 0.3.1 19 Sep 2023
    Release notes

    Additions

    • client: Add Backend::poll_fd to return fd for polling
    Open source →
  18. 0.3.0 02 Sep 2023
    Release notes

    Breaking change

    • MSRV bumped to 1.65
    • io-lifetimes is no longer a (public) dependency
    • The Backend::prepare_read() method now returns None if the inner queue of the backend needs to be dispatched using Backend::dispatch_inner_queue(), instead of trying to dispatch it by itself. This can only happen when using the sys backend, and allows the crate to behave properly when multiple threads try to read the socket using the libwayland API.
    • server: ObjectData::destroyed function signature has changed to pass the Handle and self as Arc<Self>.

    Additions

    • Add flush method to server Handle.

    Bugfixes

    • Setting WAYLAND_DEBUG server-side now properly prints incoming requests
    Open source →
  19. 0.2.0 13 Jul 2023
    Release notes

    Breaking changes

    • Update wayland-sys to 0.31
    Open source →
  20. 0.1.3 13 Jul 2023 withdrawn

    Nothing published for this version

  21. 0.1.2 19 Apr 2023

    Nothing published for this version

  22. 0.1.1 16 Feb 2023

    Nothing published for this version

  23. 0.1.0 27 Dec 2022

    Nothing published for this version

  24. 0.1.0-beta.15 20 Dec 2022 pre-release

    Nothing published for this version

  25. 0.1.0-beta.14 06 Dec 2022 pre-release
    Release notes

    Bugfixes

    • In rust backend, retry read if message is incomplete, instead of Malformed error.
    Open source →
  26. 0.1.0-beta.13 04 Nov 2022 pre-release

    Nothing published for this version

  27. 0.1.0-beta.12 13 Oct 2022 pre-release

    Nothing published for this version

  28. 0.1.0-beta.11 13 Oct 2022 pre-release withdrawn

    Nothing published for this version

  29. 0.1.0-beta.10 16 Sep 2022 pre-release
    Release notes

    Breaking changes

    • Message is now also generic on the Fd type, and io_lifetimes::OwnedFd is used instead of RawFd when appropriate.

    Bugfixes

    • The rust backend no longer ever does a blocking flush.
    • Server-side sys backend is now able to track liveness of external objects.
    Open source →
  30. 0.1.0-beta.9 31 Aug 2022 pre-release

    Nothing published for this version

  31. 0.1.0-beta.8 15 Jul 2022 pre-release
    Release notes

    Breaking changes

    • all backends: creating null ObjectId is now done through the ObjectId::null() method, and the null_id() methods on the backends are removed.
    • Argument::Str now contains an Option, which is correctly mapped to nullable strings. This fixes segfaults that previously occurred dereferencing the null pointer in the system backend.
    • server: disable_global and remove_global now require the state type parameter, like create_global. This is required for compatibility with libwayland 1.21.
    • ArgumentType::Array and ArgumentType::NewId no longer take a AllowNull and are never nullable.

    Additions

    • client: introduce Backend::dispatch_inner_queue() meant for ensuring a system backend in guest mode can still process events event it does not control reading the socket.
    • introduce the log cargo feature to control logging behavior
    • A dummy implementation of ClientData is now provided through () and all trait methods are optional
    Open source →
  32. 0.1.0-beta.7 04 Jul 2022 pre-release
    Release notes

    Bugfixes

    • backend/sys: the inner lock is no longer held when destructors are invoked
    • backend/sys: sys backend does not abort process when Backend::disable_global is invoked more than once
    Open source →
  33. 0.1.0-beta.6 25 Jun 2022 pre-release
    Release notes

    Additions

    • client: ObjectId now implements the Hash trait
    • server: ObjectId, ClientId and GlobalId now implement the Hash trait

    Bugfixes

    • backend/sys: the inner lock is no longer held when destructors are invoked
    Open source →
  34. 0.1.0-beta.5 20 Jun 2022 pre-release
    Release notes

    Additions

    • client/sys: introduce Backend::from_foreign_display

    Bugfixes

    • The server backend now correctly associates interfaces with its object arguments when parsing messages with nullable object arguments.
    Open source →
  35. 0.1.0-beta.4 08 Jun 2022 pre-release
    Release notes

    Bugfixes

    • server-rs: the inner lock is no longer help when destructors are invoked
    Open source →
  36. 0.1.0-beta.3 27 May 2022 pre-release
    Release notes

    Bugfixes

    • server-sys: Skip unmanaged globals in the global filter (caused a segfault)
    Open source →
  37. 0.1.0-beta.2 25 May 2022 pre-release
    Release notes

    Breaking changes

    • server-sys: move display_ptr() from Backend to Handle.
    Open source →
  38. 0.1.0-beta.1 23 May 2022 pre-release
    Release notes

    Breaking changes

    • Both client and server APIs have been profoundly reworked. The backend now has internal locking mechanism allowing handles to it to be cloned and shared accross the application.

    Bugfixes

    • Fix a crash when exactly filling the internal buffers.
    Open source →
  39. 0.1.0-alpha9 29 Mar 2022 pre-release

    Nothing published for this version

  40. 0.1.0-alpha8 21 Mar 2022 pre-release

    Nothing published for this version

  41. 0.1.0-alpha7 21 Mar 2022 pre-release
    Release notes

    Bugfixes

    • Client-side with the rust backend, wl_display events are now properly printed with other events when WAYLAND_DEBUG=1 is set.
    Open source →
  42. 0.1.0-alpha6 07 Mar 2022 pre-release
    Release notes

    Changes

    • Server-side, request callbacks are now allowed to omit providing an ObjectData for newly created objects if they triggered a protocol error

    Bugfixes

    • Fix display leaks on system server backend.
    • Fix a panic when trying to send a message with a null object argument followed by a non-null object argument
    • Fix various memory leaks
    Open source →
  43. 0.1.0-alpha5 04 Feb 2022 pre-release
    Release notes
    • Expose wl_display pointer on system server backend
    Open source →
  44. 0.1.0-alpha4 04 Feb 2022 pre-release
    Release notes

    Breaking changes

    • Server-side ObjectData::destroyed() now has access to the &mut D server-wide data.
    Open source →
  45. 0.1.0-alpha3 23 Jan 2022 pre-release
    Release notes

    Additions

    • Introduce WEnum::into_result as a convenience method.
    Open source →
  46. 0.1.0-alpha2 07 Jan 2022 pre-release

    Nothing published for this version

  47. 0.1.0-alpha10 07 Apr 2022 pre-release

    Nothing published for this version

  48. 0.1.0-alpha1 01 Jan 2022 pre-release
    Release notes

    Initial pre-release of the crate.

    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