oxc-miette-derive
Derive macros for miette. Like `thiserror` for Diagnostics.
3.0.1
5.3M downloads/mo
#4407 most downloaded on crates.io
oxc-project/oxc-miette
What this package is like to depend on
Last release 1 months ago
19 Jul 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 15 of 16 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
16 releases · first in 2024
7 releases in the last 12 months
see the full history below
Release timeline
16 releases · Oct 2024 to Jul 2026Releases
latest 16-
3.0.119 Jul 2026Release notes
Open source →Performance
- Reuse span contents in render_context instead of re-reading (#212)
- Speed up read_span with bulk memchr line scanning (#211)
Documentation
Refactor
- Move long std/core paths to top-level imports (#196)
Chore
- Bump cargo-shear to 1.13.1 (#200)
- Configure clippy exported api lint (#203)
- Standardize rustfmt config (#205)
- (deps) Update dependency rust to v1.96.1 (#207)
- (deps) Update oxc-project/security-action action to v1.0.8 (#201)
- (deps) Update rust crates (#199)
- (deps) Update rust crates (#209)
- (deps) Update rust to v1.97.0 (#210)
- (deps) Update dependency rust to v1.97.1 (#208)
CI
- Use latest rust toolchain, drop stale 1.70.0 matrix (#198)
- Add crates environment to release workflow
-
3.0.008 Jun 2026Release notes
Open source →Performance
- [breaking] Store source spans as u32 to shrink LabeledSpan (#180)
- Store diagnostic labels inline to avoid allocations (#182)
- Return
Cow<str>from code/help/note/url instead of boxing (#183) - Return concrete
MietteSpanContentsfromSourceCode::read_span(#184) - Return inline Related from Diagnostic::related (#185)
- Avoid allocating a styled label just to test its presence (#186)
- Write styled gutter/underline glyphs directly instead of allocating (#187)
- Avoid an intermediate String when building FancySpan labels (#188)
- Borrow name/language in MietteSpanContents instead of cloning (#190)
- Style FancySpan label parts once at construction (#191)
- Revert LabeledSpan.label to String to avoid a realloc per label (#192)
- Borrow source lines in the renderer instead of allocating a String each (#193)
- Avoid cloning LabeledSpans when building snippet contexts (#194)
Refactor
- Import Cow at the top instead of fully-qualifying inline (#195)
Chore
- (deps) Update github-actions (#164)
- (deps) Update rust crates (#165)
- (deps) Update taiki-e/install-action action to v2.75.7 (#166)
- (deps) Update dependency rust to v1.95.0 (#168)
- (deps) Update github-actions (#170)
- (deps) Update oxc-project/security-action action to v1.0.2 (#171)
- (deps) Update oxc-project/security-action action to v1.0.3 (#172)
- (deps) Update oxc-project/security-action action to v1.0.5 (#173)
- Use ubuntu-latest for security workflow (#175)
- (deps) Update actions/create-github-app-token action to v3.2.0 (#176)
- (deps) Update rust crate serde_json to v1.0.150 (#177)
- (deps) Update dependency rust to v1.96.0 (#178)
- (deps) Update github actions (#179)
- (deps) Update rust crates to v1.13.3 (#181)
CI
-
2.7.130 Mar 2026Release notes
Open source →Bug Fixes
- Forward SourceCode::name through Arc and Cow (#162)
Testing
- Implement
instafor snapshot testing (#138)
Chore
- (deps) Update taiki-e/install-action action to v2.65.13 (#128)
- (deps) Update github-actions (#130)
- (deps) Update rust crates (#131)
- (deps) Update github-actions (#133)
- (deps) Update rust crate thiserror to v2.0.18 (#134)
- (deps) Update dependency rust to v1.93.0 (#135)
- (deps) Update github-actions (#136)
- (deps) Update rust crates to v1.0.106 (#137)
- (deps) Update rust crates (#139)
- (deps) Update github-actions (#140)
- (deps) Update github-actions (#142)
- (deps) Update rust crates (#143)
- (deps) Update dependency rust to v1.93.1 (#144)
- (deps) Update github-actions (#145)
- (deps) Update rust crates (#146)
- (deps) Update rust crate syn to v2.0.116 (#147)
- (deps) Update github-actions (#148)
- (deps) Update rust crate syn to v2.0.117 (#149)
- (deps) Update rust crate owo-colors to v4.3.0 (#150)
- (deps) Update github-actions (#151)
- (deps) Update dependency rust to v1.94.0 (#152)
- (deps) Update github-actions (#153)
- (deps) Update rust crate quote to v1.0.45 (#154)
- (deps) Update taiki-e/install-action action to v2.68.25 (#155)
- (deps) Update github-actions (#156)
- Apply cargo shear --fix (#157)
- (deps) Update github-actions (#158)
- (deps) Update dependency rust to v1.94.1 (#159)
- (deps) Update github-actions (#160)
- (deps) Update rust crates (#161)
-
2.7.004 Jan 2026Release notes
Open source →Features
- Support
notes for diagnostics (#124)
Chore
- (deps) Update dependency rust to v1.91.0 (#104)
- (deps) Update github-actions (#106)
- (deps) Lock file maintenance rust crates (#107)
- (deps) Update taiki-e/install-action action to v2.62.49 (#109)
- (deps) Lock file maintenance (#110)
- (deps) Update dependency rust to v1.91.1 (#111)
- (deps) Update github-actions (#112)
- (deps) Update rust crate syn to v2.0.110 (#108)
- (deps) Update github-actions (#113)
- (deps) Update rust crate syn to v2.0.111 (#114)
- (deps) Update actions/checkout action to v6 (#115)
- (deps) Update github-actions (#116)
- (deps) Update github-actions (#117)
- (deps) Update dependency rust to v1.92.0 (#118)
- (deps) Update github-actions (#119)
- (deps) Update github-actions (#120)
- (deps) Update rust crate supports-hyperlinks to v3.2.0 (#121)
- (deps) Update github-actions (#122)
- (deps) Update rust crates (#123)
- (deps) Update rust crate syn to v2.0.113 (#126)
- (deps) Update taiki-e/install-action action to v2.65.12 (#127)
- Support
-
2.6.030 Oct 2025Release notes
Open source →Features
- Expose
namemethod onSourceCodefor getting the file name (#103)
Chore
- (deps) Update github-actions (#93)
- (deps) Update github/codeql-action action to v4 (#96)
- (deps) Lock file maintenance rust crates (#97)
- (deps) Update taiki-e/install-action action to v2.62.28 (#95)
- (deps) Update github-actions (#99)
- (deps) Lock file maintenance rust crates (#100)
- (deps) Update github-actions (#101)
- (deps) Lock file maintenance rust crates (#102)
- Expose
-
2.5.129 Sep 2025 -
2.5.016 Sep 2025Release notes
Open source →Features
- Correctly calculate emoji sequences width (#85)
Chore
- (deps) Update taiki-e/install-action action to v2.57.5 (#67)
- (deps) Update dependency rust to v1.89.0 (#69)
- (deps) Lock file maintenance rust crates (#71)
- (deps) Update github-actions (#70)
- (deps) Lock file maintenance rust crates (#72)
- (deps) Lock file maintenance rust crates (#75)
- (deps) Update github-actions (#73)
- (deps) Update actions/checkout action to v5 (#74)
- (deps) Lock file maintenance rust crates (#77)
- (deps) Update github-actions (#76)
- (deps) Update taiki-e/install-action action to v2.58.29 (#78)
- (deps) Update github-actions (#79)
- (deps) Lock file maintenance (#80)
- (deps) Update github-actions (#82)
- (deps) Lock file maintenance rust crates (#83)
- (deps) Lock file maintenance rust crates (#84)
CI
- Update
<!-- generated by git-cliff -->
-
2.4.030 Jul 2025Release notes
Open source → -
2.3.228 Jul 2025Release notes
Open source →Chore
- (deps) Update github-actions (#52)
- (deps) Update github-actions (#54)
- (deps) Lock file maintenance rust crates (#56)
- (deps) Update taiki-e/install-action action to v2.56.13 (#55)
- (deps) Lock file maintenance rust crates (#59)
- (deps) Update github-actions (#58)
- (deps) Lock file maintenance (#61)
- (deps) Update github-actions (#60)
CI
- (release) Enable trusted publishing
<!-- generated by git-cliff --> The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
2.3.127 Jun 2025Release notes
Open source →<!-- 7 -->Chore
- (deps) update dependency rust to v1.88.0 (#51)
- (deps) update github-actions (#49)
- (deps) lock file maintenance rust crates (#50)
- (deps) update github-actions (#47)
- (deps) lock file maintenance rust crates (#48)
- (deps) update github-actions (#44)
- (deps) lock file maintenance rust crates (#45)
- (deps) update taiki-e/install-action action to v2.52.4 (#43)
-
2.3.026 May 2025Release notes
Open source →<!-- 0 -->Features
- (formatter) output lint/col in json formatter (#42)
<!-- 7 -->Chore
- (release-plz) group version
- (deps) update taiki-e/install-action action to v2.52.1 (#40)
- (deps) lock file maintenance rust crates (#41)
- (deps) update github-actions (#38)
- (deps) lock file maintenance rust crates (#39)
- (deps) update dependency rust to v1.87.0 (#37)
- (deps) lock file maintenance rust crates (#36)
- (deps) update github-actions (#34)
- (deps) lock file maintenance rust crates (#35)
- (deps) update github-actions (#33)
- (deps) lock file maintenance rust crates (#32)
- (deps) update github-actions (#31)
- (deps) update github-actions (#30)
- (deps) update github-actions (#28)
- (deps) lock file maintenance (#29)
- (deps) update dependency rust to v1.86.0 (#27)
- (deps) update github-actions (#26)
- (deps) update github-actions (#24)
- (deps) lock file maintenance (#25)
- (deps) update dependency rust to v1.85.1 (#22)
<!-- 8 -->CI
- fix permissions
- add zizmor
-
2.1.214 Mar 2025Release notes
Open source →So it turns out I forgot to make snippets and other stuff forward through when you use
.context()&co. This should be fixed now 😅Bug Fixes
- context: pass on diagnostic metadata when wrapping with
Report(e4fdac38)
<a name="2.1.1"></a>
- context: pass on diagnostic metadata when wrapping with
-
2.1.114 Mar 2025Release notes
Open source →This is a small, but visually-noticeable bug fix. I spent some time playing with colors and styling and made some fixes that will improve where people's eyes are drawn to, and also take into account color visibility issues a bit more.
Bug Fixes
- report: don't color error message text to draw eyes back to it (6422f821)
- reporter: improve color situation and style things a little nicer (533ff5f3)
<a name="2.1.0"></a>
-
1.0.203 Nov 2024Nothing published for this version
-
1.0.127 Oct 2024Release notes
Open source →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.mietteshould be smaller now, I hope :)Bug Fixes
- crate: reduce crate size by removing images (5f74da67)
<a name="1.0.0"></a>
-
1.0.027 Oct 2024Release notes
Open source →...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! :)
Breaking Changes
- snippets: Overhauled how snippets handle labels, sources, and messages, including the derive macro (61283e9e
Features
- links: added URL linking support and automatic docs.rs link generation (7e76e2de)
- theme: Add an initial
rgbstyle with nicer colors (3546dcec) - @martica
Bug Fixes
- printer: clamp highlight length to at least 1 (#32) (9d601599)
<a name="1.0.0-beta.1"></a>