htdvisser.dev

Software Development by Hylke Visser

Go Experiments

My repository for small Go experiments that in some cases turned out to be useful.

git repository godev reference

The exp repository is a monorepo with several Go packages that all started out as experiments, but in some cases turned out to be useful to use in other projects.

Submodules

Base32 Encoder/Decoder (htdvisser.dev/exp/b32)

A tool to encode and decode base32 data.

Base64 Encoder/Decoder (htdvisser.dev/exp/b64)

A tool to encode and decode base64 data.

Server Backbone (htdvisser.dev/exp/backbone)

CLI Context (htdvisser.dev/exp/clicontext)

Helps cancel the context.Context of your command-line interface.

Echo Server and Client (htdvisser.dev/exp/echo)

An experiment to build an echo server with gRPC, HTTP, TCP and UDP.

Field Path (htdvisser.dev/exp/fieldpath)

Utilities for working with field paths as used in protobuf field masks.

Load flags from Environment (htdvisser.dev/exp/flagenv)

Read environment variables into standard library flags.

gRPC Test Utilities (htdvisser.dev/exp/grpctest)

Utilities for testing gRPC middleware.

Hex Encoder/Decoder (htdvisser.dev/exp/hex)

A tool to encode and decode hex data.

Generator for Field Mask Utilities (htdvisser.dev/exp/maskgen)

Generate code that helps masking the fields of structs

Experiments with NATS (htdvisser.dev/exp/nats)

Various experiments with NATS and NATS streaming.

Load flags from Environment (htdvisser.dev/exp/pflagenv)

Read environment variables into github.com/spf13/pflag flags.

Protobuf generator for Hugo (htdvisser.dev/exp/protoc-gen-hugodata)

Generate YAML files from protocol buffers so that Hugo can generate API documentation.

Proto file getter (htdvisser.dev/exp/protoget)

Download .proto files from common locations.

Redis Config (htdvisser.dev/exp/redis)

Config and flags for connecting to Redis

RHManage (htdvisser.dev/exp/rhmanage)

A tool to manage Hash structures in Redis.

Ring data structure (htdvisser.dev/exp/ring)

An experiment to build a ring data structure.

Router Join Server API (htdvisser.dev/exp/rjs)

Talking to the TrackNet RJS API.

SQL Utilities (htdvisser.dev/exp/sql)

Utilities for working with package database/sql

SSH (htdvisser.dev/exp/ssh)

Building on top of golang.org/x/crypto/ssh.

Utilities for []string (htdvisser.dev/exp/stringslice)

Common utilities for working with string slices (mapping, filtering).

Sum (htdvisser.dev/exp/sum)

A tool to checksum a file or standard input.

TLS Config (htdvisser.dev/exp/tls)

Config and flags for building TLS configurations for servers and clients

Tree data structure (htdvisser.dev/exp/tree)

An experiment to build a tree data structure.

Waitcontext (htdvisser.dev/exp/waitcontext)

In case you want a context.CancelFunc that waits for goroutines to finish.