PackageTrack
Sign in Get early access

papergrid

Papergrid is a core library to print a table

0.18.0 36M downloads/mo #1492 most downloaded on crates.io zhiburt/tabled

What this package is like to depend on

Last release 2 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

6 years old

43 releases · first in 2020

1 release in the last 12 months

see the full history below

Release timeline

43 releases · Mar 2020 to May 2026
2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 43
  1. 0.18.0 31 May 2026
    Release notes

    Added

    • Added #[tabled(display(Type, "function", arg1, arg2))] - a derive helper (propoused by @georgewhewell).
    • Added Table::kv - a new type of table layout.
    • Added new Span logic with negative and 0 spans.
    • Added LineText::align to stick text on border to specific location.
    • Added LayoutIterator to navigate Table::kv easier.
    • Added Tabled implementation for Option<T>.

    Changed

    • Renamed #[tabled(display_with)] into #[tabled(display)].
    • Changed MSRV to the 1.83.
    • Removed owo-colors dependency.
    • Migrated owo-colors to 3.5 (by @joshtriplett).
    • Migrated heck to 0.5 (by @marxin).
    • Migrated syn to 2.0 (By @wyatt-herkamp).

    Fixed

    Open source →
  2. 0.17.0 04 Jun 2025
    Release notes

    toml_to_table/ Bump to 0.5.0

    Open source →
    Release notes

    Added

    • Added Color::rgb_fg, Color::rgb_bg (by @k86td)
    • Added ObjectIterator: so things like Rows::new(1..10).step_by(2) be possible.
    • Added support for Rows::last() + 100 and Columns::last() + 100 add operation.
    • Added left|right specifiers to PriorityMax and PriorityMin.
    • Added Priority factory to create different priorities. Basically a more convinient way.
    • Added a descriptive error message to testing_table::assert_table.
    • Added Builder::from(HashMap::new()) implementation.
    • Added CleanCharset::clean("") function for cases where we build a table by Builder.

    Changed

    • Switched back to upstream unicode-width crate (by @joshtriplett).
    • Migrated from proc-macro-error to proc-macro-error2 (by @welpo).
    • Refactorings to improve code quality further.
    • Made Charset::clean method more presise so we can hopefully work with latest unicode-width.
    • Improved Wrap algorithm. As it was misstreating new lines characters.
    • Splited Padding to Padding and PaddingColor.
    • Splited Margin to Margin and MarginColor.
    • Changed Highlight interface.
    • Changed Border and BorderColor implementation when applied to table, so it sets a frame rather then all cells.
    • Renamed Disable into Remove.
    • Set CI MSRV check to 1.66.

    Fixed

    • Fixed docs (by @joshtriplett).
    • Fixed docs (by @akiomik).
    • Fixed clippy (by @akiomik).
    • Added absent license in testing_table (by @michel-slm).
    • Fix removal of 1st line in Theme::remove_horizontal_lines when used from Theme::from(Style::*).
    • Fix Disable::row issue when it was not deleting a row.
    Open source →
  3. 0.15.0 24 Apr 2025
    Release notes

    Added

    • Added Table::modify as an option to Modify usage, which make cleaner code.
    • Added more features to themes::Theme.
    • Added a new setting Reverse to reverse the table.
    • Added vertical support for LineText.
    • Added ByContent locator.
    • Added ByCondition locator.
    • Added Locator factory for Locations.
    • Added tabled features to all subprojects to be able to reduce binary size.

    Changed

    • Move Style to const implementation (it involved changes to Border/BorderColor and more related subjects).
    • Added a basic implementation for a render.
    • Added a new Style (by @Brijeshkrishna).
    • Refactored a Builder methods (by @CouldBeFree)
    • Changed ColumnNames interface.
    • Changed LineText interface.
    • Changed IntoRecords interface.
    • Reordered TableOption interface.
    • Renamed BorderText to LineText.
    • Renamed BorderChar to LineChar.
    • Renamed RawStyle to themes::Theme.
    • Renamed Locator to Location.
    • Renamed papergrid::Color trait to ANSIFmt.
    • Renamed papergrid::StaticColor trait to ANSIStr.
    • Renamed papergrid::ColorBuf trait to ANSIBuf.
    • Renamed color feature to ansi.

    Fixed

    • Fix IndexBuilder::is_empty function (by @pjhades).
    • Fix a clippy warning in tabled_derive.
    • Fix spelling mistakes (by @oliashish).
    • Fix spelling mistakes (by @Kobzol).
    Open source →
  4. 0.14.0 07 Feb 2025
    Release notes

    Signed-off-by: Maxim Zhiburt [email protected]

    Open source →
    Release notes

    Added

    • Added TableOption::hint_change method as an optimization vector.

    Changed

    • ColumnNames interface was changed.

    Fixed

    • ColumnNames alignment issue.
    Open source →
  5. 0.13.0 22 Nov 2024
    Release notes

    Signed-off-by: Maxim Zhiburt [email protected]

    Open source →
    Release notes

    Added

    • Added settings::Dup to toplicate content.
    • Added settings::themes::ColumnNames to set text on border (adjusted to cells).
    • Added Xor implementation for Color.
    • Added Colorization to set colors of table by a pattern.
    Open source →
  6. 0.12.0 05 Aug 2024
    Release notes

    Added

    Changed

    • Made a list of changes to tabled .
    • Made a list of changes to papergrid interface.

    Fixed

    • Fixed PoolTable vertical intersection issue.
    Open source →
  7. 0.11.0 20 Dec 2023
    Release notes

    Signed-off-by: Maxim Zhiburt [email protected]

    Open source →
    Release notes

    Added

    • Created static_table a macro to build tables at compile time.
    • Created ron_to_table format conversion library.
    • Added IterTable a table with a different backend logic.
    • Added CompactTable a table with a different backend logic.
    • Added PoolTable a table with a different backend logic.
    • Added tabled(display_with("function", arg1, arg2)) custom arguments support.
    • Added Split setting for tabled::Table (by @IsaacCloos).
    • Added more property based tests (by @arunma)
    • Added dependabot integration (by @danieleades)
    • Added MSRV checks to CI (by @danieleades)
    • Documentation improvements (by @IsaacCloos).
    • Documentation improvements (by @jondot).

    Changed

    • Made a different interface for table_to_html.
    • Made a list of changes to tabled interface.
    • Made a list of changes to papergrid interface.
    • Made a list of changes to json_to_table interface.
    • Comparison benchmarks were moved to the master branch.

    Fixed

    • Fixed Tabled macros path issue (by @zjp-CN).
    • Fixed header issue in tabled_to_html (by @MRoci).
    • Fixed Rotate::Left/Right issue.
    • Fixed a few issues in json_to_table.
    • Fixed Tabled derive macro issue with skip+order usage.
    • Fixed Width::wrap().keep_words() issue.
    • Fixed a few clippy warnings (by @danieleades)
    • Fixed typos (by Elric Milon).
    • Fixed typos (by @fn-bruce)
    • Fixed typos (by @fa993)
    • Added missing linence files by @michel-slm
    Open source →
  8. 0.10.0 24 Jul 2023
    Release notes

    Added

    • Added Shadow configuration to create a margin which would look like a 'shadow'.
    • Added table_to_html crate to build an HTML from a Table.
    • Added default list of colors to Color such as Color::RED, Color::BLUE etc.
    • Added a new style Style::sharp by @wfxr.

    Changed

    • Bumped ansi-str in hope it being more effective.

    Fixed

    • docs.rs build issue.
    Open source →
  9. 0.9.1 02 Jun 2023

    Nothing published for this version

  10. 0.9.0 23 Apr 2023
    Release notes

    Added

    • Macros row! and col! by @IsaacCloos.
    • Added Panel::vertical to create a vertically spanned panels.
    • Added Span::row to create vertically spanned cells.
    • Added Merge to combine cells with the same content together via Span.
    • Added ByColumnName locator to target columns via name and use it as Object.
    • Added VerticalLine to set custom vertical lines.
    • Added Height structure to control table/cell height.
    • Added BorderChar to set a char by an arbitrary offset on a split horizonta/vertical lines.
    • Added support for fmt::* settings when called with format/println.
    • Created json_to_table crate to convert json into table.
    • papergrid has got a few new functions.

    Changed

    • 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.
    • impl TableOption for Alignment.
    • impl TableOption for Padding.
    • impl 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.

    Fixed

    • Fixed issues in Width::wrap logic. (one found by @Dan Davison).
    Open source →
  11. 0.8.2 12 Apr 2023

    Nothing published for this version

  12. 0.8.1 12 Apr 2023

    Nothing published for this version

  13. 0.8.0 11 Apr 2023
    Release notes

    Added

    • Created #[tabled(order = 2)] attribute to support reordering of fields.
    • Created #[tabled(rename_all = "UPPERCASE")] attribute to rename columns.
    • Created #[tabled(display_width("some_func", args))] attribute to being able to call functions with &self argument.
    • Created derive feature to hide Table macro behind it.
    • Created Object::intersect method.
    • Created Object::inverse method.
    • Created width::Percent to set width not in absolute values.
    • Created PaddingColor to colorize Padding.
    • Created MarginColor to colorize Margin.
    • Added Priority strategy for Width.
    • Added Style::correct_spans functions to correct borders when used with spans..
    • Added HighlightColored a version of Highlight which supports coloring.
    • Added ModifyObject trait to be like Modify::new.
    • Added Color, BorderColored and RawStyleColored to colorize borders more effectively.
    • Added Style::lines setter so you it's possible to override not only header.

    Changed

    • Performance was improved overall.
    • Removed a trailing \n from fmt::Display output.
    • Changed default horizontal alignment from Center to Left. (generally because it's more effitient in basic case)
    • Changed a definition of CellChange trait.
    • Changed Modify; it must be more effitient when used without Object methods.
    • Changed public methods of Builder to use &mut self intestead of self.
    • Changed logic of Wrap::keep_words.
    • Changed logic of Truncate::suffix.
    • Removed Style::header_* methods.
    • Renamed MaxWidth to Width.
    • Renamed CustomStyle to Style.
    • Renamed StyleConfig to RawStyle.
    • Renamed Style::*_off methods to Style::off_*.

    Fixed

    • Fixed a list of issues with coloring
    • Fixed Style usage, some methods were not influence Table in some cases.
    • Fixed \t handling in Width functions.
    • Improved documentation.
    • Refactorings.
    Open source →
  14. 0.7.1 18 Oct 2022

    Nothing published for this version

  15. 0.7.0 18 Oct 2022 withdrawn
    Release notes

    Signed-off-by: Maxim Zhiburt [email protected]

    Open source →
    Release notes

    Added

    • Created a tabled logo which is used on docs.rs.
    • Added a 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.
    • Added IndexBuilder which can be used to transpose the table.
    • Added support for Border coloring.
    • Added Style::frame function which returns border.
    • Added Columns::first, Columns::last functions.
    • Sub, Add implementations for FirstRow and LastRow.
    • Added Style::rounded style.

    Changed

    • Default height set to 0.
    • Renamed TopBorderText to BorderText.
    • Removed object module from public export.
    • Deprecate object::Full in regard of object::Segment::all().
    • Improved documentation.
    • Refactorings.

    Fixed

    • Fix Style rendering issues.
    • Fix rendering when Panel and Spans are used.
    • Fix Style rendering of single row and single column tables.
    Open source →
  16. 0.6.1 18 Oct 2022 withdrawn
    Release notes

    Signed-off-by: Maxim Zhiburt [email protected]

    Open source →
    Release notes

    Fixed

    • Fix MinStyle logic when used with Span.
    • Fix MinStyle, MaxStyle logic when used with zero Span table.
    Open source →
  17. 0.6.0 30 Sep 2022
    Release notes

    Added

    • Added 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.
    • Added Span support. It cab be used to set a column span.
    • Added Extract type by @IsaacCloos. It can be used to extract a segment from a table.
    • Added an option to set padding character by @kozmod.
    • Margin by @kozmod. Can be used to set a indent of the whole table.
    • Added a support for custom target in Highlight.
    • Border can be used directly to set a cell border.
    • A list of format settings: TrimStrategy, AlignmentStrategy.
    • \t processing.
    • Added a list of examples.

    Changed

    • #[field] #[header] in Tabled macro was renamed to #[tabled].
    • A default behaviour of alignment was changed.
    • Indent renamed to Padding by @kozmod.
    • A deprecated style constants were removed.
    • object module was removed from module prelude.
    • Format functions were refactored. So the interface was changed.
    • Alignment::center_horizontal was renamed to Alignment::center.

    Fixed

    • Fix Style rendering issues.
    • Fix Panel rendering issues.
    • Fix Span rendering issues.
    Open source →
  18. 0.5.1 22 Jul 2022

    Nothing published for this version

  19. 0.5.0 22 Jul 2022
    Release notes

    Added

    • 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.
    • Add more default styles Style::dots(), Style::re_structured_text(), Style::extended()

    Changed

    • MaxWidth interface.
    • Constants in style module now marked deprecated in regard of const functions as more ergonomic choice.

    Fixed

    • Fix rendering of single column table with full style (with horizontal split lines)
    Open source →
  20. 0.4.0 16 May 2022
    Release notes

    Added

    • Style constants like Style::ASCII, Style::PSEUDO,
    • Highlight modificator which does highlight of any combination of cells
    • TableIteratorExt trait by @24seconds
    • Concat modificator by @senk8
    • A Table::shape method which returns table's size

    Changed

    • Tabled trait now requires a LENGTH constant.
    • Style functions were deprecated.
    • Allow border changes for any cell.

    Fixed

    • Fix fmt::Display requirements on hidden fields in inline mode
    • README.md fix by @panarch
    • Refactorings
    Open source →
  21. 0.3.0 02 Apr 2022
    Release notes

    Added

    • ExpandedDisplay a different view of data structures. It eases viewing structures with a lot a fields. Proposed by @sd2k
    • MaxWidth::wrapping a wrapping mechanism. Setting it will make text wrap to next line after reaching limit.

    Changed

    • MaxWidth interface changed in regard to support wrapping. Now old MaxWidth logic can be called by MaxWidth::truncating.

    Fixed

    • Fix an issue that setting Alignment was changing Indent settings.
    Open source →
  22. 0.2.1 10 Feb 2022
    Release notes

    Added

    • Add MaxWidth option for cells
    • Add #[header(inline)] attribute to inline internal data structures which implement Tabled trait
    • Add blank Tabled implementation for String
    • Add #[header(inline)] example

    Changed

    • Use ansi-cut instead of console to truncate string
    • Switch to github CI instead of travis.ci because free credit limit was reached

    Fixed

    • A sublte refactoring in tabled_derive
    Open source →
  23. 0.2.0 30 Dec 2021
    Release notes

    Added

    • Add Table type instead of table! macros
    • Consider lambdas Fn(&str) -> String as format options
    • Add basic usage example

    Changed

    • Removed table! macros.

    Fixed

    • Improved performance in papergrid; Now it makes 100 allocs on basic example where previously 400!
    Open source →
  24. 0.1.23 10 Sep 2021

    Nothing published for this version

  25. 0.1.22 06 Sep 2021

    Nothing published for this version

  26. 0.1.21 14 Jul 2021

    Nothing published for this version

  27. 0.1.20 14 Jul 2021

    Nothing published for this version

  28. 0.1.19 14 Jul 2021

    Nothing published for this version

  29. 0.1.18 14 Jul 2021

    Nothing published for this version

  30. 0.1.17 14 Jul 2021

    Nothing published for this version

  31. 0.1.16 23 Jun 2021

    Nothing published for this version

  32. 0.1.15 18 Jun 2021

    Nothing published for this version

  33. 0.1.14 18 Jun 2021

    Nothing published for this version

  34. 0.1.13 07 Jun 2021

    Nothing published for this version

  35. 0.1.11 07 Jun 2021

    Nothing published for this version

  36. 0.1.10 06 Jun 2021

    Nothing published for this version

  37. 0.1.9 04 Jun 2021

    Nothing published for this version

  38. 0.1.8 02 Jun 2021

    Nothing published for this version

  39. 0.1.7 01 Jun 2021

    Nothing published for this version

  40. 0.1.3 01 Jun 2021
    Release notes

    Added

    • Add a Disable setting for removing rows/column out of the grid
    • Object combination via and(), not() methods for targeting more thoroughly
    • Modification of default Styles
    • Add #[header(hidden)] attribute to hide variants and fields
    Open source →
  41. 0.1.2 31 May 2021

    Nothing published for this version

  42. 0.1.1 31 May 2021

    Nothing published for this version

  43. 0.1.0 23 Mar 2020

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive