go-ipld-format is a set of interfaces that a type needs to implement in order to be a part of the IPLD merkle-forest.
This package implements a Perl5 like temporary variable, for applications requiring reloading of configuration from environment variables or during the tests temporarily change the value of an environment variable in Golang.
The jwz package provides an implementation of the email threading algorithm originally designed for use in Netscape Mail 2.0 and 3.0 for Golang.
zerossl implements the ZeroSSL REST API.
The REST API is distinct from the ACME endpoint, which is a standardized way of obtaining certificates.
TreeLock is a tree-based locking mechanism in the Go Programming Language. It acts similar to sync.Mutex, but instead locks on a name-by-name basis, basically a map[string]sync.Mutex, with some additional features.
BadgerDB implements an embeddable, key-value (KV) database, written in pure Go. It is designed to be highly performant for both reads and writes simultaneously. It uses Multi-Version Concurrency Control, supports concurrent serializable transactions.
HyperLogLog is an improved version of HyperLogLog for the count-distinct problem, approximating the number of distinct elements in a multiset. This implementation offers enhanced performance, flexibility, and simplicity while maintaining accuracy.
Package lockfile handles pid file based locking. While a sync.Mutex helps against concurrency issues within a single process, this package is designed to help against concurrency issues between cooperating processes or serializing multiple invocations of the same process.
This is a development helper program that generates a Golang interface by inspecting the structure methods of an existing .go file. The primary use case is to generate interfaces for gomock, so that gomock can generate mocks from those interfaces.
Package sqlmock is a mock library implementing sql driver. Which has one and only purpose - to simulate any sql driver behavior in tests, without needing a real database connection. It helps to maintain correct TDD workflow.
Package testza is a full-featured testing framework for Go. It integrates with the default test runner, so you can use it with the standard go test tool. Testza contains easy to use methods, like assertions, output capturing, mocking, and much more.
The netlink package provides a simple netlink library for Go. 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 IP addresses and routes, and configure IPsec.
This library provides typesetting capabilities in pure Go. It is appropriate for use in GUI applications, and is shared by multiple Go UI toolkits including @urlhttps://fyne.io,Fyne, @urlhttps://gioui.org,Gio, and @urlhttps://ebitengine.org,Ebitengine.
gotestspace is used to quickly create a working directory for shell execution using Go, as well as a tool for customizing the execution of the shell. It can help you quickly create an independent workspace for unit testing and improve the efficiency of unit test writing.
Package bolthold is an indexing and querying layer on top of a Bolt database. The goal is to allow easy, persistent storage and retrieval of Go types. BoltDB is an embedded key-value store, and bolthold servers a similar use case however with a higher level interface for common uses of BoltDB.
Package httpcache provides a http.RoundTripper implementation that works as a mostly RFC 7234 compliant cache for HTTP responses. It is only suitable for use as a "private" cache (i.e. for a web-browser or an API-client and not for a shared proxy).
This package provides a re-implementation of Julien Schmidt's httprouter, in that it uses a patricia tree, but the logic is rather different. Specifically, the routing rules are relaxed so that a single path segment may be a wildcard in one route and a static token in another.
This package implements a functionality to be used for servers listening behind HAProxy of Amazon ELB load balancers. Those load balancers support the use of a proxy protocol, which provides a simple mechansim for the server to get the address of the client instead of the load balancer.
Package chanqueue implements a queue that uses channels for input and output to provide concurrent access to a re-sizable queue. This allows the queue to be used like a channel. Closing the input channel closes the output channel when all queued items are read, consistent with channel behavior. In other words chanqueue is a dynamically buffered channel with up to infinite capacity.
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.