{"id":16156395,"url":"https://github.com/flowdalic/picnic-table-builder","last_synced_at":"2026-04-17T05:03:54.878Z","repository":{"id":140516321,"uuid":"442473604","full_name":"Flowdalic/picnic-table-builder","owner":"Flowdalic","description":"Create nice looking ASCII tables from Java and Scala. Other JVM languages and Unicode output is supported too.","archived":false,"fork":false,"pushed_at":"2022-03-01T18:57:32.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-13T06:43:05.868Z","etag":null,"topics":["android","ascii-art","ascii-table","java","jvm-languages","scala","table-builder","tables"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Flowdalic.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":"2021-12-28T13:34:16.000Z","updated_at":"2022-03-11T04:12:54.000Z","dependencies_parsed_at":"2023-06-03T00:45:36.467Z","dependency_job_id":null,"html_url":"https://github.com/Flowdalic/picnic-table-builder","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowdalic%2Fpicnic-table-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowdalic%2Fpicnic-table-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowdalic%2Fpicnic-table-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowdalic%2Fpicnic-table-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Flowdalic","download_url":"https://codeload.github.com/Flowdalic/picnic-table-builder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247574092,"owners_count":20960497,"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":["android","ascii-art","ascii-table","java","jvm-languages","scala","table-builder","tables"],"created_at":"2024-10-10T01:44:49.390Z","updated_at":"2026-04-17T05:03:54.849Z","avatar_url":"https://github.com/Flowdalic.png","language":"Java","readme":"# Picnic Table Builder for Java \u0026 Co.\n\nThe Picnic Table Builder library provides a `TableBuilder` API for\nJava \u0026 Co. to create HTML-like tables that are nice looking when\nrendered as Unicode or ASCII. The provided `TableBuilder` is a\nJava-shim over [Jake Wharton's great Picnic Tables (picnic)\nlibrary](https://github.com/JakeWharton/picnic/). Unfortunately,\npicnic itself is not accessible from Scala (apparently due to its\nusage of Kotlin's `@set:JvmSynthetic` annotation). Picnic Table\nBuilder, i.e., this library, solves this issue. It furthermore\nprovides an IMHO more idiomatic and easier to use builder API than\nupstream does.\n\nOriginally submitted for upstream inclusion as [Picnic PR\n#33](https://github.com/JakeWharton/picnic/pull/33), it is now\nreleased as standalone library.\n\n## Example\n\n```java\nTable table = eu.geekplace.picnic.TableBuilder.create()\n    .withTableStyle()\n        .setBorderStyle(Hidden)\n        .endTableStyle()\n    .withCellStyle()\n        .setAlignment(MiddleRight)\n        .setPaddingLeft(1)\n        .setPaddingRight(1)\n        .setBorderLeft(true)\n        .setBorderRight(true)\n        .endCellStyle()\n    .withHeader()\n        .withCellStyle()\n            .setBorder(true)\n            .setAlignment(BottomLeft)\n            .endCellStyle()\n        .addRow()\n            .addCell(\"APK\")\n                .setRowSpan(2)\n                .endCell()\n            .addCell(\"compressed\")\n                .setColumnSpan(3)\n                .withCellStyle()\n                    .setAlignment(BottomCenter)\n                    .endCellStyle()\n                .endCell()\n            .addCell(\"uncompressed\")\n                .setColumnSpan(3)\n                .withCellStyle()\n                    .setAlignment(BottomCenter)\n                    .endCellStyle()\n                .endCell()\n            .endRow()\n        .addRow(\"old\", \"new\", \"diff\", \"old\", \"new\", \"diff\")\n        .endHeader()\n    .withBody()\n        .addRow(\"dex\", \"664.8 KiB\", \"664.8 KiB\", \"-25 B\", \"1.5 MiB\", \"1.5 MiB\", \"-112 B\")\n        .addRow(\"arsc\", \"201.7 KiB\", \"201.7 KiB\", \"0 B\", \"201.6 KiB\", \"201.6 KiB\", \"0 B\")\n        .addRow(\"manifest\", \"1.4 KiB\", \"1.4 KiB\", \"0 B\", \"4.2 KiB\", \"4.2 KiB\", \"0 B\")\n        .addRow(\"res\", \"418.2 KiB\", \"418.2 KiB\", \"-14 B\", \"488.3 KiB\", \"488.3 KiB\", \"0 B\")\n        .addRow(\"asset\", \"0 B\", \"0 B\", \"0 B\", \"0 B\", \"0 B\", \"0 B\")\n        .addRow(\"other\", \"37.1 KiB\", \"37.1 KiB\", \"0 B\", \"36.3 KiB\", \"36.3 KiB\", \"0 B\")\n        .endBody()\n    .withFooter()\n        .withCellStyle()\n            .setBorder(true)\n            .endCellStyle()\n        .addRow(\"total\", \"1.3 MiB\", \"1.3 MiB\", \"-39 B\", \"2.2 MiB\", \"2.2 MiB\", \"-112 B\")\n        .endFooter()\n    .build();\n```\n\nWhere `table.toString()` yields:\n\n```\n          │          compressed           │          uncompressed\n          ├───────────┬───────────┬───────┼───────────┬───────────┬────────\n APK      │ old       │ new       │ diff  │ old       │ new       │ diff\n──────────┼───────────┼───────────┼───────┼───────────┼───────────┼────────\n      dex │ 664.8 KiB │ 664.8 KiB │ -25 B │   1.5 MiB │   1.5 MiB │ -112 B\n     arsc │ 201.7 KiB │ 201.7 KiB │   0 B │ 201.6 KiB │ 201.6 KiB │    0 B\n manifest │   1.4 KiB │   1.4 KiB │   0 B │   4.2 KiB │   4.2 KiB │    0 B\n      res │ 418.2 KiB │ 418.2 KiB │ -14 B │ 488.3 KiB │ 488.3 KiB │    0 B\n    asset │       0 B │       0 B │   0 B │       0 B │       0 B │    0 B\n    other │  37.1 KiB │  37.1 KiB │   0 B │  36.3 KiB │  36.3 KiB │    0 B\n──────────┼───────────┼───────────┼───────┼───────────┼───────────┼────────\n    total │   1.3 MiB │   1.3 MiB │ -39 B │   2.2 MiB │   2.2 MiB │ -112 B\n```\n\n## Maven Coordinates\n\nThis library is [available on Maven Central](https://search.maven.org/artifact/eu.geekplace/picnic-table-builder).\n\n### Gradle\n\n```gradle\nimplementation 'eu.geekplace:picnic-table-builder:\u003cversion\u003e'\n```\n\n## License\n\nThis project is licensed under the Apache License 2.0.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowdalic%2Fpicnic-table-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflowdalic%2Fpicnic-table-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowdalic%2Fpicnic-table-builder/lists"}