Package jsonschema uses reflection to generate JSON Schemas from Go types.
Features:
supports arbitrarily complex types, including interface, maps, slices, etc.
supports json-schema features such as minLength, maxLength, pattern, format, etc.
supports simple string and numeric enums
supports custom property fields via the jsonschema_extras struct tag
This package implements a functionality to configure Go's pprof features and default HTTP mux using the environment variable GOPPROF. envpprof has an init function that will run at process initialization that checks the value of the GOPPROF environment variable. The variable can contain a comma-separated list of values, for example GOPPROF=http,block.
This package implements a functionality for parsing, converting and validating OpenAPI v2.0, OpenAPI v3.0 and OpenAPI v3.1.
Package httprc implements a cache for resources available over http(s). Its aim is not only to cache these resources so that it saves on HTTP roundtrips, but it also periodically attempts to auto-refresh these resources once they are cached based on the user-specified intervals and HTTP Expires and Cache-Control headers, thus keeping the entries relativelyfresh.
Package ff is a flags-first helper package for configuring programs.
The basic idea is that myprogram -h should always show the complete configuration "surface area" of a program. Therefore, every config parameter should be defined as a flag. This module provides a simple and robust way to define those flags, and to parse them from command-line arguments, environment variables, and/or config files.
eggsampler/acme is a Go client library implementation for RFC8555 (previously ACME v2). This library can be used with the Let's Encrypt Certificate Authority (CA), but also other ACME compliant CA's such as ZeroSSL, Google Trust Services and others listed at https://acmeclients.com/certificate-authorities/.
This package provides a simple key/value logging interface for Golang for use in development and production environments. Unlike the standard library log package, this package provides logging levels that provide decreased output based upon the desired amount of output. It also comes with a command-line program hclogvet that can be used to check that the logging level methods on hclog.Logger are used correctly.
This package provides Go bindings for iptables utility. In-kernel netfilter does not have a good userspace API. The tables are manipulated via setsockopt that sets/replaces the entire table. Changes to existing table need to be resolved by userspace code which is difficult and error-prone. Netfilter developers heavily advocate using iptables utlity for programmatic manipulation. go-iptables wraps invocation of iptables utility with functions to append and delete rules; create, clear and delete chains.
This package provides a plugin system over WebAssembly. As a plugin is compiled to Wasm, it can be size-efficient, memory-safe, sandboxed and portable. The plugin system auto-generates Go SDK for plugins from Protocol Buffers files. While it is powered by Wasm, plugin authors/users don't have to be aware of the Wasm specification since the raw Wasm APIs are capsulated by the SDK.
This package implements a simple in-memory database built on immutable radix trees. The database provides Atomicity, Consistency and Isolation from ACID. Being that it is in-memory, it does not provide durability. The database is instantiated with a schema that specifies the tables and indices that exist and allows transactions to be executed. The database provides the following: Multi-Version Concurrency Control, transaction support, rich indexing, watches.
This package was initially based on the pure go BLAKE2b implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX optimized BLAKE2 implementation (which in turn is based on the official implementation. It does so by using Go's Assembler for amd64 architectures with a golang only fallback for other architectures.
In addition to AVX there is also support for AVX2 as well as SSE. Best performance is obtained with AVX2 which gives roughly a 4X performance increase approaching hashing speeds of 1GB/sec on a single core.
This is a library implementing skip lists as first described in Skip lists: a probabilistic alternative to balanced trees for the Go programming language.
Skip lists are a data structure that can be used in place of balanced trees. Skip lists use probabilistic balancing rather than strictly enforced balancing and as a result the algorithms for insertion and deletion in skip lists are much simpler and significantly faster than equivalent algorithms for balanced trees.
This package provides an immutable treap implementation in the Go Language. A treap is a data structure that maintains a dynamic set of ordered keys and allows binary searches among the keys. Its height is, with high probability, proportional to the logarithm of the number of keys, so that each search, insertion, or deletion operation takes logarithmic time to perform. gtreap's implementation of a treap is immutable, and thus provides a simple approach to multi-version concurrency control. It's an alternative fork of https://github.com/steveyen/gtreap.
Package mnemonicode.
Simple request logging in Go
Shoutrrr is a notification library for gophers
This package provides JSON equality assertions for Golang.
This packages implements a trivial HTTP client.
This package provides a cancelable reader for Go.
This package provides utilities for manipulating POSIX capabilities.
Package markdown implements markdown parser and HTML renderer.
Go implementation of crypto_secretbox_xchacha20poly1305.