{"id":16701206,"url":"https://github.com/eproxus/grid","last_synced_at":"2025-03-23T14:31:45.572Z","repository":{"id":136904357,"uuid":"460619579","full_name":"eproxus/grid","owner":"eproxus","description":"Erlang formatter for tabular data","archived":false,"fork":false,"pushed_at":"2025-01-30T22:16:26.000Z","size":58,"stargazers_count":11,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-15T04:03:10.274Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eproxus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-17T21:49:42.000Z","updated_at":"2025-01-30T22:10:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"c99c3ffe-1a2c-4f55-a8ad-5ad0eaebd7ab","html_url":"https://github.com/eproxus/grid","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eproxus%2Fgrid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eproxus%2Fgrid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eproxus%2Fgrid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eproxus%2Fgrid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eproxus","download_url":"https://codeload.github.com/eproxus/grid/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245116004,"owners_count":20563264,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T18:43:10.654Z","updated_at":"2025-03-23T14:31:45.553Z","avatar_url":"https://github.com/eproxus.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GitHub Actions](https://img.shields.io/github/workflow/status/eproxus/grid/Continuous%20Integration?style=flat-square)](https://github.com/eproxus/grid/actions/workflows/continous_integration.yaml)\n[![Hex.pm Version](https://img.shields.io/hexpm/v/grid.svg?style=flat-square)](https://hex.pm/packages/grid)\n[![Hex.pm License](https://img.shields.io/hexpm/l/meck.svg?style=flat-square)](https://hexdocs.pm/grid/license.html)\n\n# grid\n\nErlang formatting library for tabular data.\n\nThe library can take most types of list with potential tabular data and format\nit as a table. Rows can be maps, tuples, lists or proplists (or a mix of\nthese).\n\n## Features\n\n* **Sensible** 🧠\n\n  Without any options, *grid* tries to do the sensible thing and format your\n  data in the best possible tabular way.\n\n* **Configurable** 🔧\n\n  Want to re-order columns? Skip columns? Format rows or headers? *grid* has\n  got your back!\n\n## Examples\n\n### Raw Data\n\n```erl\n1\u003e io:format(grid:format(application:which_applications())).\ninets       INETS  CXC 138 49                        8.1\nssl         Erlang/OTP SSL application               10.8.5\npublic_key  Public key infrastructure                1.13.1\nasn1        The Erlang ASN1 compiler version 5.0.21  5.0.21\ncrypto      CRYPTO                                   5.1.2\nstdlib      ERTS  CXC 138 10                         4.1.1\nkernel      ERTS  CXC 138 10                         8.5.1\n```\n\n### Custom Options\n\n```erl\n2\u003e io:format(grid:format(application:which_applications(),#{header =\u003e titlecase, columns =\u003e [application, description, version], spacer =\u003e \" │ \"})).\nApplication │ Description      │ Version\nstdlib      │ ERTS  CXC 138 10 │ 4.1.1\nkernel      │ ERTS  CXC 138 10 │ 8.5.1\n```\n\n### Proplists\n\n```erl\n3\u003e io:format(grid:format([ets:info(T) || T \u003c- ets:all()], #{header =\u003e titlecase})).\nCompressed  Decentralized counters  Heir  Id                                   Keypos  Memory  Name                              Named table  Node           Owner      Protection  Read concurrency  Size  Type         Write concurrency\nfalse       false                   none  #Ref\u003c0.2124221214.1451884545.77687\u003e  1       147     shell_records                     false        nonode@nohost  \u003c0.215.0\u003e  public      false             0     ordered_set  false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77475\u003e  1       6815    logger                            true         nonode@nohost  \u003c0.42.0\u003e   protected   true              4     set          true\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77482\u003e  1       3073    ac_tab                            true         nonode@nohost  \u003c0.44.0\u003e   public      true              35    set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77521\u003e  1       48976   code                              false        nonode@nohost  \u003c0.50.0\u003e   private     false             557   set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77522\u003e  1       8838    code_names                        true         nonode@nohost  \u003c0.50.0\u003e   public      false             57    set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77533\u003e  1       631     inet_db                           true         nonode@nohost  \u003c0.51.0\u003e   public      false             30    set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77534\u003e  9       313     inet_cache                        true         nonode@nohost  \u003c0.51.0\u003e   public      false             0     bag          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77535\u003e  1       313     inet_hosts_byname                 true         nonode@nohost  \u003c0.51.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77536\u003e  1       313     inet_hosts_byaddr                 true         nonode@nohost  \u003c0.51.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77537\u003e  1       313     inet_hosts_file_byname            true         nonode@nohost  \u003c0.51.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77538\u003e  1       313     inet_hosts_file_byaddr            true         nonode@nohost  \u003c0.51.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77539\u003e  1       313     inet_sockets                      true         nonode@nohost  \u003c0.51.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77560\u003e  1       393     rex_nodes_observer                false        nonode@nohost  \u003c0.53.0\u003e   protected   true              0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77567\u003e  1       313     global_locks                      true         nonode@nohost  \u003c0.54.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77568\u003e  1       393     global_names                      true         nonode@nohost  \u003c0.54.0\u003e   protected   true              0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77569\u003e  1       313     global_names_ext                  true         nonode@nohost  \u003c0.54.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77570\u003e  1       313     global_pid_names                  true         nonode@nohost  \u003c0.54.0\u003e   protected   false             0     bag          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77571\u003e  1       313     global_pid_ids                    true         nonode@nohost  \u003c0.54.0\u003e   protected   false             0     bag          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77572\u003e  1       313     global_lost_connections           true         nonode@nohost  \u003c0.54.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77573\u003e  1       313     global_node_resources             true         nonode@nohost  \u003c0.54.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77587\u003e  1       313     file_io_servers                   true         nonode@nohost  \u003c0.59.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77722\u003e  1       313     ssl_pem_cache                     true         nonode@nohost  \u003c0.88.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77730\u003e  1       147     client_ssl_otp_session_cache      false        nonode@nohost  \u003c0.89.0\u003e   protected   false             0     ordered_set  false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77731\u003e  1       313     ssl_otp_cacertificate_db          false        nonode@nohost  \u003c0.89.0\u003e   public      false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77732\u003e  1       313     ssl_otp_ca_file_ref               false        nonode@nohost  \u003c0.89.0\u003e   public      false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77733\u003e  1       313     ssl_otp_ca_ref_file_mapping       false        nonode@nohost  \u003c0.89.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77734\u003e  1       313     ssl_otp_crl_cache                 false        nonode@nohost  \u003c0.89.0\u003e   protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77735\u003e  1       313     ssl_otp_crl_issuer_mapping        false        nonode@nohost  \u003c0.89.0\u003e   protected   false             0     bag          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77764\u003e  1       313     dtls_listener_sup                 true         nonode@nohost  \u003c0.102.0\u003e  public      false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77786\u003e  2       313     httpc_manager__session_db         true         nonode@nohost  \u003c0.110.0\u003e  public      false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77787\u003e  1       313     httpc_manager__handler_db         true         nonode@nohost  \u003c0.110.0\u003e  protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77790\u003e  2       313     httpc_manager__session_cookie_db  false        nonode@nohost  \u003c0.110.0\u003e  protected   false             0     bag          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77801\u003e  2       313     httpc_rebar__session_db           true         nonode@nohost  \u003c0.113.0\u003e  public      false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77802\u003e  1       313     httpc_rebar__handler_db           true         nonode@nohost  \u003c0.113.0\u003e  protected   false             0     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.77803\u003e  2       313     httpc_rebar__session_cookie_db    false        nonode@nohost  \u003c0.113.0\u003e  protected   false             0     bag          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.78098\u003e  1       320     disk_log_names                    true         nonode@nohost  \u003c0.126.0\u003e  protected   false             1     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.78099\u003e  1       320     disk_log_pids                     true         nonode@nohost  \u003c0.126.0\u003e  protected   false             1     set          false\nfalse       false                   none  #Ref\u003c0.2124221214.1451884548.78107\u003e  2       41409   package_index                     true         nonode@nohost  \u003c0.9.0\u003e    public      false             576   ordered_set  false\n```\n\n### Mixed Data\n\n```erl\n4\u003e io:format(grid:format([#{type =\u003e 1},[2,foo,\"c\"],{3, \u003c\u003c\"quux\"\u003e\u003e}])).\n1\n2  foo   c\n3  quux\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feproxus%2Fgrid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feproxus%2Fgrid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feproxus%2Fgrid/lists"}