codespan
Data structures for tracking locations in source code
0.13.1
11M downloads/mo
#2946 most downloaded on crates.io
brendanzab/codespan
What this package is like to depend on
Last release 10 months ago
22 Oct 2025
Ships unpredictably
gaps range from 2 weeks to 4.1 years
Some releases are documented
notes for 9 of 24 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
24 releases · first in 2018
2 releases in the last 12 months
see the full history below
Release timeline
24 releases · Apr 2018 to Oct 2025Releases
latest 24-
0.13.122 Oct 2025Release notes
Open source →Version 0.13.1 fixes a few issues present in version 0.13.0.
- Allow writing to
&mut dyn WriteStyle#402 - Fix an issue with
str::from_utf8not being available on rust 1.67 #405 - Fix release action #408
- Fix regression in the API
with_note#409
Thanks to contributors and those who raised issues. Keep them coming!
- Allow writing to
-
0.13.015 Oct 2025Release notes
Open source →Release 0.13.0 adds a new rendering decoration system for reporting. It also includes a bug fix.
New features
In #387 @urisinger changed diagnostic emitting to be based on a new writer trait
WriteStyle. This addition allows more flexibility in the output of emitting diagnostics. For example the default terminal ANSI style can be swapped out for SVG tag generation (see example). The change includesstd::term::config::styles::StylesWriterandstd::term::config::styles::Stylesfor customisation of colours and other decoration during emit.This feature is backwards compatible with original
termcolorwriters.Bug fixes and user changes
The 0.12.0 version of codespan included
![no_std]support thanks to PR #374. Unfortunately, there were a few issues with it that were not caught by CI and went under the radar such as tests not passing under--no-default-features#399.Another issue included complications with
std::io::Writevscore::fmt::Write. This meant thatStringwould work under--no-default-featuresbut break with--feature std.PR #400 adds checks for tests across feature configurations and adds different
emitfunctions for different types of writers used. This includes aemit_to_stringfunction that should work across feature configuration.There still needs to be improvements in this area but I have not landed on anything simple.
WIP: It also adds a check to dependants of the library to check whether changes are compatible.
If you find any issues or have a feature suggestion, leave them in the issues.
Full Changelog: release/codespan-0.12.0...release/codespan-0.13.0
-
0.12.022 Mar 2025Release notes
Open source →This release is version 0.12.0 of the codespan crate. A library the provides "Beautiful diagnostic reporting for text-based programming languages".
This release contains a few bug fixes and small changes, there are no new features of breaking changes.
New maintainer
I (@kaleidawave) have been graciously added as a maintainer to this repository and have been gifted permission to publish updates to
codespan-reporting(and other crates in the repository) on crates.io by the original maintainer.I hope that I can keep this project up to date and make sure that additions (such as seen below) can in the future be released under a shorter time frame.
If you have any feature requests or changes for this project/crate, then don't hesitate to ping me.
What's Changed
Auto-generated by GitHub
- Change
.with_message()method to take more generic message type by @oOBoomberOo in #217 - Update lsp-types requirement from >=0.84, <0.89 to >=0.84, <0.90 by @dependabot-preview in #325
- Upgrade to GitHub-native Dependabot by @dependabot-preview in #327
- Add Naga to README by @kvark in #328
- Add 'mos' to the list of projects by @sagacity in #329
- Change multiline rendering with breaks to work properly by @mbartlett21 in #330
- use log10 to calculate the number of digits by @Johann150 in #332
- Add option for including context before and after a label by @elkowar in #331
- Fix typo in ci.yml by @Sematre in #338
- Update lsp-types requirement from >=0.84, <0.90 to >=0.84, <0.92 by @dependabot in #339
- Update peg requirement from 0.6 to 0.7 by @dependabot-preview in #326
- Fix Actions badges by @atouchet in #349
- Implement with_label & with_note by @InfiniteCoder01 in #363
- include LICENSE file in published crates by @decathorpe in #355
- examples: replace structopt with pico-args by @tamird in #357
- unicode-width: allow 0.2 to be selected by @nagisa in #369
- Allow ?Sized implementations of
Filesforterm::emit. by @ennis in #354 - Added generic iterator methods by @yankana in #341
- Add
no_stdSupport by @bushrat011899 in #374 - Add Spade to list of README projects by @ethanuppal in #368
- Add strict clippy lints and any changes after "auto-fix" by @kaleidawave in #373
Full Changelog: v0.11.1...release/codespan-0.12.0
- Change
-
0.11.125 Feb 2021 -
0.11.029 Nov 2020Release notes
Open source →There is now a code of conduct and a contributing guide.
Some versions were skipped to sync up with the
codespan-lspcrate. The release process has been changed so this should not happen again.Changed
- This crate now depends on
codespan-reportingnon-optionally because of the new error type.
Fixed
- Building the crate on operating systems other than unix/windows
with the
serializationfeature enabled.
- This crate now depends on
-
0.9.524 Jun 2020 -
0.9.418 May 2020Nothing published for this version
-
0.9.329 Apr 2020Nothing published for this version
-
0.9.229 Mar 2020Nothing published for this version
-
0.9.122 Mar 2020Release notes
Open source →Added
From<Span>is now implemented forRange<usize>andRange<RawIndex>.- More
From<_>conversions are now implemented for index and offset types.
-
0.9.015 Mar 2020Release notes
Open source →Added
codespannow depends oncodespan_reporting. This can be disabled via thereportingfeature.codespan::Filesnow implementscodespan_reporting::files::Files
-
0.8.024 Feb 2020Nothing published for this version
-
0.7.006 Jan 2020Nothing published for this version
-
0.6.018 Dec 2019Nothing published for this version
-
0.5.002 Oct 2019Nothing published for this version
-
0.4.125 Aug 2019Nothing published for this version
-
0.4.022 Aug 2019Nothing published for this version
-
0.3.030 Apr 2019Nothing published for this version
-
0.2.126 Feb 2019Nothing published for this version
-
0.2.011 Oct 2018Release notes
Open source → -
0.1.320 Aug 2018Nothing published for this version
-
0.1.207 May 2018Nothing published for this version
-
0.1.116 Apr 2018Nothing published for this version
-
0.1.016 Apr 2018Nothing published for this version