jsonpatch is a library which provides functionality for both applying RFC6902 JSON patches against documents, as well as for calculating & applying RFC7396 JSON merge patches.
Package urlesc implements query escaping as per RFC 3986. It contains some parts of the net/url package, modified so as to allow some reserved characters incorrectly escaped by net/url.
Package strcase converts between different kinds of naming formats such as camel case (CamelCase), snake case (snake_case) or kebab case (kebab-case). The package is designed to work only with strings consisting of standard ASCII letters.
Package filepathx adds double-star globbing support to the Glob function from the core path/filepath package. You might recognize "**" recursive globs from things like your .gitignore file, and zsh. The "**" glob represents a recursive wildcard matching zero-or-more directory levels deep.
This package implements much of the decimal specification from the General Decimal Arithmetic description. This is the same specification implemented by Python’s decimal module and GCC’s decimal extension.
This package is a brotli compressor and decompressor implemented in Go. It was translated from the reference implementation (https://github.com/google/brotli) with the c2go tool at https://github.com/andybalholm/c2go.
Yamux (Yet another Multiplexer) is a multiplexing library for Golang. It relies on an underlying connection to provide reliability and ordering, such as TCP or Unix domain sockets, and provides stream-oriented multiplexing. It is inspired by SPDY but is not interoperable with it.
Yamux (Yet another Multiplexer) is a multiplexing library for Golang. It relies on an underlying connection to provide reliability and ordering, such as TCP or Unix domain sockets, and provides stream-oriented multiplexing. It is inspired by SPDY but is not interoperable with it.
The yaml package enables Golang programs to comfortably encode and decode YAML values. It was developed within Canonical as part of the juju project, and is based on a pure Golang port of the libyaml C library to parse and generate YAML data quickly and reliably.
This package implements a functionality of managing the registration, marshaling, and unmarshaling of encoded types. It helps when types are sent over a ttrpc/GRPC API and marshaled as a protobuf Any.
Package decimal implements an arbitrary precision fixed-point decimal. Features:
the zero-value is 0, and is safe to use without initialization
addition, subtraction, multiplication with no loss of precision
division with specified precision
database/sql serialization/deserialization
JSON and XML serialization/deserialization
cpuid provides information about the CPU running the current program. CPU features are detected on startup, and kept for fast access through the life of the application. Currently x86 / x64 (AMD64) is supported, and no external C (cgo) code is used, which should make the library very eas to use.
Diskv (disk-vee) is a simple, persistent key-value store written in the Go language. It starts with a simple API for storing arbitrary data on a filesystem by key, and builds several layers of performance-enhancing abstraction on top. The end result is a conceptually simple, but highly performant, disk-backed storage system.
go-cache is an in-memory key:value store/cache similar to Memcached that is suitable for applications running on a single machine. Its major advantage is that, being essentially a thread-safe map[string]interface with expiration times, it doesn't need to serialize or transmit its contents over the network.
This is an IPLD ADL that provides string based pathing for protobuf nodes. The top level node behaves like a map where LookupByString returns the Hash property on the Link in the protobufs list of Links whos Name property matches the key. This should enable selector traversals that work based of paths.
Package jsonschema uses reflection to generate JSON Schemas from Go types.
Features:
supports arbitrarily complex types, including interface, maps, slices, etc.
supports json-schema features such as minLength, maxLength, pattern, format, etc.
supports simple string and numeric enums
supports custom property fields via the jsonschema_extras struct tag
This package implements a functionality to configure Go's pprof features and default HTTP mux using the environment variable GOPPROF. envpprof has an init function that will run at process initialization that checks the value of the GOPPROF environment variable. The variable can contain a comma-separated list of values, for example GOPPROF=http,block.
wazero is a WebAssembly Core Specification 1.0 and https://www.w3.org/TR/2022/WD-wasm-core-2-20220419/,2.0 compliant runtime. It has zero dependencies, and doesn't rely on CGO. This means you can run applications in other languages and still keep cross compilation.
This package implements a functionality for parsing, converting and validating OpenAPI v2.0, OpenAPI v3.0 and OpenAPI v3.1.
Package ff is a flags-first helper package for configuring programs.
The basic idea is that myprogram -h should always show the complete configuration "surface area" of a program. Therefore, every config parameter should be defined as a flag. This module provides a simple and robust way to define those flags, and to parse them from command-line arguments, environment variables, and/or config files.
This package provides a simple key/value logging interface for Golang for use in development and production environments. Unlike the standard library log package, this package provides logging levels that provide decreased output based upon the desired amount of output. It also comes with a command-line program hclogvet that can be used to check that the logging level methods on hclog.Logger are used correctly.
This package was initially based on the pure go BLAKE2b implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX optimized BLAKE2 implementation (which in turn is based on the official implementation. It does so by using Go's Assembler for amd64 architectures with a golang only fallback for other architectures.
In addition to AVX there is also support for AVX2 as well as SSE. Best performance is obtained with AVX2 which gives roughly a 4X performance increase approaching hashing speeds of 1GB/sec on a single core.
Package mnemonicode.