Package spew
implements a deep pretty printer for Go data structures to aid in debugging.
A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
Pointers are dereferenced and followed.
Circular data structures are detected and handled properly.
Custom Stringer/error interfaces are optionally invoked, including on unexported types.
Custom types which only implement the Stringer/error interfaces via a pointer receiver are optionally invoked when passing non-pointer variables.
Byte arrays and slices are dumped like the hexdump -C command which includes offsets, byte values in hex, and ASCII output (only when using Dump style).
Package poller is a file-descriptor multiplexer. It allows concurrent Read and Write operations from and to multiple file-descriptors without allocating one OS thread for every blocked operation. It operates similarly to Go's netpoller (which multiplexes network connections) without requiring special support from the Go runtime. It can be used with tty devices, character devices, pipes, FIFOs, and any file-descriptor that is poll-able, can be used with select(2), epoll(7), etc.
In addition, package poller allows the user to set timeouts (deadlines) for read and write operations, and also allows for safe cancellation of blocked read and write operations; a Close from another go-routine safely cancels ongoing (blocked) read and write operations.
It's an active fork of https://github.com/npat-efault/poller.
This package provides smooth, resilient, ordered, error-checked and anonymous delivery of streams over UDP packets. Features:
designed for latency-sensitive scenarios
cache-friendly and memory-optimized design
handles >5K concurrent connections on a single commodity server
compatible with
net.Conn
andnet.Listener
, serving as a drop-in replacement fornet.TCPConn
Forward Error Correction support with Reed-Solomon Codes
packet-level encryption support with
3DES
,AES
,Blowfish
,Cast5
,PBKDF2
,SM4
,Salsa20
,TEA
,Twofish
, andXTEA
only a fixed number of goroutines are created for the entire server application
compatible with skywind3000's C version with various improvements
websocket
is a minimal and idiomatic WebSocket library for Go.
Main features:
Minimal and idiomatic API.
First class context.Context support.
Fully passes the WebSocket autobahn-testsuite.
JSON helpers in the wsjson subpackage
Zero alloc reads and writes.
Concurrent writes.
net.Conn wrapper
Ping pong API.
RFC 7692 permessage-deflate compression.
CloseRead helper for write only connections
Compile to Wasm.
This package provides a collection veriaty of utility libraries:
intset - compress a stream of integers
lz - lempel-ziv compression
threadtree - a threaded binary-tree
numerical - numerical integration and root finding
maze - maze generation stuff
hist - simple command-line histogramming tool
simhash - trivial simhash implementation
wscat - trivial websocket netcat
servedir - trivial http fileserver
rndtxt - generate random text strings
mpush - push to multiple notification services (pushbullet, nma, pushover)
superbat - batmanjs and go-restful playground
msgrpc - msgpack rpc python/go interop samples
quantile - testing different streaming quantile estimators
wtflog - logging package with some renamed log levels
qrshow - display QR codes in a terminal
nlz - asm code to find number of leading zeros
httpecho - server to dump information about an http request
lzpack - trivial packed format for lz4 compression
grinderplot - generate a flot chart from grinder logs
worker - framework for spawning concurrent workers
gddo - search godoc.org from the command line
uuid - generate random UUIDs
entropy - reducer to compute entropy per epoch for a set of values in a category
inthash - integer hashing functions
udprelay - simple udp-to-tcp multiplexing relay
shufsecs - shuffle sorted epoch-data within epochs
strtable - dumb string->uint32 hash table for profiling vs native maps
cachetest - playing with different caching algorithms (clock, lru, lfu, random)
glj - passing data from go to lua with msgpack
toms - text filter for time.Duration to milliseconds
bluniq - bloom-filter based unique filter
skvdist - check distribution of shardedkv choosers
gcwatch - print out garbage collection stats from /debug/vars
toepoch - convert time fields to epochs
repl - framework for making dumb repls for testing
skvchk - tool for checking shardedkv distributions
interp - interpolation search
oma - simulation of the Dutch children's board game "Met de bus naar Oma"
rndsample - uniform random sample from stdin
pphrase - simple passphrase generator
fastrand - fast xorshift rng with bias-free [0..n)
range2cird - turn IP ranges into CIDR
gfmt - trivial filter wrapping go-linebreak
mtest - port of libtommath test program
leven - fastest levenshtein distance algorithm I could find
matcher - test different methods of testing string set membership
cstbucket - crunch carbonserver logs for time-ranges of queries
stablepart - stable partition a sort.Interface on a boolean predicate
jumpreplica - tool for playing with replica choices for jump-hash
sshdregex - demo using ragel for optimized regexp matching
hllbench - benchmark different hyperloglog implementations
shlines, sipsum - tools for siphashing things
urlq - extract query parameters from a list of URLs
median - compute the median of 5 numbers with a sorting network
hashbench - benchmark different hashing functions
fastpprof - how to use pprof with fasthttp
ewmaest - progress logging with ewma-based ETA estimation
This package provides a Git implementation library.
{gitconfig
This provides a fork of uTLS for the specific purpose of improving obfs4proxy's meek_lite transport.
Package clipboard read/write on clipboard
Simple tools for container iteration
Package graphql provides a GraphQL client implementation.
This package implements WebRTC
Data Channels.