This package is a library for parsing versions and version constraints, and verifying versions against a set of constraints. It can sort a collection of versions properly, handles prerelease/beta versions, can increment versions.
This package implements XOR tries. An XOR trie is a trie for equal-length bit strings. XOR tries support efficient set operations, as well as distance-based operations with respect to the XOR metric.
This package provides cryptography for Go. This version of the package is a fork that adds a more up-to-date OpenPGP implementation. It is completely backwards compatible with golang.org/x/crypto, the official package.
This package allows the kernel's routing tables to be read and altered. Network routes, IP addresses, Link parameters, Neighbor setups,Queueing disciplines, Traffic classes and Packet classifiers may all be controlled. It is based on netlink messages.
Package blocks contains the lowest level of IPLD data structures. A block is raw data accompanied by a Content Identifiers. The CID contains the multihash corresponding to the block.
Prometheus monitoring and https://godoc.org/golang.org/x/net/trace# tracing wrappers net.Conn, both inbound (@codenet.Listener) and outbound (@codenet.Dialer).
Package rtnetlink allows the kernel's routing tables to be read and altered. Network routes, IP addresses, Link parameters, Neighbor setups, Queueing, disciplines, Traffic classes and Packet classifiers may all be controlled. It is based on netlink messages.
This package provides a Golang library implementing the conversion of date and time information from a given calendar time to a character string according to a format string. It is optimized for scenarios where the same pattern is called repeatedly.
go-testmark is a library to parse, patch data and test fixtures from Markdown files, using the testmark format, which itself is a subset of Markdown format.
This package provides a CLI application to execute scripts on IMAP mailbox changes (new/deleted/updated messages) using IDLE and it is mostly compatible with the configuration of imapnotify made with Python.
This package provides a CLI application to execute scripts on IMAP mailbox changes (new/deleted/updated messages) using IDLE and it is mostly compatible with the configuration of imapnotify made with Python.
term provides an API for working with terminals that includes:
Switching a terminal to the raw mode.
Getting, setting and restoring the state of a terminal.
Getting size of a terminal.
Reading passwords from a terminal without a local echo.
This package provides Go modules focused on text parsing, with lexers, parsers, and related tools.
Included modules are:
github.com/tekwizely/go-parsing
github.com/tekwizely/go-parsing/lexer
github.com/tekwizely/go-parsing/lexer/token
github.com/tekwizely/go-parsing/parser
Package levenshtein is a Go implementation to calculate Levenshtein Distance. The library is fully capable of working with non-ascii strings. But the strings are not normalized. That is left as a user-dependant use case. Please normalize the strings before passing it to the library if you have such a requirement.
This package implements a feature of limiting the maximum number of concurrently started routines which has the same role and API as sync.WaitGroup. It could for example be used to start multiples routines querying a database but without sending too much queries in order to not overload the given database.
This library is meant to handle Web Authentication for Go apps that wish to implement a passwordless solution for users. This library conforms as much as possible to the guidelines and implementation procedures outlined by the document. It's a successor of not maintained https://github.com/duo-labs/webauthn library.
This package provides an utility for timezone manipulation, implementing the following features:
this library uses only the standard package
supports getting offset from timezone abbreviation, which is not supported by the time package
determine whether the specified time.Time is daylight saving time
change the location of time.Time by specifying the timezone
This package provides a UEFI library written to interact with Linux efivars. The goal is to provide a Go library to enable application authors to better utilize secure boot and UEFI. This also includes unit-testing to ensure the library is compatible with existing tools, and integration tests to ensure the library is able of deal with future UEFI revisions.
umoci modifies Open Container images (pronounced /uːmoˈʨi/) is a reference implementation of the https://github.com/opencontainers/image-spec and provides users with the ability to create, manipulate, and otherwise interact with container images. It is designed to be as small and unopinonated as possible, so as to act as a foundation for larger systems to be built on top of.
ChunkReader is a io.Reader wrapper that minimizes IO reads and memory allocations. It allocates memory in chunks and will read as much as will fit in the current buffer in a single call regardless of how large a read is actually requested. The memory returned via Next is owned by the caller. This avoids the need for an additional copy. It extracted from original implementation in https://github.com/jackc/pgx.
This package implements Opentelemetry instrumentation support for ttRPC. The interceptors can be passed as ttrpc.ClientOpts and ttrpc.ServerOpt to ttRPC during client and server creation. The interceptors then automatically handle generating trace spans for all called and served unary method calls. If the rest of the code is properly set up to collect and export tracing data to opentelemetry, these spans should show up as part of the collected traces.
memberlist is a Go library that manages cluster membership and member failure detection using a gossip based protocol.
The use cases for such a library are far-reaching: all distributed systems require membership, and memberlist is a re-usable solution to managing cluster membership and node failure detection.
memberlist is eventually consistent but converges quickly on average. The speed at which it converges can be heavily tuned via various knobs on the protocol. Node failures are detected and network partitions are partially tolerated by attempting to communicate to potentially dead nodes through multiple routes.
This package produces a collection of cryptographic utilities, including the following:
drbg: a cryptographically secure pseudorandom number generator as specified in NIST SP 800-90Aencoding/base32: a compact base32 encodersecretkey: user-friendly secret keys that can be used with secretboxsalsa20: a streaming interface (cipher.Stream) for the Salsa20 stream cipherpoly1305: a streaming interface (hash.Hash) for the Poly1305 one-time authenticator as specified in poly1305
This is a Go library for detecting the user's home directory without the use of cgo, so the library can be used in cross-compilation environments.
Usage is simple, just call homedir.Dir() to get the home directory for a user, and homedir.Expand() to expand the ~ in a path to the home directory.
Why not just use os/user? The built-in os/user package requires cgo on Darwin systems. This means that any Go code that uses that package cannot cross compile. But 99% of the time the use for os/user is just to retrieve the home directory, which we can do for the current user without cgo. This library does that, enabling cross-compilation.