{"id":39496055,"url":"https://github.com/nekrassov01/mintab","last_synced_at":"2026-01-18T05:42:28.057Z","repository":{"id":203653735,"uuid":"710114163","full_name":"nekrassov01/mintab","owner":"nekrassov01","description":"mintab is a minimum ASCII table utilities for Go","archived":false,"fork":false,"pushed_at":"2025-01-03T14:39:23.000Z","size":1927,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-03T15:37:21.559Z","etag":null,"topics":["ascii-table","backlog","formatter","go","golang","reflection","table"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/nekrassov01/mintab","language":"Go","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/nekrassov01.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-10-26T03:39:52.000Z","updated_at":"2025-01-03T14:39:25.000Z","dependencies_parsed_at":"2023-11-30T07:23:50.789Z","dependency_job_id":"71d3fcd5-ade5-437a-950d-b320c47f2799","html_url":"https://github.com/nekrassov01/mintab","commit_stats":null,"previous_names":["nekrassov01/mintab"],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/nekrassov01/mintab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nekrassov01%2Fmintab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nekrassov01%2Fmintab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nekrassov01%2Fmintab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nekrassov01%2Fmintab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nekrassov01","download_url":"https://codeload.github.com/nekrassov01/mintab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nekrassov01%2Fmintab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28531358,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ascii-table","backlog","formatter","go","golang","reflection","table"],"created_at":"2026-01-18T05:42:27.979Z","updated_at":"2026-01-18T05:42:28.047Z","avatar_url":"https://github.com/nekrassov01.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"mintab\n======\n\n[![CI](https://github.com/nekrassov01/mintab/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/nekrassov01/mintab/actions/workflows/test.yml)\n[![codecov](https://codecov.io/gh/nekrassov01/mintab/graph/badge.svg?token=RIV62CQILM)](https://codecov.io/gh/nekrassov01/mintab)\n[![Go Reference](https://pkg.go.dev/badge/github.com/nekrassov01/mintab.svg)](https://pkg.go.dev/github.com/nekrassov01/mintab)\n[![Go Report Card](https://goreportcard.com/badge/github.com/nekrassov01/mintab)](https://goreportcard.com/report/github.com/nekrassov01/mintab)\n\nmintab is a minimum ASCII table utilities for Go\n\nMotivation\n----------\n\nWhile [tablewriter](https://github.com/olekukonko/tablewriter) is useful, I wanted a smaller package with features such as backlog format support that tablewriter does not have.\n\nFormat\n------\n\nText\n\n```text\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| Instance | SG   | Direction | Protocol | From | To    | AddressType | CidrBlock     |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-1      | sg-1 | Ingress   | tcp      |   22 |    22 | SG          | sg-10         |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-1      | sg-1 | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-1      | sg-2 | Ingress   | tcp      |  443 |   443 | Ipv4        | 0.0.0.0/0     |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-1      | sg-2 | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-2      | sg-3 | Ingress   | icmp     |   -1 |    -1 | SG          | sg-11         |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-2      | sg-3 | Ingress   | tcp      | 3389 |  3389 | Ipv4        | 10.1.0.0/16   |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-2      | sg-3 | Ingress   | tcp      |    0 | 65535 | PrefixList  | pl-id/pl-name |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-2      | sg-3 | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n```\n\nText merged\n\n```text\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| Instance | SG   | Direction | Protocol | From | To    | AddressType | CidrBlock     |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-1      | sg-1 | Ingress   | tcp      |   22 |    22 | SG          | sg-10         |\n+          +      +-----------+----------+------+-------+-------------+---------------+\n|          |      | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n+          +------+-----------+----------+------+-------+-------------+---------------+\n|          | sg-2 | Ingress   | tcp      |  443 |   443 | Ipv4        | 0.0.0.0/0     |\n+          +      +-----------+----------+------+-------+-------------+---------------+\n|          |      | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-2      | sg-3 | Ingress   | icmp     |   -1 |    -1 | SG          | sg-11         |\n+          +      +           +----------+------+-------+-------------+---------------+\n|          |      |           | tcp      | 3389 |  3389 | Ipv4        | 10.1.0.0/16   |\n+          +      +           +          +------+-------+-------------+---------------+\n|          |      |           |          |    0 | 65535 | PrefixList  | pl-id/pl-name |\n+          +      +-----------+----------+------+-------+-------------+---------------+\n|          |      | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n```\n\nCompressed-text merged\n\n```text\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| Instance | SG   | Direction | Protocol | From | To    | AddressType | CidrBlock     |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-1      | sg-1 | Ingress   | tcp      |   22 |    22 | SG          | sg-10         |\n|          |      | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n|          | sg-2 | Ingress   | tcp      |  443 |   443 | Ipv4        | 0.0.0.0/0     |\n|          |      | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n| i-2      | sg-3 | Ingress   | icmp     |   -1 |    -1 | SG          | sg-11         |\n|          |      |           | tcp      | 3389 |  3389 | Ipv4        | 10.1.0.0/16   |\n|          |      |           |          |    0 | 65535 | PrefixList  | pl-id/pl-name |\n|          |      | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n+----------+------+-----------+----------+------+-------+-------------+---------------+\n```\n\nMarkdown merged\n\n```text\n| Instance | SG   | Direction | Protocol | From | To    | AddressType | CidrBlock     |\n| -------- | ---- | --------- | -------- | ---- | ----- | ----------- | ------------- |\n| i-1      | sg-1 | Ingress   | tcp      | 22   | 22    | SG          | sg-10         |\n|          |      | Egress    | -1       | 0    | 0     | Ipv4        | 0.0.0.0/0     |\n|          | sg-2 | Ingress   | tcp      | 443  | 443   | Ipv4        | 0.0.0.0/0     |\n|          |      | Egress    | -1       | 0    | 0     | Ipv4        | 0.0.0.0/0     |\n| i-2      | sg-3 | Ingress   | icmp     | -1   | -1    | SG          | sg-11         |\n|          |      |           | tcp      | 3389 | 3389  | Ipv4        | 10.1.0.0/16   |\n|          |      |           |          | 0    | 65535 | PrefixList  | pl-id/pl-name |\n|          |      | Egress    | -1       | 0    | 0     | Ipv4        | 0.0.0.0/0     |\n```\n\nBacklog merged\n\n```text\n| Instance | SG   | Direction | Protocol | From | To    | AddressType | CidrBlock     |h\n| i-1      | sg-1 | Ingress   | tcp      |   22 |    22 | SG          | sg-10         |\n|          |      | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n|          | sg-2 | Ingress   | tcp      |  443 |   443 | Ipv4        | 0.0.0.0/0     |\n|          |      | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n| i-2      | sg-3 | Ingress   | icmp     |   -1 |    -1 | SG          | sg-11         |\n|          |      |           | tcp      | 3389 |  3389 | Ipv4        | 10.1.0.0/16   |\n|          |      |           |          |    0 | 65535 | PrefixList  | pl-id/pl-name |\n|          |      | Egress    |       -1 |    0 |     0 | Ipv4        | 0.0.0.0/0     |\n```\n\nSupport\n-------\n\n- Support markdown table format\n- **Support [backlog](https://support-ja.backlog.com/hc/ja/articles/360035641594-%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%AB-Backlog%E8%A8%98%E6%B3%95#%E8%A1%A8) table format**\n- Support multiple lines in a row\n- **Support direct loading of struct slices**\n- Support for column merging based on previous field values\n- Support for column exclusion\n- Support for HTML special character escapes (designed primarily for markdown)\n- Support for string concatenation when the field is a slice of the primitive type values\n- Support automatic string conversion of byte slices\n\nBenchmark\n---------\n\nmintab is memory-efficient.\n\n```text\n$ make bench\ngo test -run=^$ -bench=. -benchmem -count 5 -cpuprofile=cpu.prof -memprofile=mem.prof\ngoos: darwin\ngoarch: arm64\npkg: benchmarks\ncpu: Apple M2\nBenchmarkMintabInput-8             38288             30660 ns/op            2488 B/op         41 allocs/op\nBenchmarkMintabInput-8             39964             30058 ns/op            2488 B/op         41 allocs/op\nBenchmarkMintabInput-8             38894             29954 ns/op            2488 B/op         41 allocs/op\nBenchmarkMintabInput-8             39504             30917 ns/op            2488 B/op         41 allocs/op\nBenchmarkMintabInput-8             39993             29877 ns/op            2488 B/op         41 allocs/op\nBenchmarkMintabStruct-8            37072             31838 ns/op            2920 B/op         80 allocs/op\nBenchmarkMintabStruct-8            38244             32118 ns/op            2920 B/op         80 allocs/op\nBenchmarkMintabStruct-8            38517             31612 ns/op            2920 B/op         80 allocs/op\nBenchmarkMintabStruct-8            37584             31750 ns/op            2920 B/op         80 allocs/op\nBenchmarkMintabStruct-8            38352             31989 ns/op            2920 B/op         80 allocs/op\nBenchmarkTableWriter-8             12877             95667 ns/op           11454 B/op        639 allocs/op\nBenchmarkTableWriter-8             12712             95992 ns/op           11457 B/op        639 allocs/op\nBenchmarkTableWriter-8             12834             95187 ns/op           11443 B/op        639 allocs/op\nBenchmarkTableWriter-8             12716             95045 ns/op           11420 B/op        639 allocs/op\nBenchmarkTableWriter-8             12680             94409 ns/op           11449 B/op        639 allocs/op\nBenchmarkGoPrettyTable-8           65367             16973 ns/op            6540 B/op        192 allocs/op\nBenchmarkGoPrettyTable-8           68565             17483 ns/op            6540 B/op        192 allocs/op\nBenchmarkGoPrettyTable-8           70461             17172 ns/op            6540 B/op        192 allocs/op\nBenchmarkGoPrettyTable-8           65881             17300 ns/op            6540 B/op        192 allocs/op\nBenchmarkGoPrettyTable-8           70099             17335 ns/op            6540 B/op        192 allocs/op\nPASS\nok      benchmarks      33.220s\n```\n\nNotes\n-----\n\n- Nested structs are not supported\n- Using reflect\n\nUsage\n-----\n\n[Example](examples/example_test.go)\n\nTodo\n----\n\n- [ ] Add pre-loading support for streaming processing\n- [ ] Add paging for large inputs\n- [ ] Add minimal styling\n- [ ] Add caption\n- [ ] Add escape sequence support\n- [ ] Add word wrapping with new line\n- [ ] Improve performance and reduce memory allocations\n\nAuthor\n------\n\n[nekrassov01](https://github.com/nekrassov01)\n\nLicense\n-------\n\n[MIT](https://github.com/nekrassov01/mintab/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnekrassov01%2Fmintab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnekrassov01%2Fmintab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnekrassov01%2Fmintab/lists"}