Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. scribe

scribe

MITElixirv0.11.1

A library for pretty-printing tables of Elixir structs and maps with customizable styling and pagination.

Visit WebsiteGitHubGitHub
306 stars12 forks0 contributors

What is scribe?

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.

Target Audience

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.

Value Proposition

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.

Overview

Pretty-print tables of Elixir structs and maps.

Use Cases

Best For

  • Displaying database query results (e.g., from Ecto) in a clean, tabular format in the IEx console.
  • Inspecting large collections of maps or structs during debugging or development sessions.
  • Generating formatted tables for reports or logs with customizable columns and headers.
  • Creating paginated console outputs for navigating extensive datasets using the integrated pane library.
  • Producing tables in specific styles like PostgreSQL, GitHub Markdown, or borderless formats for different presentation needs.
  • Customizing table output with function-based column values, such as concatenating fields or applying transformations.

Not Ideal For

  • Projects requiring graphical user interfaces or web-based table displays
  • Real-time applications needing live table updates or streaming data visualization
  • Teams working with non-Elixir codebases or needing cross-language compatibility
  • Use cases demanding high-performance rendering of extremely large datasets without pagination overhead

Pros & Cons

Pros

Automatic Table Generation

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.

Flexible Column Customization

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.

Multiple Styling Options

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.

Integrated Pagination Support

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.

Cons

Console-Only Output Limitation

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.

Dependency on External Library for Pagination

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.

Limited Error Handling for Edge Cases

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.

Performance Overhead for Large Datasets

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.

Frequently Asked Questions

Quick Stats

Stars306
Forks12
Contributors0
Open Issues1
Last commit3 months ago
CreatedSince 2016

Tags

#elixir#pretty-print#cli-tool#data-visualization#elixir-library#ascii-tables

Built With

E
Elixir

Links & Resources

Website

Included in

Elixir13.1k
Auto-fetched 1 day ago

Related Projects

ratatouilleratatouille

A TUI (terminal UI) kit for Elixir

Stars840
Forks41
Last commit3 years ago
owlowl

A toolkit for writing command-line user interfaces.

Stars520
Forks14
Last commit3 months ago
progress_barprogress_bar

Command-line progress bars and spinners for Elixir.

Stars338
Forks21
Last commit10 months ago
table_rextable_rex

An Elixir app which generates text-based tables for display

Stars262
Forks27
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub