go.pennock.tech/tabular

Golang table model, with renderers for multiple backends


tabular

Continuous Integration Documentation Coverage Status Current Tag Issues Repo Size

The tabular package provides a Golang library for storing data in a table consisting of rows and columns. Sub-packages provide for rendering such a table as a terminal box-table (line-drawing with UTF-8 box-drawing in various styles, or ASCII), as HTML, or as CSV data.

The core data model is designed to be extensible and powerful, letting such a table be embedded in various more sophisticated models. (Eg, core of a spreadsheet). Cells in the table contain arbitrary data and possess metadata in the form of “properties”, modelled after the context package’s Context.

A table can be created from the base package and then populated, before being passed to any of the renderers, or a table can be directly created using a sub-package, such that you probably won’t need to import the base package directly.

An overview guide to the codebase can be found in the Overview.md

The usage documentation is in Godoc format

See the examples for a gentler introduction.

This package should be installable in the usual go get manner.

This software is under a MIT-type license.

When embedding into another tool, Go Modules support is able to report on the version numbers of all dependencies with go version -m $cmdname; to support your own version reporting framework, go.pennock.tech/tabular.Versions() returns a slice of strings (including API versions and the value of the LinkerSpecifiedVersion top-level variable).

This package uses semantic versioning.
Note that Go only supports the most recent two minor versions of the language; for the purposes of semver, we do not consider it a breaking change to add a dependency upon a language or standard library feature supported by all currently-supported releases of Go.


Projects using Tabular