Deck is a library for clients to make scalable presentations, using a standard markup language. Clients read deck files into the Deck structure, and traverse the structure for display, publication, etc. Clients may be interactive or produce standard formats such as SVG or PDF.
This package is an enhanced version of the golang.org/x/image/tiff library featuring:
Read support for CCITT Group3/4 compressed images.
Read/write support for LZW compressed images.
Read/write support for the CMYK color model.
Package log implements a std log compatible logging system that draws some inspiration from the Python logging module from Python's standard library. It supports multiple handlers, log levels, zero-allocation, scopes, custom formatting, and environment and runtime configuration.
This package aims to provide algorithms optimized to leverage advanced instruction sets of modern CPUs to maximize throughput and take the best advantage of the available compute power. It includes functions that have often been designed to work on arrays of values, which is where SIMD and branchless algorithms shine.
ZLint is a X.509 certificate linter that checks for consistency with standards (e.g. RFC 5280) and other relevant PKI requirements (e.g. CA/Browser Forum Baseline Requirements).
This package implements a functionality to converts Go values at runtime into their @codego/ast equivalent,which may be used in debugging and testing, as a more comprehensive and configurable version of the fmt package's %+v and %#v formatting directives. It is similar to e.g. repr in Python.
A mini testing helper for Go.
It has a simple interface (
is.OKandis.Equal).It plugs into existing Go toolchain (uses
testing.T).It's obvious for newcomers.
It also gives you
is.Panicandis.PanicWithhelpers - because testing panics is ugly.
Gocc is a compiler kit for Go written in Go. Gocc generates lexers and parsers or stand-alone DFAs or parsers from a BNF. Lexers are DFAs, which recognise regular languages. Gocc lexers accept UTF-8 input. Gocc parsers are PDAs, which recognise LR-1 languages. Optional LR1 conflict handling automatically resolves shift / reduce and reduce / reduce conflicts.
ll is a high-performance, production-ready logging library for Go, designed to provide hierarchical namespaces, structured logging, middleware pipelines, conditional logging, and support for multiple output formats, including text, JSON, colorized logs, and compatibility with Go’s slog. It’s ideal for applications requiring fine-grained log control, extensibility, and scalability.
Package pflag is a drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. It is compatible with the GNU extensions to the POSIX recommendations for command-line options. This is an actively maintained fork of https://github.com/ogier/pflag.
Gogoprotobuf is a fork of golang/protobuf with extra code generation features. This code generation is used to achieve:
fast marshalling and unmarshalling
more canonical Go structures
goprotobuf compatibility
less typing by optionally generating extra helper code
peace of mind by optionally generating test and benchmark code
other serialization formats
A minimal QPACK (RFC 9204) implementation in Go. It is minimal in the sense that it doesn't use the dynamic table at all, but just the static table and (Huffman encoded) string literals. Wherever possible, it reuses code from the HPACK implementation in the Go standard library.
Package deheap provides the implementation of a doubly ended heap. Doubly ended heaps are heaps with two sides, a min side and a max side. Like normal single-sided heaps, elements can be pushed onto and pulled off of a deheap. Deheaps have an additional Pop function, PopMax, that returns elements from the opposite side of the ordering.
This package provides features beyond the defacto YAML library including:
Pretty format for error notifications
Support Scanner or Lexer or Parser as public API
Support Anchor and Alias to Marshaler
Allow referencing elements declared in another file via anchors
Extract value or AST by YAMLPath (YAMLPath is like a JSONPath)
provides a pure Go implementation of Universally Unique Identifiers (UUID) variant as defined in RFC-4122. This package supports the following UUID versions:
Version 1, based on timestamp and MAC address (RFC-4122) Version 3, based on MD5 hashing of a named value (RFC-4122) Version 4, based on random numbers (RFC-4122) Version 5, based on SHA-1 hashing of a named value (RFC-4122)
DOM is a Go package for manipulating @urlhttps://godoc.org/golang.org/x/net/html,HTML node. The methods that exist in this package has similar name and purpose as the DOM manipulation methods in JS, which make it useful when porting code from JS to Go. Currently it used in @urlhttps://github.com/go-shiori/warc,(code warc) and @urlhttps://github.com/go-shiori/go-readability,(code go-readability).
This package provides a functionality to communicate directly with a Trusted Platform Module device. The libraries don't implement the entire spec for neither 1.2 nor 2.0.
Included submodules:
tpm- TPM 1.2 client librarytpm2- TPM 2.0 client library.direct- the prototype "TPMDirect" TPM 2.0 API, which is intended to (eventually) be 1:1 with the TPM 2.0 spec
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).
It's an alternative fork of https://github.com/go-fed/httpsig.
This package embodies four different projects.
Go versions of many standard Linux tools, such as ls, cp, or shutdown.
A way to compile many Go programs into a single binary with busybox mode.
A way to create initramfs (an archive of files) to use with Linux kernels, embeddable into firmware.
Go bootloaders that use kexec to boot Linux or multiboot kernels such as ESXi, Xen, or tboot. They are meant to be used with LinuxBoot.
This package implements ULID as specified in https://github.com/ulid/spec.
Features of ULID:
128-bit compatibility with UUID
1.21e+24 unique ULIDs per millisecond
lexicographically sortable
canonically encoded as a 26 character string, as opposed to the 36 character UUID
uses Crockford's base32 for better efficiency and readability (5 bits per character)
case insensitive
no special characters (URL safe)
monotonic sort order (correctly detects and handles the same millisecond)
libdns is a collection of free-range DNS provider client implementations. It defines the core interfaces that provider packages should implement. They are small and idiomatic interfaces with well-defined semantics.
The interfaces include:
RecordGetter to list records.
RecordAppender to append new records.
RecordSetter to set (create or change existing) records.
RecordDeleter to delete records.
This Package provides a functionality of INI file read and write, implementing features:
load from multiple data sources(file,
[]byte,io.Readerandio.ReadCloser) with overwritesread with recursion values
read with parent-child sections
read with auto-increment key names
read with multiple-line values
read with tons of helper methods
read and convert values to Go types
read and WRITE comments of sections and keys
manipulate sections, keys and comments with ease
keep sections and keys in order as you parse and save
This package provides the S2A transport credentials used by a gRPC application.
The Secure Session Agent is a service that enables a workload to offload select operations from the mTLS handshake and protects a workload's private key material from exfiltration. Specifically, the workload asks the Secure Session Agent for the TLS configuration to use during the handshake, to perform private key operations, and to validate the peer certificate chain. The Secure Session Agent's client libraries enable applications to communicate with the Secure Session Agent during the TLS handshake, and to encrypt traffic to the peer after the TLS handshake is complete.
ejson is a utility (CLI and Go library) for managing a collection of secrets in source control.
The secrets are encrypted using public key, elliptic curve cryptography (NaCl Box: Curve25519 + Salsa20 + Poly1305-AES). Secrets are collected in a JSON file, in which all the string values are encrypted. Public keys are embedded in the file, and the decrypter looks up the corresponding private key from its local filesystem.