This is a Go port of the exponential backoff algorithm from Google's HTTP Client Library for Java.
Exponential backoff is an algorithm that uses feedback to multiplicatively decrease the rate of some process, in order to gradually find an acceptable rate. The retries exponentially increase and stop increasing when a certain threshold is met.
This is a Go port of the exponential backoff algorithm from Google's HTTP Client Library for Java.
Exponential backoff is an algorithm that uses feedback to multiplicatively decrease the rate of some process, in order to gradually find an acceptable rate. The retries exponentially increase and stop increasing when a certain threshold is met.
The ocicrypt library is the OCI image spec implementation of container image encryption. More details of the spec can be seen in the OCI repository. The purpose of this library is to encode spec structures and consts in code, as well as provide a consistent implementation of image encryption across container runtimes and build tools.
Package gocui allows creating console user interfaces.
Highlighted features:
Minimalist API.
Views (the windows in the GUI) implement the interface io.ReadWriter.
Support for overlapping views.
The GUI can be modified at runtime (concurrent-safe).
Global and view-level keybindings.
Mouse support.
Colored text.
Customizable edition mode.
Easy to build reusable widgets, complex layouts.
This is an implementation of go-datastore that is backed by DynamoDB.
ddbds includes support for optimized prefix queries. When you setup your table's key schema correctly and register it with ddbds, then incoming queries that match the schema will be converted into DynamoDB queries instead of table scans, enabling high performance, ordered, high-cardinality prefix queries.
JSON Patch implementation for Go as specified in RFC 6902 from the IETF.
JSON Patch allows you to generate JSON that describes changes you want to make to a document, so you don't have to send the whole doc. JSON Patch format is supported by HTTP PATCH method, allowing for standards based partial updates via REST APIs.
go-reuseport enables listening and dialing from the same TCP or UDP port. This means that SO_REUSEADDR and SO_REUSEPORT socket options may be set. This is particularly important when attempting to do TCP NAT hole-punching, which requires a process to both Listen and Dial on the same TCP port. go-reuseport provides some utilities around enabling this behaviour on various operating systems.
Package proxyproto implements Proxy Protocol (v1 and v2) parser and writer, as per specification: @urlhttps://www.haproxy.org/download/2.3/doc/proxy-protocol.txt. It is to be used in one of or both proxy clients and proxy servers that need to support said protocol. Both protocol versions, 1 (text-based) and 2 (binary-based) are supported. TLV parsers extensions coming with this library support AWS, Azure and GCP.
Fast IP to CIDR block(s) lookup using trie in Golang, inspired by IPv4 route lookup Linux. Possible use cases include detecting if a IP address is from published cloud provider CIDR blocks (e.g. 52.95.110.1 is contained in published AWS Route53 CIDR 52.95.110.0/24), IP routing rules, etc.
Package netlink provides a simple library for netlink. Netlink is the interface a user-space program in linux uses to communicate with the kernel. It can be used to add and remove interfaces, set up ip addresses and routes, and confiugre ipsec. Netlink communication requires elevated privileges, so in most cases this code needs to be run as root. The low level primitives for netlink are contained in the nl subpackage. This package attempts to provide a high-level interface that is loosly modeled on the iproute2 cli.
This package provides a pure Go Kerberos library. It features:
Kerberos libraries for custom integration
Parsing Keytab files
Parsing krb5.conf files
Parsing client credentials cache files such as /tmp/krb5cc_$(id -u $(whoami))
On the client side, it provides a client that can authenticate to an SPNEGO Kerberos authenticated web service, and the ability to change client's password.
On the server side, the library provides a HTTP handler wrapper implements SPNEGO Kerberos authentication, as well as a HTTP handler wrapper decodes Microsoft AD PAC authorization data.
This package implements a SOCKS5. SOCKS (Secure Sockets) is used to route traffic between a client and server through an intermediate proxy layer. This can be used to bypass firewalls or NATs.
Features:
support socks5 server
support TCP/UDP and IPv4/IPv6
unit tests
"No Auth" mode
user/password authentication optional user addr limit
support for the CONNECT command
support for the ASSOCIATE command
rules to do granular filtering of commands
custom DNS resolution
custom goroutine pool
buffer pool design and optional custom buffer pool
custom logger
Package btcec implements elliptic curve cryptography needed for working with Bitcoin (secp256k1 only for now). It is designed so that it may be used with the standard crypto/ecdsa packages provided with Go. A comprehensive suite of test is provided to ensure proper functionality. Package btcec was originally based on work from ThePiachu which is licensed under the same terms as Go, but it has significantly diverged since then. The btcsuite developers original is licensed under the liberal ISC license.
Although this package was primarily written for btcd, it has intentionally been designed so it can be used as a standalone package for any projects needing to use secp256k1 elliptic curve cryptography.
This package is an implementation of Git's wildmatch.c-style pattern matching.
go-github is a Go client library for accessing the GitHub API v3.
go-github is a Go client library for accessing the GitHub API v3.
go-github is a Go client library for accessing the GitHub API v3.
Terminal utilities for golang
Package squirrel provides a fluent SQL generator.
Blackfriday is a Markdown processor in Go.
A Golang library to verify Minisign signatures.
Package fasttemplate implements simple and fast template library.
ANSI escape sequence parser and definitions
Package linkheader provides functions for parsing HTTP Link headers.