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 command-line tool to encode and decode base32 data, typically combined with my b64 and hex tools.

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

A command-line tool to encode and decode base64 data, typically combined with my b32 and hex tools.

Server Backbone (htdvisser.dev/exp/backbone)

CLI Context (htdvisser.dev/exp/clicontext)

Helps cancel the context.Context of your command-line interface. Since Go 1.16 the same functionality is provided by NotifyContext in os/signal.

Connect Lambda Experiment (htdvisser.dev/exp/connect-lambda)

Experiment using connect.build on AWS Lambda

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

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

Environment Encryption (htdvisser.dev/exp/envcrypto)

Lets you encrypt your environment variables.

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 command-line tool to encode and decode hex data, typically combined with my b32 and b64 tools.

Imago (htdvisser.dev/exp/imago)

A tool to resize and convert images

Certificate Inspector (htdvisser.dev/exp/inspectcert)

A tool to inspect the TLS certificate chain for a server.

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.

NATS Config (htdvisser.dev/exp/natsconfig)

Config and flags for connecting to NATS

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 (Deprecated) (htdvisser.dev/exp/redis)

Config and flags for connecting to Redis

Redis Config (htdvisser.dev/exp/redisconfig)

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 command-line tool to checksum a file or standard input.

TLS Config (Deprecated) (htdvisser.dev/exp/tls)

Config and flags for building TLS configurations for servers and clients

TLS Config (htdvisser.dev/exp/tlsconfig)

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.

Value Watcher (htdvisser.dev/exp/watcher)

A generic interface for watching changes to values