softbuffer
Cross-platform software buffer
0.4.8
21M downloads/mo
#2058 most downloaded on crates.io
rust-windowing/softbuffer
What this package is like to depend on
Last release 8 months ago
13 Dec 2025
Ships unpredictably
gaps range from 1 weeks to 1.3 years
Nearly every release is documented
notes for 18 of 18 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
18 releases · first in 2022
2 releases in the last 12 months
see the full history below
Release timeline
18 releases · Jan 2022 to Dec 2025
2023
2024
2025
2026
Releases
latest 18-
0.4.813 Dec 2025 -
0.4.713 Dec 2025Release notes
Open source →- Added support for Android using the
ndkcrate. - Added support for
wasm64-*targets. - Improved examples.
- Added
Buffer::width()andBuffer::height()getters. Contextnow implementsClone.Context,SurfaceandBuffernow implementDebug.- Bump MSRV to Rust 1.71.
- Replace
logwithtracing. - Remove
cfg_aliasesdependency. - Update to
objc20.6,objc2-*0.3,drm0.14,rustix1.0 andwindows-sys0.61.
Release notes
Open source →- Added support for Android using the
ndkcrate. - Added support for
wasm64-*targets. - Improved examples.
- Added
Buffer::width()andBuffer::height()getters. Contextnow implementsClone.Context,SurfaceandBuffernow implementDebug.- Bump MSRV to Rust 1.71.
- Replace
logwithtracing. - Remove
cfg_aliasesdependency. - Update to
objc20.6,objc2-*0.3,drm0.14,rustix1.0 andwindows-sys0.61.
- Added support for Android using the
-
0.4.607 Sep 2024Release notes
Open source →- Added support for iOS, tvOS, watchOS and visionOS (UIKit).
- Redo the way surfaces work on macOS to work directly with layers, which will
allow initializing directly from aCALayerin the future. - Update to
windows-sys0.59.0 andcore-graphicsv0.24.0. - Add an MSRV policy.
Release notes
Open source →- Added support for iOS, tvOS, watchOS and visionOS (UIKit).
- Redo the way surfaces work on macOS to work directly with layers, which will
allow initializing directly from a
CALayerin the future. - Update to
windows-sys0.59.0 andcore-graphicsv0.24.0. - Add an MSRV policy.
-
0.4.524 Jun 2024Release notes
Open source →- Make the
wayland-sysdependency optional. (#223) - Allow for transparent visuals on X11. This technically doesn't work, but
otherwise
winitusers might get crashes. (#226)
- Make the
-
0.4.412 Jun 2024 -
0.4.319 May 2024Release notes
Open source →- Use objc2 as the backend for the CoreGraphics implementation. (#210)
- Update drm-rs to version v0.12.0. (#209)
- Bump MSRV to 1.70.0 to be in line with Winit.
-
0.4.216 Apr 2024Release notes
Open source →- Add the ability to get the underlying window handle. (#193)
- Rework the backend to use a trait-based interface. (#196)
- On Orbital, fix window resize. (#200)
- Fix
bytes()for KMS/DRM implementation. (#203)
-
0.4.111 Jan 2024Release notes
Open source →- On MacOS, Fix double-free of
NSWindow. (#180) - Update
drmto 0.11 (#178)- Fixes build on architectures where drm-rs did not have generated bindings.
- Update x11rb to v0.13 (#183)
- On Web, add support for more
RawWindowHandlevariants. (#188) - On Wayland, fix buffer age. (#191)
- On MacOS, Fix double-free of
-
0.4.014 Nov 2023Release notes
Open source →- Breaking: Port to use
raw-window-handlev0.6.(#132) - Enable creating X11 displays without an existing connection. (#171)
- Breaking: Port to use
-
0.3.411 Jan 2024 -
0.3.301 Nov 2023 -
0.3.221 Oct 2023Release notes
Open source →- Document that
present_with_damageis supported on web platforms. (#152) - Replace our usage of
nixwithrustix. This enables this crate to run withoutlibc. (#164) - Use POSIX shared memory instead of Sys-V shared memory for the X11 backend. (#165)
- Bump version for the following dependencies:
memmap2(#156)redox_syscall(#161)drm(#163)
- Document that
-
0.3.109 Sep 2023Release notes
Open source →- On X11, fix the length of the returned buffer when using the wire-transferred buffer.
- On Web, fix incorrect starting coordinates when handling buffer damage.
- On Redox, use
MAP_SHARED; fixing behavior with latest Orbital. - Error instead of segfault on macOS if size isn't set.
- Add
OffscreenCanvassupport in web backend. - Add DRM/KMS backend, for running on tty without X/Wayland.
- Make
fetcherror on Windows, where it wasn't working correctly. - Implement
Errortrait forSoftBufferError. - Dependency updates.
-
0.3.004 Jun 2023Release notes
Open source →- On MacOS, the contents scale is updated when set_buffer() is called, to adapt when the window is on a new screen (#68).
- Breaking: Split the
GraphicsContexttype intoContextandSurface(#64). - On Web, cache the document in the
Contexttype (#66). - Breaking: Introduce a new "owned buffer" for no-copy presentation (#65).
- Enable support for multi-threaded WASM (#77).
- Fix buffer resizing on X11 (#69).
- Add a set of functions for handling buffer damage (#99).
- Add a
fetch()function for getting the window contents (#104). - Bump MSRV to 1.64 (#81).
-
0.2.101 Jun 2023 -
0.2.006 Jan 2023Release notes
Open source →- Add support for Redox/Orbital.
- Add support for BSD distributions.
- Ported Windows backend from
winapitowindows-sys. - Breaking: Take a reference to a window instead of owning the window.
- Add a
from_rawfunction for directly using raw handles. - Improvements for Wayland support.
- Support for HiDPI on macOS.
- Breaking: Add feature flags for
x11andwaylandbackends. - Use static dispatch instead of dynamic dispatch for the backends.
- Add
libxcbsupport to the X11 backend. - Use X11 MIT-SHM extension, if available.
-
0.1.122 May 2022Release notes
Open source →- Added WASM support (Thanks to Liamolucko!)
- CALayer is now used for Mac OS backend, which is more flexible about what happens in the windowing library (Thanks to lunixbochs!)
-
0.1.020 Jan 2022Release notes
Open source →Initial published version with support for Linux (X11 and Wayland), Mac OS (but buggy), and Windows.