NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1511 most downloaded on crates.io
Papergrid is a core library to print a table
Last release 4 months ago
31 May 2026
Release timing varies
gaps range from 2 weeks to 12 months
Some releases are documented
notes for 17 of 41 stable releases
2 versions withdrawn
withdrawn after publishing
7 years old
43 releases · first in 2020
One column per quarter.
Added #[tabled(display(Type, "function", arg1, arg2))] - a derive helper (propoused by @georgewhewell).
#[tabled(display(Type, "function", arg1, arg2))] - a derive helper (propoused by @georgewhewell).Table::kv - a new type of table layout.Span logic with negative and 0 spans.LineText::align to stick text on border to specific location.LayoutIterator to navigate Table::kv easier.Tabled implementation for Option<T>.#[tabled(display_with)] into #[tabled(display)].clippy issues (by @joshtriplett).toml_to_table/ Bump to 0.5.0
toml_to_table/ Bump to 0.5.0
Color::rgb_fg, Color::rgb_bg (by @k86td)ObjectIterator: so things like Rows::new(1..10).step_by(2) be possible.Rows::last() + 100 and Columns::last() + 100 add operation.left|right specifiers to PriorityMax and PriorityMin.Priority factory to create different priorities. Basically a more convinient way.testing_table::assert_table.Builder::from(HashMap::new()) implementation.CleanCharset::clean("") function for cases where we build a table by Builder.unicode-width crate (by @joshtriplett).unicode-width.Padding to Padding and PaddingColor.Margin to Margin and MarginColor.Highlight interface.Border and BorderColor implementation when applied to table, so it sets a frame rather then all cells.Disable into Remove.testing_table (by @michel-slm).Theme::remove_horizontal_lines when used from Theme::from(Style::*).Disable::row issue when it was not deleting a row.Added Table::modify as an option to Modify usage, which make cleaner code.
Table::modify as an option to Modify usage, which make cleaner code.themes::Theme.Reverse to reverse the table.LineText.ByContent locator.ByCondition locator.Locator factory for Locations.Style to const implementation (it involved changes to Border/BorderColor and more related subjects).Style (by @Brijeshkrishna).Builder methods (by @CouldBeFree)ColumnNames interface.LineText interface.IntoRecords interface.TableOption interface.BorderText to LineText.BorderChar to LineChar.RawStyle to themes::Theme.Locator to Location.papergrid::Color trait to ANSIFmt.papergrid::StaticColor trait to ANSIStr.papergrid::ColorBuf trait to ANSIBuf.color feature to ansi.IndexBuilder::is_empty function (by @pjhades).tabled_derive.Signed-off-by: Maxim Zhiburt zhiburt@gmail.com
Signed-off-by: Maxim Zhiburt zhiburt@gmail.com
TableOption::hint_change method as an optimization vector.ColumnNames interface was changed.ColumnNames alignment issue.Signed-off-by: Maxim Zhiburt zhiburt@gmail.com
Signed-off-by: Maxim Zhiburt zhiburt@gmail.com
settings::Dup to toplicate content.settings::themes::ColumnNames to set text on border (adjusted to cells).Xor implementation for Color.Colorization to set colors of table by a pattern.Made a list of changes to tabled .
tabled .papergrid interface.PoolTable vertical intersection issue.Signed-off-by: Maxim Zhiburt zhiburt@gmail.com
Signed-off-by: Maxim Zhiburt zhiburt@gmail.com
static_table a macro to build tables at compile time.ron_to_table format conversion library.IterTable a table with a different backend logic.CompactTable a table with a different backend logic.PoolTable a table with a different backend logic.tabled(display_with("function", arg1, arg2)) custom arguments support.Split setting for tabled::Table (by @IsaacCloos).table_to_html.tabled interface.papergrid interface.json_to_table interface.master branch.Tabled macros path issue (by @zjp-CN).tabled_to_html (by @MRoci).Rotate::Left/Right issue.json_to_table.Tabled derive macro issue with skip+order usage.Width::wrap().keep_words() issue.Added Shadow configuration to create a margin which would look like a 'shadow'.
Shadow configuration to create a margin which would look like a 'shadow'.table_to_html crate to build an HTML from a Table.Color such as Color::RED, Color::BLUE etc.Style::sharp by @wfxr.ansi-str in hope it being more effective.Nothing published for this version
Macros row! and col! by @IsaacCloos.
row! and col! by @IsaacCloos.Panel::vertical to create a vertically spanned panels.Span::row to create vertically spanned cells.Merge to combine cells with the same content together via Span.ByColumnName locator to target columns via name and use it as Object.VerticalLine to set custom vertical lines.Height structure to control table/cell height.BorderChar to set a char by an arbitrary offset on a split horizonta/vertical lines.fmt::* settings when called with format/println.json_to_table crate to convert json into table.papergrid has got a few new functions.papergrid was restructured to be more generic in regard of underlying data types.Table::with function now doesn't consume the table but called by reference &mut.TableOption for Alignment.TableOption for Padding.CellOption for String.Wrap logic was changed specifically with color feature.Wrap now recognizes hyperlinks (by @Dan Davison).Tabled trait now returns std::borrow::Cow instead of String.Width::wrap logic. (one found by @Dan Davison).Nothing published for this version
Nothing published for this version
Created #[tabled(order = 2)] attribute to support reordering of fields.
#[tabled(order = 2)] attribute to support reordering of fields.#[tabled(rename_all = "UPPERCASE")] attribute to rename columns.#[tabled(display_width("some_func", args))] attribute to being able to call functions with &self argument.derive feature to hide Table macro behind it.Object::intersect method.Object::inverse method.width::Percent to set width not in absolute values.PaddingColor to colorize Padding.MarginColor to colorize Margin.Priority strategy for Width.Style::correct_spans functions to correct borders when used with spans..HighlightColored a version of Highlight which supports coloring.ModifyObject trait to be like Modify::new.Color, BorderColored and RawStyleColored to colorize borders more effectively.Style::lines setter so you it's possible to override not only header.\n from fmt::Display output.Center to Left. (generally because it's more effitient in basic case)CellChange trait.Modify; it must be more effitient when used without Object methods.Builder to use &mut self intestead of self.Wrap::keep_words.Truncate::suffix.Style::header_* methods.MaxWidth to Width.CustomStyle to Style.StyleConfig to RawStyle.Style::*_off methods to Style::off_*.Style usage, some methods were not influence Table in some cases.\t handling in Width functions.Nothing published for this version
Signed-off-by: Maxim Zhiburt zhiburt@gmail.com
Signed-off-by: Maxim Zhiburt zhiburt@gmail.com
Justify type which sets all columns to the same width.Table::builder method which can be used to modify the default layout of table built from Tabled.IndexBuilder which can be used to transpose the table.Border coloring.Style::frame function which returns border.Columns::first, Columns::last functions.Sub, Add implementations for FirstRow and LastRow.Style::rounded style.TopBorderText to BorderText.object module from public export.object::Full in regard of object::Segment::all().Style rendering issues.Panel and Spans are used.Style rendering of single row and single column tables.Signed-off-by: Maxim Zhiburt zhiburt@gmail.com
Signed-off-by: Maxim Zhiburt zhiburt@gmail.com
MinStyle logic when used with Span.MinStyle, MaxStyle logic when used with zero Span table.A deprecated style constants were removed.
MinWidth type, which changes cell widths in case it's necessary.MinWidth and MaxWidth can be used in combination in order to set a table width.Span support. It cab be used to set a column span.Extract type by @IsaacCloos. It can be used to extract a segment from a table.Margin by @kozmod. Can be used to set a indent of the whole table.Highlight.Border can be used directly to set a cell border.TrimStrategy, AlignmentStrategy.\t processing.#[field] #[header] in Tabled macro was renamed to #[tabled].Indent renamed to Padding by @kozmod.object module was removed from module prelude.Format functions were refactored. So the interface was changed.Alignment::center_horizontal was renamed to Alignment::center.Style rendering issues.Panel rendering issues.Span rendering issues.Nothing published for this version
Constants in style module now marked deprecated in regard of const functions as more ergonomic choice.
CustomStyle type which now handles modifications of styles.TopBorderText type which can be used to write a text on a bottom border.Wrap::keep_words oprtion in order to not split words in a middle while doing a wrap.Style::dots(), Style::re_structured_text(), Style::extended()MaxWidth interface.style module now marked deprecated in regard of const functions as more ergonomic choice.Style functions were deprecated.
Style constants like Style::ASCII, Style::PSEUDO,Highlight modificator which does highlight of any combination of cellsTableIteratorExt trait by @24secondsConcat modificator by @senk8Table::shape method which returns table's sizeTabled trait now requires a LENGTH constant.Style functions were deprecated.fmt::Display requirements on hidden fields in inline modeExpandedDisplay a different view of data structures. It eases viewing structures with a lot a fields. Proposed by @sd2k
ExpandedDisplay a different view of data structures. It eases viewing structures with a lot a fields. Proposed by @sd2kMaxWidth::wrapping a wrapping mechanism. Setting it will make text wrap to next line after reaching limit.MaxWidth interface changed in regard to support wrapping. Now old MaxWidth logic can be called by MaxWidth::truncating.Alignment was changing Indent settings.Add #[header(inline)] attribute to inline internal data structures which implement Tabled trait
MaxWidth option for cells#[header(inline)] attribute to inline internal data structures which implement Tabled traitTabled implementation for String#[header(inline)] exampleansi-cut instead of console to truncate stringgithub CI instead of travis.ci because free credit limit was reachedtabled_deriveAdd Table type instead of table! macros
Table type instead of table! macrostable! macros.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
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
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
Nothing published for this version
Add a Disable setting for removing rows/column out of the grid
Disable setting for removing rows/column out of the gridObject combination via and(), not() methods for targeting more thoroughlyStyles#[header(hidden)] attribute to hide variants and fieldsNothing 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 →