NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1512 most downloaded on crates.io
An easy to use library for pretty print tables of Rust `struct`s and `enum`s.
Last release 1 months ago
05 Sep 2026
Release timing varies
gaps range from 9 days to 12 months
Most releases are documented
notes for 28 of 32 stable releases
2 versions withdrawn
withdrawn after publishing
7 years old
40 releases · first in 2020
One column per quarter.
Minor release (mainly resolving dependency issue)
Minor release (mainly resolving dependency issue)
CompactTable::skip function (by @ChrisJr404).Color text-attribute constants BLINK, DIMMED, HIDDEN, INVERT, ITALIC, RESET and STRIKETHROUGH (by @ChrisJr404).Added Color::is_empty function (by @mvanhorn).
Color::is_empty function (by @mvanhorn).Settings::modify function (by @mvanhorn).LineText::limit function (by @mvanhorn).ColumnNames::padding.Charset (by @mvanhorn).TabSize in favor of Charset::tab_size().ColumnNames interface - splited it into ColumnNames and RowNames.Wrap strings with 0 width (by @ymcx).Span (corner case).BorderCorrection::span when Span::column and Span::row is used for same cell (corner case).Added Table::nohead function just like Table::new but with no header.
Table::nohead function just like Table::new but with no header.Table::with_capacity function just like Table::new but with an exact number of rows.with(Border) logic to set only outer border instead of border of all cells.tabled::grid::dimension::* modules.Wrap::text and Truncate::text.Text::new.Columns::single into Columns::one.Rows::single into Rows::one.fnv from ahash cause of WASM build.Wrap::keep_words logic where we preserving all content.testing_table inclusion (by @klensy).WASM build (by @cptpiepmatz).TableOption::hint.Added derive::wrap and derive::truncate function.
tabled::assert module.#[tabled(map)] macro.derive::display::bool function.derive::display::wrap and derive::display::truncate function.Locator::value.Table::get_dimension function.ANSI link handling in Width::truncate.Upper Title Case and lower title case options for rename_all.no_std in testing_table.Reverse interface.Position interface.tabled::grid::dimension structures.IterTable interface.ron to 0.10.ColumnNames::default() into ColumnsNames::head().BorderSpanCorrection into BorderCorrection::span().Offset::Begin into Offset::Start.Offset out of tabled into papergrid.no_std build (in actuall no_std env).LineText<LastColumn>.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 #[tabled(crate = "")] attribute.
#[tabled(crate = "")] attribute.#[tabled(format = "", format(""))] attribute.#[tabled(display_with(""))]Settings does.PriorityRight and PriorityLeft priorities.Layout/Reverse/MarginColor/PaddingColor.ExtendedTable (by @brianheineman)unicode-width dependency so we expect the outcome (but probably there shall be done adjustments for it further support).wrap::wrap_text and truncate::truncate_text.CellInfo to Text.Theme and splitted into other structs.Width/Height::priority interface so it's no longer generic.Builder::push_column (by @zxch3n).README.md (by @akiomik).README.md (by @fbonin).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.Fixed wrapping algorithm (tabled::Wrap::keep_words) for color feature.
tabled::settings::Wrap::keep_words) for color feature.Improved Wrap by reducing ansi usage (at the end of a line in some cases).
Wrap by reducing ansi usage (at the end of a line in some cases).ansi-str by bumping it.Made a list of changes to tabled .
tabled .papergrid interface.PoolTable vertical intersection issue.Nothing published for this version
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.Nothing published for this version
Nothing published for this version
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.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
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.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.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.Builder structure for dynamic creation of table
Builder structure for dynamic creation of tabletabled_derive was improperly bumped version. So it broke version [0.3].
To fix it it was necessary to yank versions [0.4.0] and [0.4.1] and yank tabled_derive [0.1.9].
It was pointed out by @Disasm.Nothing published for this version
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/Footer option for grid.
Header/Footer option for grid.::) support in display_with attribute.Tabled implementation for constant arrays.TableOption for &TableOptionAdd #[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.Add a vertical indent support in Alignment setting
Alignment settingIndent setting for a grid#[field(display_with = "function_name")] for custom display of a struct fieldsAlignment interfaceAdd 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 →