tataDan / toolbox

Toolbox for Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

toolbox

Toolbox for Go.

To install this package and the tools it provides:

./build.sh

atexit

Provides functionality similar to the C standard library's atexit() call. To function properly, use atexit.Exit(result) rather than os.Exit(result).

cmdline

Command line handling. Provides the tool genversion for generating version numbers with an embedded date.

collection

Provides type-safe sets for the various primitive types.

desktop

Desktop integration utilities.

errs

Errors that contain stack traces with source locations, along with nested causes, if any.

evaluate

Dynamically evaluate expressions.

formats/json

Manipulation of JSON data.

formats/xlsx

Extract text from Excel spreadsheets.

i18n

Internationalization support for applications. Provides the tool go-i18n for generating a template for a localization file from source code.

log/jot

Simple asynchronous logging.

Sample usage:

package main

import "github.com/richardwilkes/toolbox/log/jot"

func main() {
    defer jot.Flush()
    jot.Debug("Debug level")
    jot.Debugf("Debug level with %s", "args")
    jot.Info("Info level")
    jot.Infof("Info level with %s", "args")
    jot.Warn("Warning level")
    jot.Warnf("Warning level with %s", "args")
    jot.Error("Error level")
    jot.Errorf("Error level with %s", "args")
    jot.Fatal(1, "Fatal level")
    jot.Fatalf(1, "Fatal level with %s", "args")    // Will never be reached due to previous line
}

log/jotrotate

Provides a pre-canned way to add jot logging with file rotation, along with command-line options for controlling it.

log/logadapter

This package defines an API to use for logging, which actual logging implementations can implement directly or provide an adapter to use.

It also provides an implementation that just discards data given to it as well as an implementation that wraps another logger and prefixes all output.

log/rotation

Provides file rotation when files hit a given size.

rate

Rate limiting which supports a hierarchy of limiters, each capped by their parent.

softref

Soft references.

taskqueue

Provides a simple asynchronous task queue.

txt

Text utilities.

vcs/git

git repository access

xio

io utilities.

xio/fs

Filesystem utilities.

xio/fs/paths

Platform-specific standard paths.

xio/fs/safe

Safe, atomic saving of files.

xio/fs/zip

Simple zip extraction.

xio/network

Network-related utilities.

xio/network/natpmp

Implementation of NAT-PMP. See https://tools.ietf.org/html/rfc6886

xio/network/xhttp

HTTP-related utilities.

xio/network/xhttp/web

Web server with some standardized logging and handler wrapping.

xio/term

Terminal utilities.

xmath

Math utilities.

xmath/fixed

Fixed-point types with a configurable number of decimal places. These types implement the marshal/unmarshal interfaces for JSON and YAML.

xmath/num

128-bit int and uint types. These types implement the marshal/unmarshal interfaces for JSON and YAML.

xmath/geom

Geometry primitives.

xmath/rand

Randomizer based upon the crypto/rand package.

About

Toolbox for Go

License:Mozilla Public License 2.0


Languages

Language:Go 99.7%Language:Shell 0.3%