go-github-com-nu7hatch-gouuid provides immutable UUID structs and the functions NewV3, NewV4, NewV5 and Parse() for generating versions 3, 4 and 5 UUIDs as specified in RFC 4122.
Package agent implements the ssh-agent protocol, and provides both a client and a server. The client can talk to a standard ssh-agent that uses UNIX sockets, and one could implement an alternative ssh-agent process using the sample server.
go-opt is a library to parse command line arguments based on tag annotations on struct fields. It came as a spin-off from aerc to deal with its internal commands.
ioprogress is a Go library with implementations of io.Reader and io.Writer that draws progress bars. The primary use case for these are for command-line applications but alternate progress bar writers can be supplied for alternate environments.
GoProxy is a library to create a customized HTTP/HTTPS proxy server using Go (aka Golang), with several configurable settings available. The target of this project is to offer an optimized proxy server, usable with reasonable amount of traffic, yet customizable and programmable.
This package implements much of the decimal specification from the General Decimal Arithmetic description. This is the same specification implemented by Python’s decimal module and GCC’s decimal extension.
This package is a drop-in replacement for the standard library hash/crc32 package, that features AVX 512 optimizations on x64 platforms, for a 2x speedup for IEEE CRC32 checksums. See Cyclic redundancy check for information.
Server-sent events is a technology where a browser receives automatic updates from a server via HTTP connection. The SSE EventSource API is standardized as part of HTML5[1] by the W3C.
This package implements parallel gzip compression and decompression in Golang and is fully compatible with compress/gzip from the standard library. This is beneficial for large amounts of data, say more than 1MB at a time, as otherwise the internal gzip library will likely be faster.
This package provides the socks5 package that implements a SOCKS5 server. 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.
FarmHash provides hash functions for strings and other data. The functions mix the input bits thoroughly but are not suitable for cryptography. It is implemented as a mechanical translation of the non-SSE4/non-AESNI hash functions from Google's FarmHash.
This package implements parsing and generation of some PKCS#7/Cryptographic Message Syntax (https://www.rfc-editor.org/rfc/rfc2315, RFC 2315, RFC 5652) structures for Go applications. It's an alternative fork of deprecated https://github.com/mozilla-services/pkcs7.
cpuid provides information about the CPU running the current program. CPU features are detected on startup, and kept for fast access through the life of the application. Currently x86 / x64 (AMD64) is supported, and no external C (cgo) code is used, which should make the library very eas to use.
Go sigar is a golang implementation of the sigar API. The Go version of sigar has a very similar interface, but is being written from scratch in pure go/cgo, rather than cgo bindings for libsigar. This package provides an alternative fork of https://github.com/cloudfoundry/gosigar.
This is a library for manipulating geometric shapes. Unlike many geometry libraries, S2 is primarily designed to work with spherical geometry, i.e., shapes drawn on a sphere rather than on a planar 2D map. This makes it especially suitable for working with geographic data. It an alternative fork of https://github.com/golang/geo.
Package deque provides a fast ring-buffer deque (double-ended queue) implementation for Golang.
It generalizes a queue and a stack, to efficiently add and remove items at either end with O(1) performance. Queue (FIFO) operations are supported using PushBack and PopFront. Stack (LIFO) operations are supported using PushBack and PopBack.
Go-fuzz is a coverage-guided fuzzing solution for testing of Go packages. Fuzzing is mainly applicable to packages that parse complex inputs (both text and binary), and is especially useful for hardening of systems that parse inputs from potentially malicious users (e.g. anything accepted over a network).
This Go library represents physical units like length, area, speed, and temperature as typed floating point numbers. Methods to convert between metric and US customary units of measurement are provided on each type. Additional units can be created by multiplying by const values and variables can be converted by casting.
This package, fsx, takes the style of the io/fs package, and extends it with more features:
fsx provides the ability to write files (using OpenFile, which is much like the os package feature you're already familiar with)
fsx provides the ability to create directories
fsx provides the ability to delete files and directories
fsx provides features for reading symlinks, and creating them
This package implements a functionality for two parties to generate a mutual secret key by using a weak key that is known to both beforehand (e.g. via some other channel of communication). This is a simple API for an implementation of Password-Authenticated Key Exchange. This protocol is derived from Dan Boneh and Victor Shoup's cryptography book (pg 789, PAKE2 protocol).
Package buffer implements a series of Buffers which can be composed to implement complicated buffering strategies.
Supported buffers:
Wrapper for bytes.
File-based buffering.
A fixed length linked-list of buffers.
A queue of buffers.
A single buffer which begins overwriting the oldest buffered data when it reaches its capacity.
A single buffer which when full, writes the overflow to a given io.
Empty buffer.
Customize buffers.
The termui Go library draws customizable dashboard widgets in a text terminal. It includes several common widgets: lists, trees, tables and tabs, but also more complex items such as (stacked) bar and pie charts, scatter plots, gauges, and even images and a canvas for drawing `high resolution' braille dots.
You can also easily create new custom widgets. Widgets can be coloured and styled and positioned absolutely or relatively. They respond to keyboard, mouse, and terminal resizing events.
Fastzip is an opinionated Zip archiver and extractor with a focus on speed. Features:
archiving and extraction of files and directories can only occur within a specified directory
permissions, ownership (uid, gid on linux/unix) and modification times are preserved
buffers used for copying files are recycled to reduce allocations
files are archived and extracted concurrently
by default,
github.com/klauspost/compress/flatelibrary is used for compression and decompression
ksuid is an efficient, comprehensive, battle-tested Go library for generating and parsing a specific kind of globally unique identifier called a KSUID. This library serves as its reference implementation.
KSUID is for K-Sortable Unique IDentifier. It is a kind of globally unique identifier similar to a RFC 4122 UUID, built from the ground-up to be "naturally" sorted by generation timestamp without any special type-aware logic.