An Elixir library that pretty prints data structures with full color, proper indentation, and internal structure exposure.
Apex is an Elixir library for pretty printing Elixir data structures with full color and proper indentation, exposing their internal structure. It ports part of Ruby's awesome_print gem functionality to make debugging and data inspection more readable and developer-friendly.
Elixir developers who need to inspect and debug complex data structures in their applications, particularly those working in interactive environments like IEx.
Developers choose Apex for its visually clear, colorful output that enhances readability during debugging, its extensibility via the Apex.Format protocol for custom types, and its additional features like the adef macro for function tracing.
Awesome printing for Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Prints data structures in full color with customizable schemes via config or .apexrc, enhancing readability for nested elements as shown in the examples.
Uses the Apex.Format protocol internally, allowing developers to add support for custom types beyond the built-in ones listed, such as structs or records.
Provides the adef macro for detailed tracing of function calls, printing parameters and results with formatted output, inspired by external debugging techniques.
Offers optional index numbering for list elements to improve clarity, with the ability to disable it via the 'numbers: false' option for cleaner output.
Changes to the global .apexrc file require recompiling Apex via 'mix deps.compile apex', which disrupts workflow and is explicitly warned in the README.
As a port from Ruby's awesome_print, it focuses solely on Elixir data structures and doesn't support other BEAM languages or broader ecosystem integrations.
Managing color configurations across multiple projects with precedence rules and recompilation steps adds overhead, especially in collaborative environments.