21 releases

0.11.1 Mar 21, 2024
0.10.2 Feb 29, 2024
0.10.0 Dec 13, 2023
0.9.2 Oct 30, 2023
0.1.0 May 22, 2018

#14 in Programming languages

Download history 28121/week @ 2023-12-23 34105/week @ 2023-12-30 43939/week @ 2024-01-06 58301/week @ 2024-01-13 51788/week @ 2024-01-20 55675/week @ 2024-01-27 65748/week @ 2024-02-03 61981/week @ 2024-02-10 73254/week @ 2024-02-17 64172/week @ 2024-02-24 70959/week @ 2024-03-02 70778/week @ 2024-03-09 68505/week @ 2024-03-16 76396/week @ 2024-03-23 76849/week @ 2024-03-30 64650/week @ 2024-04-06

298,203 downloads per month
Used in 170 crates (40 directly)


1.5K SLoC


annotate-snippets is a Rust library for annotation of programming code slices.

crates.io documentation build status

The library helps visualize meta information annotating source code slices. It takes a data structure called Snippet on the input and produces a String which may look like this:


Local Development

cargo build
cargo test

When submitting a PR please use cargo fmt (nightly).


A library for formatting of text or programming code snippets.

It's primary purpose is to build an ASCII-graphical representation of the snippet with annotations.


The crate uses a three stage process with two conversions between states:

Message --> Renderer --> impl Display

The input type - [Message] is a structure designed to align with likely output from any parser whose code snippet is to be annotated.

The middle structure - [Renderer] is a structure designed to convert a snippet into an internal structure that is designed to store the snippet data in a way that is easy to format. [Renderer] also handles the user-configurable formatting options, such as color, or margins.

Finally, impl Display into a final String output.


  • testing-colors - Makes Renderer::styled colors OS independent, which allows for easier testing when testing colored output. It should be added as a feature in [dev-dependencies], which can be done with the following command:
cargo add annotate-snippets --dev --feature testing-colors