NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4007 most downloaded on crates.io
Fancy diagnostic reporting library and protocol for us mere mortals who aren't compiler hackers.
Last release 1 months ago
10 Aug 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 18 of 19 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
19 releases · first in 2024
One column per month.
Reject out-of-bounds label offsets, scan the prefix with memchr2
Reuse span contents in render_context instead of re-reading
[breaking] Store source spans as u32 to shrink LabeledSpan
Cow<str> from code/help/note/url instead of boxing (#183)MietteSpanContents from SourceCode::read_span (#184)Forward SourceCode::name through Arc and Cow
insta for snapshot testing (#138)*(deps)* Update dependency rust to v1.91.0
notes for diagnostics (#124)Expose name method on SourceCode for getting the file name
name method on SourceCode for getting the file name (#103)*(deps)* Update dependency rust to v1.90.0
Correctly calculate emoji sequences width
<!-- generated by git-cliff -->
Add mut LabelSpan.set_span_offset
*(deps)* Lock file maintenance rust crates
<!-- generated by git-cliff --> The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
*(deps)* update dependency rust to v1.88.0
*(formatter)* output lint/col in json formatter
"Formatting argument out of range" in rustc nightly
report in color with env var CI and FORCE_COLOR
So it turns out I forgot to make snippets and other stuff forward through when you use .context() &co. This should be fixed now 😅
So it turns out I forgot to make snippets and other stuff forward through when
you use .context() &co. This should be fixed now 😅
Report (e4fdac38)<a name="2.1.1"></a>
This release overhauls the toplevel/main experience for miette. It adds a new Report type based on eyre::Report and overhauls various types to fit int
This release overhauls the toplevel/main experience for miette. It adds a
new Report type based on eyre::Report and overhauls various types to fit
into this model, as well as prepare for some future changes in
Rust that will make it possible to
integrate miette directly with crates like eyre instead of having to use
this specific Report.
On top of that, it includes a couple of nice new features, such as
#[diagnostic(transparent)], which should be super useful when wrapping other
diagnostics with your own types!
DiagnosticReport is now just Report, and is a different, eyre::Report-like type.DiagnosticResult is now just Result..into_diagnostic() now just transforms the error into a Report.DiagnosticReportPrinter has been replaced with ReportHandlerset_printer has been replaced by set_hookcode is now optional..into_diagnostic() no longer takes a code argument.#[diagnostic] is now optional when deriving Diagnostic.#[diagnostic(transparent,forward)] (#36) (53f5d6d1)T: Clone from Source implementation for Cow. (#42) (0427c9f9)<a name="1.1.0"></a>
Nothing published for this version
This is a (literally) small release. I noticed that the crate's size had increased significantly before I realized cargo was including the images/ fol
This is a (literally) small release. I noticed that the crate's size had
increased significantly before I realized cargo was including the images/
folder. This is not needed, as these images are just hosted on GitHub.
miette should be smaller now, I hope :)
<a name="1.0.0"></a>
...you know what? I'm just gonna tag 1.0.0, because I don't want sub-1.0 versions anymore, but the Cargo ecosystem buries pre-releases pretty thorough
...you know what? I'm just gonna tag 1.0.0, because I don't want sub-1.0 versions anymore, but the Cargo ecosystem buries pre-releases pretty thoroughly. Integers are cheap!
So here we are! We made it to 1.0, and with some really nice goodies to boot.
Most fun is the fact that the default printer now has clickabble url linking
support. A new Diagnostic::url() method has been added to the protocol that,
is used to figure out what URL to send folks to! This should work on most
"modern" terminals, but more thorough support checking will be done in the
future. And of course, the narrated reporter prints them out too.
I also took the time to completely redo how messages, labels, and filenames are handled in the system, and this is a pretty big change you might run into. Godspeed!
Last but not least, we got our first external contribution! Thank you to @martica for the bug fix!
Anyway, here's to 1.0, and to many more after that. Enjoy! :)
rgb style with nicer colors (3546dcec) - @martica<a name="1.0.0-beta.1"></a>
Your coding agent can read these notes before it upgrades. Set up the MCP server →