Golang table model, with renderers for multiple backends
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.