Package smetrics provides a bunch of algorithms for calculating the distance between strings. There are implementations for calculating the popular Levenshtein distance (aka Edit Distance or Wagner-Fischer), as well as the Jaro distance, the Jaro-Winkler distance, and more.
This package implements high-performance external sorting library for Go that enables sorting of arbitrarily large datasets that don't fit entirely in memory. The library operates on channels and uses temporary disk storage to handle datasets larger than available RAM.
Package uuid provides implementation of Universally Unique Identifier. Supported versions are 1, 3, 4 and 5 (as specified in RFC 4122) and version 2 (as specified in DCE 1.1).
This package is a simple mDNS client/server library in Go. mDNS can be used to discover services on the local network without the use of an authoritative DNS server. This enables peer-to-peer discovery.
cty (pronounced "see-tie") is a dynamic type system for applications written in Go that need to represent user-supplied values without losing type information. The primary intended use is for implementing configuration languages, but other uses may be possible too.
Package stack implements utilities to capture, manipulate, and format call stacks. It provides a simpler API than package runtime. The implementation takes care of the minutia and special cases of interpreting the program counter (pc) values returned by runtime.Callers.
gronx is cron expression parser ported from adhocore/cron-expr with task runner and daemon that supports crontab like task list file. It may be used programatically in Golang or as standalone binary instead of crond.
lz4 provides a streaming interface to LZ4 data streams as well as low level compress and uncompress functions for LZ4 data blocks. The implementation is based on the reference C one.
This package provides a opinionated logging for Golang. Features:
zero dependencies
Global logger (with optional local logger)
leveled
useful defaults / i.e. zero-config
simple API
colors on Linux
set leveling via environmental variables
LOGGER=trace|debug|info|warn|error
lumin is a simple command-line program which highlights matches to a specified pattern (string or regex) in the specified files. This is like grep with --color, except that lumin shows all lines, not just matching lines. This package provides a CLI tool and colors library.
The errgo package provides a way to create and diagnose errors. It is compatible with the usual Go error idioms but adds a way to wrap errors so that they record source location information while retaining a consistent way for code to inspect errors to find out particular problems.
termenv lets you safely use advanced styling options on the terminal. It gathers information about the terminal environment in terms of its ANSI and color support and offers you convenient methods to colorize and style your output, without you having to deal with all kinds of weird ANSI escape sequences and color conversions.
Package compress is a collection of compression libraries implementing Golang modules:
brotliImplements the Brotli format, described in RFC 7932.
bzip2Implements the BZip2 compressed data format.
flateImplements the DEFLATE format, described in RFC 1951.
xflateImplements the XFLATE format, an random-access extension to DEFLATE.
This package provides a Go implementation of JSON Web Tokens and supports the parsing and verification as well as the generation and signing of JSON Web Tokens. The currently supported signing algorithms are HMAC SHA, RSA, RSA-PSS, and ECDSA, though hooks are present for adding your own.
This package implements a functionality plugin domain or vendor specific custom logic into OCI - compatible runtimes. This logic can make controlled changes to containers or perform extra actions outside the scope of OCI at certain points in a containers lifecycle. This can be used, for instance, for improved allocation and management of devices and other container resources.
Package uinput is a pure go package that provides access to the userland input device driver uinput on linux systems. Virtual keyboard devices as well as virtual mouse input devices may be created using this package. The keycodes and other event definitions, that are available and can be used to trigger input events, are part of this package ("Key1" for number 1, for example).
This is a SIMD accelerated MD5 package, allowing up to either 8 (AVX2) or 16 (AVX512) independent MD5 sums to be calculated on a single CPU core.
md5-simd integrates a similar mechanism as described in minio/sha256-simd for making it easy for clients to take advantages of the parallel nature of the MD5 calculation. This will result in reduced overall CPU load.
This library enables complex data structure testing, specifically:
realtime transformation or casting of incompatible data types with directives system
consistent way of testing of unordered structures
contains, Range, RegExp support on any data structure deeph level
switch case directive to provide expected value alternatives based on actual switch/case input match
macro system enabling complex predicate and expression evaluation, and customization
This library enables complex data structure testing, specifically:
realtime transformation or casting of incompatible data types with directives system
consistent way of testing of unordered structures
contains, Range, RegExp support on any data structure deeph level
switch case directive to provide expected value alternatives based on actual switch/case input match
macro system enabling complex predicate and expression evaluation, and customization
This package implements HTTP request and response signing and verification. Supports the major MAC and asymmetric key signature algorithms. It has several safety restrictions: One, none of the widely known non-cryptographically safe algorithms are permitted; Two, the RSA SHA256 algorithms must be available in the binary (and it should, barring export restrictions); Finally, the library assumes either the Authorizationn or Signature headers are to be set (but not both).
Suture provides Erlang-ish supervisor trees for Go. "Supervisor trees" -> "sutree" -> "suture" -> holds your code together when it's trying to die.
It is intended to deal gracefully with the real failure cases that can occur with supervision trees (such as burning all your CPU time endlessly restarting dead services), while also making no unnecessary demands on the "service" code, and providing hooks to perform adequate logging with in a production environment
This package implements functionality to generate static MarshalJSON and UnmarshalJSON functions for structures in Go. The generated functions reduce the reliance upon runtime reflection to do serialization and are generally 2 to 3 times faster. In cases where @codeffjson doesn't understand a Type involved, it falls back to @codeencoding/json, meaning it is a safe drop in replacement. By using ffjson your JSON serialization just gets faster with no additional code changes.
A standalone binary that provides an easy way of installing and uninstalling plugins from Pragtical, as well as different versions of Pragtical.
The plugin output contains a plugin_manager.lua plugin to integrate the binary with Pragtical in the form of an easy-to-use GUI. The binary is also included in this output.
Note: Plugins installed via Guix will show up as "bundled", as these plugins are installed in
$PREFIXlike bundled plugins.