mtree is a filesystem hierarchy validation tooling and format. This is a library and simple CLI tool for mtree(8) implemented in Go.
go-sdl2 is SDL2 wrapped for Go users. It enables interoperability between Go and the SDL2 library which is written in C. That means the original SDL2 installation is required for this to work.
This package calculates CRC64 checksums using carryless-multiplication accelerated with SIMD instructions for both ARM and x86. The code is based on the https://github.com/awesomized/crc64fast-nvme.git, crc64fast-nvme package in Rust.
Package easyjson implements functionality to marshal/unmarshal Golang structs to/from JSON without the use of reflection. It also aims to keep generated Go code simple enough so that it can be easily optimized or fixed.
This package provides two scripts that will backup PostgreSQL databases in a cluster. They are supposed to be run in scheduled jobs. pg_backup.sh runs regular backups, pg_backup_rotated.sh runs rotated backups.
This package facilitates the BusyBox style reexec of a binary. Handlers can be registered with a name and the argv 0 of the exec of the binary will be used to find and execute custom init paths.
Features: 1..Efficient generated code without unneccessary overhead. 2.Uses gzip compression internally (selectively, only for files that compress well). 3.Enables direct access to internal gzip compressed bytes via an optional interface. 4.Outputs gofmted Go code.
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.
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.
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.
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 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).
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.