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
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 package provides an implementation of the LZO1X decompression algorithm in Go. The implementation is derived from the Linux kernel documentation for the LZO stream format and the implementation from lzokay project (MIT licensed). It includes a Reader for streaming decompressed data and a standalone Decompress function for use with byte slices.
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.
This package implements a seekable version of gzip-format compressed files, compliant with RFC 1952. This implementation allows seeking in the compressed file. In normal gzip files that can only be achieved by decompressing from the start and discarding all data until the selected offset. This gzip implementation works around this by creating a special metadata file that maps uncompressed blocks to compressed blocks allowing it to only read the compressed blocks required.
Package webrtc implements the WebRTC (Real-Time Communication in Browsers) 1.0 as defined in W3C WebRTC specification document. Features:
implementation of webrtc-pc and
https://www.w3.org/TR/webrtc-stats/,webrtc-statsDataChannels
Send/Receive audio and video
Renegotiation
Plan-B and Unified Plan
SettingEngine for Pion specific extensions
implemented connectivity - Full ICE Agent, ICE Restart, Trickle ICE, STUN, TURN mDNS candidates
Package webrtc implements the WebRTC (Real-Time Communication in Browsers) 1.0 as defined in W3C WebRTC specification document. Features:
implementation of webrtc-pc and
https://www.w3.org/TR/webrtc-stats/,webrtc-statsDataChannels
Send/Receive audio and video
Renegotiation
Plan-B and Unified Plan
SettingEngine for Pion specific extensions
implemented connectivity - Full ICE Agent, ICE Restart, Trickle ICE, STUN, TURN mDNS candidates
fgprof is a sampling Go profiler providing analyze On-CPU as well as Off-CPU (e.g. I/O) time together.
Go's builtin sampling CPU profiler can only show On-CPU time, but it's better than fgprof at that. Go also includes tracing profilers that can analyze I/O, but they can't be combined with the CPU profiler.
fgprof is designed for analyzing applications with mixed I/O and CPU workloads. This kind of profiling is also known as wall-clock profiling.
This package implements functionality of mapping files into memory. It tries to provide a simple interface, but doesn't go out of its way to abstract away every little platform detail.
This specifically means:
forked processes may or may not inherit mappings
a file's timestamp may or may not be updated by writes through mappings
specifying a size larger than the file's actual size can increase the file's size
if the mapped file is being modified by another process while your program's running, don't expect consistent results between platforms
ACMEz is a lightweight, fully-compliant RFC 8555 (ACME) implementation, that provides an API for getting certificates. ACMEz is suitable for large-scale enterprise deployments. It also supports common IETF-standardized ACME extensions.
This module has two primary packages:
acmezis a high-level wrapper for getting certificates. It implements the ACME order flow described in RFC 8555 including challenge solving using pluggable solvers.acmeis a low-level RFC 8555 implementation that provides the fundamental ACME operations, mainly useful if you have advanced or niche requirements.
Main features:
Go API that thoroughly documented with spec citations.
Structured error values (problems as defined in RFC 7807.)
Smart retries (resilient against network and server hiccups.)
Challenge plasticity (randomized challenges, and will retry others if one fails.)
Context cancellation (suitable for high-frequency config changes or reloads.)
Highly flexible and customizable.
External Account Binding (EAB) support.
Tested with numerous ACME CAs (more than just Let's Encrypt.)
Implements niche aspects of RFC 8555 (such as alt cert chains and account key rollover.)
Efficient solving of large SAN lists (e.g. for slow DNS record propagation.)
Utility functions for solving challenges: device attestation challenges (draft-acme-device-attest-02), RFC 8737 (tls-alpn-01 challenge), RFC 8823 (email-reply-00 challenge; S/MIME.)
ACME Renewal Information (ARI) support (draft-ietf-acme-ari-03.)
ACMEz is a lightweight, fully-compliant RFC 8555 (ACME) implementation, that provides an API for getting certificates. ACMEz is suitable for large-scale enterprise deployments. It also supports common IETF-standardized ACME extensions.
This module has two primary packages:
acmezis a high-level wrapper for getting certificates. It implements the ACME order flow described in RFC 8555 including challenge solving using pluggable solvers.acmeis a low-level RFC 8555 implementation that provides the fundamental ACME operations, mainly useful if you have advanced or niche requirements.
Main features:
Go API that thoroughly documented with spec citations.
Structured error values (problems as defined in RFC 7807.)
Smart retries (resilient against network and server hiccups.)
Challenge plasticity (randomized challenges, and will retry others if one fails.)
Context cancellation (suitable for high-frequency config changes or reloads.)
Highly flexible and customizable.
External Account Binding (EAB) support.
Tested with numerous ACME CAs (more than just Let's Encrypt.)
Implements niche aspects of RFC 8555 (such as alt cert chains and account key rollover.)
Efficient solving of large SAN lists (e.g. for slow DNS record propagation.)
Utility functions for solving challenges: device attestation challenges (draft-acme-device-attest-02), RFC 8737 (tls-alpn-01 challenge), RFC 8823 (email-reply-00 challenge; S/MIME.)
ACME Renewal Information (ARI) support (draft-ietf-acme-ari-03.)