NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4433 most downloaded on crates.io
Simple instrumentation profiler for games
Last release 6 months ago
18 Mar 2026
Ships unpredictably
gaps range from 9 days to 1.6 years
Most releases are documented
notes for 28 of 33 stable releases
2 versions withdrawn
withdrawn after publishing
6 years old
35 releases · first in 2020
One column per quarter.
PR#274 Fix trimming of unicode scope names
register_user_scopesare_scopes_on() (80% perf improvement)once_cell::Lazy with std::sync::LazyLock::{{closure}} in more cases from function namesPR#151 Optimize frame statistics collection.
Allow better usage of static strings in profile scopes. Breaking change! See PR for migration guide.
PR#175 Remove accidental ::{{closure}} suffix from all profile_function scopes.
::{{closure}} suffix from all profile_function scopes.PR#165 Faster profiling, add line numbers, better paths, and better function names
Accidentally introduced a breaking change in PR#165
PR#140 Remove imgui support for
PR#135 Allow picking lz4_flex and zstd compression by feature flag.
- PR#118 Updated zstd 0.12.3
zstd 0.12.3PR#117 Add function latest_frames to retrieve latest _n_ captured frames.
latest_frames to retrieve latest n captured frames.PR#123 Fix puffin build for non-web wasm environments.
puffin build for non-web wasm environments.PR#112 You can now compile and run puffin on the web if you enable the "web" feature.
puffin on the web if you enable the "web" feature.PR#102 Add a runtime setting on frameview to pack or not
PR#83 Add a runtime setting on frameview to pack or not
### Changed * PR#76 updated zstd to 0.11.1
zstd to 0.11.1Nothing published for this version
Fix compilation for wasm32-unknown-unknown.
wasm32-unknown-unknown.ztd v0.9 -> v0.10Make parking_lot an optional dependency.
parking_lot an optional dependency.In-memory compression of frames to use up less RAM. Enabled by the new feature "packing".
.puffin files in order to remove lz4_flex dependency.Remove deprecated macros profile_function_data and profile_scope_data.
StreamInfoRef to avoid memory allocations.profile_function_data and profile_scope_data.now_ns now returns nanoseconds since unix epoch.
now_ns now returns nanoseconds since unix epoch.### Changed * Rewrite scope merging. * Implement Hash on ThreadInfo.
Hash on ThreadInfo.API change: split out new FrameView and GlobalFrameView from GlobalProfiler.
FrameView and GlobalFrameView from GlobalProfiler.Remove profile scopes in serialization to avoid deadlock in puffin_viewer.
puffin_viewer.Switch from lz4 to zstd compression for 50% file size and bandwidth reduction.
Speed up GlobalProfiler::new_frame.
GlobalProfiler::new_frame.serialization feature flag enables exporting and importing .puffin files. This replaces the old with_serde feature flag.GlobalProfiler::add_sink for installing callbacks that are called each frame.Handle Windows, which uses backslash (\) as path separator.
\) as path separator.### Changed * Add opt-in serde support.
serde support.Remove stderr warning about empty frames.
GlobalProfiler now store recent history and the slowest frames.
GlobalProfiler now store recent history and the slowest frames.<!-- next-url --> [Unreleased]: https://github.com/EmbarkStudios/puffin/compare/puffin-0.20.0...HEAD [0.20.0]: https://github.com/EmbarkStudios/puffin/compare/puffin-0.19.1...puffin-0.20.0 [0.19.1]: https://github.com/EmbarkStudios/puffin/compare/0.19.0...puffin-0.19.1 [0.19.0]: https://github.com/EmbarkStudios/puffin/compare/0.18.1...0.19.0 [0.18.1]: https://github.com/EmbarkStudios/puffin/compare/0.18.0...0.18.1 [0.18.0]: https://github.com/EmbarkStudios/puffin/compare/0.17.1...0.18.0 [0.17.1]: https://github.com/EmbarkStudios/puffin/compare/0.17.0...0.17.1 [0.17.0]: https://github.com/EmbarkStudios/puffin/compare/0.16.0...0.17.0 [0.16.0]: https://github.com/EmbarkStudios/puffin/compare/0.15.0...0.16.0 [0.15.0]: https://github.com/EmbarkStudios/puffin/compare/0.14.3...0.15.0 [0.14.3]: https://github.com/EmbarkStudios/puffin/compare/0.14.2...0.14.3 [0.14.2]: https://github.com/EmbarkStudios/puffin/compare/0.14.1...0.14.2 [0.14.1]: https://github.com/EmbarkStudios/puffin/compare/0.14.0...0.14.1 [0.14.0]: https://github.com/EmbarkStudios/puffin/compare/0.13.2...0.14.0 [0.13.2]: https://github.com/EmbarkStudios/puffin/compare/0.13.0...0.13.2 [0.13.0]: https://github.com/EmbarkStudios/puffin/compare/0.12.1...0.13.0 [0.12.1]: https://github.com/EmbarkStudios/puffin/compare/0.12.0...0.12.1 [0.12.0]: https://github.com/EmbarkStudios/puffin/compare/0.11.0...0.12.0 [0.11.0]: https://github.com/EmbarkStudios/puffin/compare/0.10.1...0.11.0 [0.10.1]: https://github.com/EmbarkStudios/puffin/compare/0.10.0...0.10.1 [0.10.0]: https://github.com/EmbarkStudios/puffin/compare/0.9.0...0.10.0 [0.9.0]: https://github.com/EmbarkStudios/puffin/compare/0.8.1...0.9.0 [0.8.1]: https://github.com/EmbarkStudios/puffin/compare/0.8.0...0.8.1 [0.8.0]: https://github.com/EmbarkStudios/puffin/compare/0.7.0...0.8.0 [0.7.0]: https://github.com/EmbarkStudios/puffin/compare/0.6.0...0.7.0 [0.6.0]: https://github.com/EmbarkStudios/puffin/compare/0.5.1...0.6.0 [0.5.2]: https://github.com/EmbarkStudios/puffin/compare/0.5.1...0.5.2 [0.5.1]: https://github.com/EmbarkStudios/puffin/compare/0.5.0...0.5.1 [0.5.0]: https://github.com/EmbarkStudios/puffin/releases/tag/0.5.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →