Package cli provides a minimal framework for creating and organizing command line Go applications. cli is designed to be easy to understand and write, the most simple cli application can be written as follows:
noise
implements the Noise protocol framework. Noise is a low-level framework for building crypto protocols. Noise protocols support mutual and optional authentication, identity hiding, forward secrecy, zero round-trip encryption, and other advanced features.
This package is a drop in replacement for the built-in Go log package. All the functionality of the built-in package still exists and is unchanged. This package contains a series of small enhancements and additions.
The uniseg package provides a tool to iterate over grapheme clusters. This may be used to determine the number of user-perceived characters, to split strings in their intended places, or to extract individual characters which form a unit.
Package gorilla/pat is a request router and dispatcher with a pat-like interface. It is an alternative to gorilla/mux that showcases how it can be used as a base for different API flavors. Package pat is documented at:
This package provides a library for embedding human-meaningful graphics in QR codes. However, instead of scribbling on redundant pieces and relying on error correction to preserve the meaning, qart
engineers the encoded values to create the picture in a code with no inherent errors.
Bolt is a pure Go key/value store inspired by Howard Chu's LMDB project. The goal of the project is to provide a simple, fast, and reliable database for projects that don't require a full database server such as Postgres or MySQL.
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.
Pflag is library to replace Go's flag
package. It implements POSIX/GNU-style command-line options with double hyphens. It is is compatible with the GNU extensions to the POSIX recommendations for command-line options.
Tengo is a small, dynamic, fast, secure script language for Go. Features:
simple and highly readable syntax
dynamic typing with type coercion
higher-order functions and closures
immutable values
securely embeddable and extensible
compiler/runtime written in native Go (no external deps or cgo)
executable as a standalone language/REPL
use cases: rules engine, state machine, data pipeline, transpiler
goupnp
is a Universal Plug and Play client library for Go.
Core components:
goupnp
: core library - contains datastructures and utilities typically used by the implemented DCPshttpu
: HTTPU implementation, underlies SSDPssdp
: SSDP client implementation (simple service discovery protocol) - used to discover UPnP services on a networksoap
: SOAP client implementation (simple object access protocol) - used to communicate with discovered services
golib
is a collection of unrelated libraries. This package provides a following list of Golang models:
bufpipe
Implements a buffered pipe.
cron
Parses and runs cron schedules.
hashmerge
Merges hash checksums.
jsoncs
Implements JSON Canonicalization Scheme (JCS) as specified in RFC 8785.
jsonfmt
Implements a JSON formatter.
memfile
Implements an in-memory emulation of
os.File
.unitconv
Implements string conversion functionality for unit prefixes.
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:
acmez
is a high-level wrapper for getting certificates. It implements the ACME order flow described in RFC 8555 including challenge solving using pluggable solvers.acme
is 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.)
go vet
tool for Gitea.
Package rebecca is a readme generator.
NLP-related string utility functions for Golang.
Package i18n is for app Internationalization and Localization.
This package implements recursive copy functionality for directory.
Package srtp implements Secure Real-time Transport Protocol.
This package implements Btrfs functionality in a pure Go.