This package implements a parser for uniform resource names (URN) as specified by IETF RFC 2141.
This library is a JWT implementation that uses nkeys to digitally sign JWT tokens. Nkeys use Ed25519 to provide authentication of JWT claims.
Fast implementation of base58 encoding on Golang. A trivial big.Int
encoding benchmark results in 6 times faster encoding and 8 times faster decoding.
This is a SIMD accelerated MD5 package, allowing up to either 8 (AVX2) or 16 (AVX512) independent MD5 sums to be calculated on a single CPU core.
Ginkgo is a Behaviour-Driven Development testing framework for Go. It builds on top of Go's builtin testing
library and is complemented by the Gomega matcher library.
Package cli provides a framework to build command line applications in Go with most of the burden of arguments parsing and validation placed on the framework instead of the user.
go-xdr
implements the data representation portion of the External Data Representation (XDR) standard protocol as specified in RFC 4506 (obsoletes RFC 1832 and RFC 1014) in pure Go.
This package is a simple Go library that provides retry functionality for functions that may fail. It includes various customizable retry strategies, such as fixed delay, backoff delay, and random delay.
deepcopy
implements a functionality of deep copies of things. A standard copy
will copy the pointers where deepcopy
copies the values pointed to. Unexported field values are not copied.
Machine lets you create Docker hosts on your computer, on hosting providers, and inside your data center. It creates servers, installs Docker on them, then configures the Docker client to talk to them.
go-log
wraps zap to provide a logging facade. go-log
manages logging instances and allows for their levels to be controlled individually.
fgprof is a sampling Go profiler that allows you to analyze On-CPU as well as [Off-CPU](@urlhttp://www.brendangregg.com/offcpuanalysis.html,http://www.brendangregg.com/offcpuanalysis.html) (e.g. I/O) time together.
Package ssh wraps the crypto/ssh package with a higher-level API for building SSH servers. The goal of the API was to make it as simple as using net/http, so the API is very similar.
Package ssh wraps the crypto/ssh package with a higher-level API for building SSH servers. The goal of the API was to make it as simple as using net/http, so the API is very similar.
cty
(pronounced "see-tie") is a dynamic type system for applications written in Go that need to represent user-supplied values without losing type information. The primary intended use is for implementing configuration languages, but other uses may be possible too.
Package stack
implements utilities to capture, manipulate, and format call stacks. It provides a simpler API than package runtime
. The implementation takes care of the minutia and special cases of interpreting the program counter (pc) values returned by runtime.Callers
.
lz4
provides a streaming interface to LZ4 data streams as well as low level compress and uncompress functions for LZ4 data blocks. The implementation is based on the reference C one.
lumin
is a simple command-line program which highlights matches to a specified pattern (string or regex) in the specified files. This is like grep
with --color
, except that lumin
shows all lines, not just matching lines. This package proviedes a CLI tool and colors
library.
termenv lets you safely use advanced styling options on the terminal. It gathers information about the terminal environment in terms of its ANSI and color support and offers you convenient methods to colorize and style your output, without you having to deal with all kinds of weird ANSI escape sequences and color conversions.
Package compress is a collection of compression libraries implementing Golang moduels:
brotli
Implements the Brotli format, described in RFC 7932.
bzip2
Implements the BZip2 compressed data format.
flate
Implements the DEFLATE format, described in RFC 1951.
xflate
Implements the XFLATE format, an random-access extension to DEFLATE.
This package provides a Go implementation of JSON Web Tokens and supports the parsing and verification as well as the generation and signing of JSON Web Tokens. The currently supported signing algorithms are HMAC SHA, RSA, RSA-PSS, and ECDSA, though hooks are present for adding your own.
This package implements HTTP request and response signing and verification. Supports the major MAC and asymmetric key signature algorithms. It has several safety restrictions: One, none of the widely known non-cryptographically safe algorithms are permitted; Two, the RSA SHA256 algorithms must be available in the binary (and it should, barring export restrictions); Finally, the library assumes either the Authorizationn or Signature headers are to be set (but not both).
Suture provides Erlang-ish supervisor trees for Go. "Supervisor trees" -> "sutree" -> "suture" -> holds your code together when it's trying to die.
It is intended to deal gracefully with the real failure cases that can occur with supervision trees (such as burning all your CPU time endlessly restarting dead services), while also making no unnecessary demands on the "service" code, and providing hooks to perform adequate logging with in a production environment
This package implements functinality to generate static MarshalJSON
and UnmarshalJSON
functions for structures in Go. The generated functions reduce the reliance upon runtime reflection to do serialization and are generally 2 to 3 times faster. In cases where @codeffjson doesn't understand a Type involved, it falls back to @codeencoding/json, meaning it is a safe drop in replacement. By using ffjson
your JSON serialization just gets faster with no additional code changes.