go

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 12, 2019 License: BSD-3-Clause

README

Tideland Go Libray

GitHub release GitHub license GoDoc Sourcegraph Go Report Card

Description

Tideland Go Library provides a number of helpful packages for different areas. They are grouped by higher level packages.

  • audit provides packages to support testing
    • asserts provides routines for assertions helpful in tests and validation
    • capture allows capturing of STDOUT and STDERR
    • environments provides setting of environment variables, creation of temporary directories, and running web servers for tests
    • generators simplifies generation of test data; with a fixed random on demand even repeatable
  • db provides database clients
    • couchdb realizes a client for the CouchDB and
    • redis for Redis
  • dsa contains data structures and algorithms
    • collections contains collection types like a ring buffer, stacks, sets and trees
    • identifier allows the generation of UUIDs in different versions as well as other identifier
    • mapreduce provides a generic map/reduce algorithm
    • sort contains a parallel quicksort
    • timex helps working with times
    • version helps managing semantic versioning
  • net groups the work with the network
    • httpx adds useful functions to the standard HTTP package
    • jwt implements a complete JSON Web Token plus caching
    • web provides some useful handlers for multiplexing and JWT authorization
  • text simplifies life with text data
    • etc manages configurations including internel references to environment variables, cross references, and extraction of subtrees for using types; syntax is sml (see below)
    • gjp is the generic JSON processing without static type marshalling
    • scroller helps analyzing a continuously written line by line text content like log files
    • sml is the simple markup language, a LISP like notation using curly braces
    • stringex enhances the functionality of the standard library package strings
  • together focusses on goroutines and how to manage them more convenient and reliable
    • actor runs a backend goroutine processing anonymous functions for the serialization of changes, e.g. in a structure
    • cells provides an event processing based on the idea of meshed cells with different behaviors
    • crontab allows running functions at configured times and in chronological order
    • limiter limits the number of parallel executing goroutines in its scope
    • loop helps running a controlled endless select loop for goroutine backends
    • notifier helps at the coordination of multiple goroutines
    • wait provides a flexible and controlled waiting for conditions by polling
  • trace helps running applications and servers
    • errors is a more powerful error management than the standard package
    • location allows to retrieve current file and line, helpful for errors and logging
    • logging is a more controllable logging with an exchangeable backend, e.g. syslog
    • monitor allows to measure runtimes and monitor variables

I hope you like it. ;)

Contributors

License

Tideland Go Library is distributed under the terms of the BSD 3-Clause license.

Directories

Path Synopsis
actor module
asserts module
audit module
asserts
Package asserts helps writing convenient and powerful unit tests.
Package asserts helps writing convenient and powerful unit tests.
capture
Package capture assists in testing code writing output to stdout or stderr.
Package capture assists in testing code writing output to stdout or stderr.
environments
Package environments helps providing environments for unit tests.
Package environments helps providing environments for unit tests.
generators
Package generators helps to quickly generate data needed for unit tests.
Package generators helps to quickly generate data needed for unit tests.
cells module
cloubotics module
providers/aws module
types module
db module
couchdb
Package couchdb provides a very powerful as well as convenient client for the CouchDB database.
Package couchdb provides a very powerful as well as convenient client for the CouchDB database.
redis
Package redis provides a very powerful as well as convenient client for the Redis database.
Package redis provides a very powerful as well as convenient client for the Redis database.
dsa module
collections
Package collections provides some typical and often used collection types like a ring buffer, stacks, sets and trees.
Package collections provides some typical and often used collection types like a ring buffer, stacks, sets and trees.
identifier
Package identifier provides different ways to produce identifiers out of diffent parts.
Package identifier provides different ways to produce identifiers out of diffent parts.
mapreduce
Package mapreduce implements the Map/Reduce algorithm for the processing and aggregation mass data.
Package mapreduce implements the Map/Reduce algorithm for the processing and aggregation mass data.
sort
Package sort provides a parallel quicksort.
Package sort provides a parallel quicksort.
timex
Package timex adds some useful functions for the work with them time type.
Package timex adds some useful functions for the work with them time type.
version
Package version helps other packages to provide information about their current version and compare it to others.
Package version helps other packages to provide information about their current version and compare it to others.
gjp module
httpx module
jwt module
matcher module
net module
httpx
Package httpx provides some types and function helping when working with the HTTP package.
Package httpx provides some types and function helping when working with the HTTP package.
jwt/cache
Package cache provides a caching of verified JSON Web Tokens.
Package cache provides a caching of verified JSON Web Tokens.
jwt/token
Package token provides the generation, verification, and analyzing of JSON Web Tokens.
Package token provides the generation, verification, and analyzing of JSON Web Tokens.
web
Package web contains several handlers supporting the development of web applications and RESTful APIs.
Package web contains several handlers supporting the development of web applications and RESTful APIs.
slices module
stew module
assert module
asserts module
generators module
matcher module
text module
etc
Package etc provides the reading, parsing, and accessing of configuration data.
Package etc provides the reading, parsing, and accessing of configuration data.
gjp
Package gjp provides the generic parsing and processing of JSON documents by paths.
Package gjp provides the generic parsing and processing of JSON documents by paths.
scroller
Package scroller helps analyzing a continuously written line by line text content, e.g.
Package scroller helps analyzing a continuously written line by line text content, e.g.
sml
Package sml provides a very simple markup language using a kind of LISP like notation but with curly braces.
Package sml provides a very simple markup language using a kind of LISP like notation but with curly braces.
stringex
Package stringex helps when working with strings.
Package stringex helps when working with strings.
together module
actor
Package actor supports the simple creation of concurrent applications following the idea of actor models.
Package actor supports the simple creation of concurrent applications following the idea of actor models.
cells/behaviors
Package behaviors provides several generic and always useful standard behaviors for the Tideland Go Library Cells.
Package behaviors provides several generic and always useful standard behaviors for the Tideland Go Library Cells.
cells/event
Package event provides the event and its payload emitted by the user of a mesh and the contained cells.
Package event provides the event and its payload emitted by the user of a mesh and the contained cells.
cells/mesh
Package mesh is the runtime package of the Tideland cells event processing.
Package mesh is the runtime package of the Tideland cells event processing.
crontab
Package crontab provides the ability to run functions once at a given time, every given interval, every given interval after a given time, or every given interval after a given pause.
Package crontab provides the ability to run functions once at a given time, every given interval, every given interval after a given time, or every given interval after a given pause.
limiter
Package limiter allows to restrict the number of parallel executed functions, e.g.
Package limiter allows to restrict the number of parallel executed functions, e.g.
loop
Package loop supports the developer implementing the typical Go idiom for concurrent applications running in a loop in the background and doing a select on one or more channels.
Package loop supports the developer implementing the typical Go idiom for concurrent applications running in a loop in the background and doing a select on one or more channels.
notifier
Package notifier helps at the coordination of multiple goroutines.
Package notifier helps at the coordination of multiple goroutines.
wait
Package wait provides different ways to wait for conditions by polling.
Package wait provides different ways to wait for conditions by polling.
trace module
failure
Package failure allows to create more detailed error values than with errors.New() or fmt.Errorf().
Package failure allows to create more detailed error values than with errors.New() or fmt.Errorf().
location
Package location provides a way to retrieve the current location in code.
Package location provides a way to retrieve the current location in code.
logger
Package logger provides a flexible way to log information with different levels and on different backends.
Package logger provides a flexible way to log information with different levels and on different backends.
monitor
Package monitor helps monitoring of Go applications.
Package monitor helps monitoring of Go applications.
uuid module
wait module
worker module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL