37 releases (20 breaking)
| 0.21.0 | May 31, 2026 |
|---|---|
| 0.20.0 | Jun 4, 2025 |
| 0.19.0 | Apr 24, 2025 |
| 0.18.0 | Feb 7, 2025 |
| 0.1.0 | Mar 23, 2020 |
#26 in #pretty-print
2,384,261 downloads per month
Used in 1,065 crates
(750 directly)
1MB
26K
SLoC
tabled
An easy to use library for pretty printing tables of Rust structs and enums.
There are more examples and you can find in this README.
Usage
To print a list of structs or enums as a table your types should implement the the Tabled trait or derive it with a #[derive(Tabled)] macro.
Most of the default types implement the trait out of the box.
Most of a table configuration can be found in tabled::settings module.
use tabled::{Table, Tabled};
use tabled::assert::assert_table;
#[derive(Tabled)]
struct Language<'a> {
name: &'a str,
designed_by: &'a str,
invented_year: usize,
}
let languages = vec![
Language { name: "C", designed_by: "Dennis Ritchie", invented_year: 1972 },
Language { name: "Go", designed_by: "Rob Pike", invented_year: 2009 },
Language { name: "Rust", designed_by: "Graydon Hoare", invented_year: 2010 },
];
let table = Table::new(languages);
assert_table!(
table,
"+------+----------------+---------------+"
"| name | designed_by | invented_year |"
"+------+----------------+---------------+"
"| C | Dennis Ritchie | 1972 |"
"+------+----------------+---------------+"
"| Go | Rob Pike | 2009 |"
"+------+----------------+---------------+"
"| Rust | Graydon Hoare | 2010 |"
"+------+----------------+---------------+"
);
The same example but we are building a table step by step.
use tabled::{builder::Builder, settings::Style};
use tabled::assert::assert_table;
let mut builder = Builder::new();
builder.push_record(["C", "Dennis Ritchie", "1972"]);
builder.push_record(["Go", "Rob Pike", "2009"]);
builder.push_record(["Rust", "Graydon Hoare", "2010"]);
let mut table = builder.build();
table.with(Style::ascii_rounded());
assert_table!(
table,
".------------------------------."
"| C | Dennis Ritchie | 1972 |"
"| Go | Rob Pike | 2009 |"
"| Rust | Graydon Hoare | 2010 |"
"'------------------------------'"
);
Dependencies
~1.5MB
~24K SLoC