This package defines two types for managing concurrency: throttle, which allows calls to a function to be coalesced among multiple concurrent goroutines and trigger, that implements channel-based condition variable.
Huh is a library for building interactive terminal forms and prompts. It provides various input types including text inputs, selections, confirms, and multi-selects with a focus on user experience and aesthetics.
This package provides a pure Go implementation of functionality comparable to GNU Readline, i.e. line editing and command history for simple TUI programs.
This library provides caching capabilities for Go with no garbage collection overhead and high concurrent performance. An unlimited number of objects can be cached in memory without increased latency or degraded throughput.
This package implements functionality based on ideas and concepts from Philipp Winter's ScrambleSuit protocol. The notable differences between ScrambleSuit and obfs4:
the handshake always does a full key exchange (no such thing as a Session Ticket Handshake)
the handshake uses the Tor Project's ntor handshake with public keys obfuscated via the Elligator 2 mapping
the link layer encryption uses NaCl secret boxes (Poly1305/XSalsa20)
Hjson is a syntax extension to JSON. It is intended to be used like a user interface for humans, to read and edit before passing the JSON data to the machine.
This package provides realpath, a Go module that when provided with a valid relative path / alias path, it will return you with a string of its real absolute path in the system.
This package is a simple Go library that provides retry functionality for functions that may fail. It includes various customizable retry strategies, such as fixed delay, backoff delay, and random delay.
This package is a simple Go library that provides retry functionality for functions that may fail. It includes various customizable retry strategies, such as fixed delay, backoff delay, and random delay.
combinator generates a slice of all possible value combinations for any given struct and a set of its potential member values. This can be used to generate extensive test matrixes among other things.
This is a simple adapter to plug in cockroachdb/pebble as a backend anywhere that accepts a go-datastore.
This package parses date strings without knowing the format in advance. It uses a scanner to read bytes and use a state machine to find format. It is much faster than shotgun based parse methods.
This package provides a Go package to intelligently and flexibly pool among multiple hosts from your Go application. Host selection can operate in round robin or epsilon greedy mode, and unresponsive hosts are avoided.
Package fastdiv implements fast division, modulus and divisibility checks for divisors known only at runtime based on paper: Faster Remainder by Direct Computation: Applications to Compilers and Software Libraries.
Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. It provides a data loading mechanism with caching and de-duplication that works across a set of peer processes.
This package contains Go bindings and sample code for Hyper-V sockets and virtio sockets.
Porter2 implements the english Porter2 stemmer. It is written completely using finite state machines to do suffix comparison, rather than the string-based or tree-based approaches.
Tools to create and manage shared memory (POSIX Shared memory) across all Unix variants. Pure Go, no external dependencies. Implements Go versions of shm_open() and shm_unlink() that interoperate with the libc versions.
slog-multi provides advanced composition patterns for Go's structured logging (slog). It enables you to build sophisticated logging workflows by combining multiple handlers with different strategies for distribution, routing, transformation, and error handling.
Notify is a Go library for interacting with the DBus notification service defined by freedesktop.org at https://developer.gnome.org/notification-spec/. Notify can deliver desktop notifications over DBus, ala how libnotify does it.
Package colour provides Quake-style colour formatting for Unix terminals. The package level functions can be used to write to stdout (or strings or other files). If stdout is not a terminal, colour formatting will be stripped.
GopherJS compiles Go code (@urlhttps://golang.org/,golang.org) to pure JavaScript code. Its main purpose is to give you the opportunity to write front-end code in Go which will still run in all browsers.
This library supports the parsing and verification as well as the generation and signing of JWTs. Current supported signing algorithms are HMAC SHA, RSA, RSA-PSS, and ECDSA, though hooks are present for adding your own.