This project is no longer maintained by Turbine Labs, which has shut down.
The nonstdlib project comprises extensions to the Go stdlib, either to increase feature set or testability, and other utility code. The nonstdlib project has no external dependencies beyond the go standard library; the tests depend on our test package and gomock.
Where possible, we mirror the stdlib package naming, though in practice, we commonly import packages with a tbn prefix for clarity, e.g.:
import (
"os"
tbnos "github.com/turbinelabs/nonstdlib/os"
)
- Go 1.10.3 or later (previous versions may work, but we don't build or test against them)
go get -u github.com/turbinelabs/nonstdlib/...
mkdir -p $GOPATH/src/turbinelabs
git clone https://github.com/turbinelabs/nonstdlib.git > $GOPATH/src/turbinelabs/nonstdlib
go test github.com/turbinelabs/nonstdlib/...
Each package is best described in its respective Godoc:
arrays
: includes several sub-packages allowing type-safe execution of tasks commonly applied to sliceseditor
: provides simple wrappers for interacting with an environment configured text editorexecutor
: provides a mechanism for asyncronous execution of tasks, using callbacks to indicate success or failureflag
: provides convenience methods for dealing with golang flag.FlagSetslog
: provides infrastructure for topic based logging to filesmath
: provides mathematical utilitiesmust
: provides extraction of useful information out of (data, error) tuplesnet
: provides convenience methods for dealing with the net package of the stdlibos
: provides an OS interface mirroring a subset of commonly used functions and variables from the golang os packageproc
: provides a mechanism for running processes under managementptr
: provides convenience and conversion methods for working with pointer typesstats
: provides an interface for reporting simple statisticsstrings
: provides convenience methods for working with strings and string slicestext/tabwriter
: provides a set of sane defaults for converting tab separated values into a pretty column formatted output.time
: provides utility functions for go time.Time instances
Please see Versioning of Turbine Labs Open Source Projects.
Patches accepted! Please see Contributing to Turbine Labs Open Source Projects.
All Turbine Labs open-sourced projects are released with a Contributor Code of Conduct. By participating in our projects you agree to abide by its terms, which will be carefully enforced.