This is a package extracted from go-ipfs. Its purpose to be used to compare a set of keys based on a given metric. The primary metric used is XOR, as in kademlia.
Multiaddr is a standard way to represent addresses that does the following:
Support any standard network protocols.
Self-describe (include protocols).
Have a binary packed format.
Have a nice string representation.
Encapsulate well.
go-libp2p-asn-util is a Golang library to lookup the ASN for an IP address. It uses the IPv6 to ASN database downloaded from https://iptoasn.com/. Supports only IPv6 addresses for now.
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.
go-datastructures is a collection of useful, performant, and thread-safe Go data structures.
It includes:
Augmented Tree - Interval tree for collision in n-dimensional ranges. Implemented via a red-black augmented tree.
Bitarray - Bitarray used to detect existence without having to resort to hashing with hashmaps. Requires entities have a uint64 unique identifier. Two implementations exist, regular and sparse.
Futures - A helpful tool to send a broadcast message to listeners.
Queue - Package contains both a normal and priority queue. Both implementations never block on send and grow as much as necessary.
Fibonacci Heap - A standard Fibonacci heap providing the usual operations. Can be useful in executing Dijkstra or Prim's algorithms in the theoretically minimal time.
Range Tree - Useful to determine if n-dimensional points fall within an n-dimensional range.
Set - Set implementation which accepts items of type
interfaceand includes only a few methods.Threadsafe - A package that is meant to contain some commonly used items but in a threadsafe way.
AVL Tree - This is an example of a branch copy immutable Adelson-Velsky and Landis Balanced Binary Search Trees.
X-Fast Trie - An interesting design that treats integers as words and uses a trie structure to reduce time complexities by matching prefixes.
Y-Fast Trie - An extension of the X-Fast trie in which an X-Fast trie is combined with some other ordered data structure to reduce space consumption and improve CRUD types of operations.
Fast Integer Hashmap - A datastructure used for checking existence but without knowing the bounds of your data. If you have a limited small bounds, the bitarray package might be a better choice.
Skiplist - An ordered structure that provides amortized logarithmic operations but without the complication of rotations that are required by BSTs.
Sort - The sort package implements a multithreaded bucket sort that can be up to 3x faster than the native Golang sort package.
Numerics - Early work on some nonlinear optimization problems. The initial implementation allows a simple use case with either linear or nonlinear constraints.
B+ Tree - Initial implementation of a B+ tree. Delete method still needs added as well as some performance optimization.
Immutable B Tree - A btree based on two principles, immutability and concurrency.
Ctrie - A concurrent, lock-free hash array mapped trie with efficient non-blocking snapshots.
Dtrie - A persistent hash trie that dynamically expands or shrinks to provide efficient memory allocation.
Persistent List - A persistent, immutable linked list.
Simple Graph - A mutable, non-persistent undirected graph where parallel edges and self-loops are not permitted.
Package ed25519 implements the Ed25519 signature algorithm.
Package multicodec exposes the multicodec table as Go constants.
OpenTracing-Go is a Go implementation of the OpenTracing API.
This package provides Prometheus bindings used in IPFS development.
This package adds support for Unix domain sockets in Go HTTP clients.
This package provides an Action runner for the Gitea forge.
Pfilter is a Go package for filtering packets into multiple virtual connections from a single physical connection.
Package temperrcatcher provides a TempErrCatcher object, which implements simple error-retrying functionality.
Jibber Jabber is a GoLang Library that can be used to detect an operating system's current language.
Web Push API Encryption with VAPID support.
This is an implementation of the IPLD @urlhttps://ipld.io/specs/codecs/dag-jose/spec/,dag-jose codec.
This package provides a ordered map library that maintains amortized O(1) for Set, Get, Delete and Len.
This package provides a mirror of the assembler from the Go compiler, with import paths re-written for the assembler to be functional as a standalone library.
Package apiclient provides methods for interacting with the Circonus API. See the full Circonus API Documentation at https://login.circonus.com/resources/api for more information.
assetfs allows packages to serve static content embedded with the go-bindata tool with the standard net/http package.
Automatically set GOMEMLIMIT to match Linux cgroups(7) memory limit.
Golden files (.golden) contain the raw expected output of tests,which can contain control codes and escape sequences. golden package provides an API for comparing Golden files.
Package retryablehttp provides a familiar HTTP client interface with automatic retries and exponential backoff. It is a thin wrapper over the standard net/http client library and exposes nearly the same public API.