A library for pretty-printing tables of Elixir structs and maps with customizable styling and pagination.
Scribe is an Elixir library that formats lists of maps and structs into readable ASCII tables, making it easier to inspect data in the console. It solves the problem of unreadable default Elixir printing for large collections, such as database query results, by providing a clean, tabular output.
Elixir developers working in IEx or console environments who need to visualize and inspect structured data like query results, logs, or collections of maps and structs.
Developers choose Scribe for its simplicity and flexibility, offering automatic table generation with minimal configuration while supporting extensive customization like column selection, multiple styling formats, and pagination for large datasets.
Pretty-print tables of Elixir structs and maps.
Scribe automatically creates tables with headers from the first element's keys, eliminating manual setup for common data structures like query results, as shown in the README where printing a list of maps generates a table instantly.
Supports specifying columns with custom headers and function-based values, such as concatenating fields into a full name column, demonstrated in the README with examples using tuples and anonymous functions.
Offers five built-in styles like Psql and Github Markdown, plus custom adapters, allowing developers to switch formats without extra code, as highlighted in the styling section with clear examples.
Uses the pane library to paginate large tables in the console, making it easier to navigate extensive datasets, as seen in the console example where users can scroll through results interactively.
Scribe is designed solely for ASCII table printing in the console, so it cannot generate HTML, CSV, or other formats for web or external use without additional work, limiting its applicability in multi-environment projects.
Pagination functionality relies on the pane library, adding an extra dependency and potential maintenance issues if pane becomes outdated or incompatible with future Elixir versions.
The README does not address how Scribe handles malformed data, such as empty lists or inconsistent structs, which could lead to runtime errors or unformatted outputs in production scenarios.
While pagination helps, printing very large tables without it may consume significant memory and time, as Scribe formats the entire dataset before output, which could slow down IEx sessions with massive collections.
A TUI (terminal UI) kit for Elixir
A toolkit for writing command-line user interfaces.
Command-line progress bars and spinners for Elixir.
An Elixir app which generates text-based tables for display
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.