What type of software do you write at your workplace?

This page summarizes the projects mentioned and recommended in the original post on /r/golang

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • vcluster

    vCluster - Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.

  • Kubernetes controller (it's like an extension for Kubernetes) - https://www.vcluster.com/ . Most of the Kubernetes ecosystem is written in Go, so you have all the API definitions, libraries, etc. that you can just import, and as a result people rarely go with other programming languages. Most used libs would be kubernetes/client-go, kubernetes-sigs/controller-runtime, spf13/cobra

  • TinyGo

    Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.

  • But then I met TinyGo.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • PlatformIO

    Your Gateway to Embedded Software Development Excellence :alien:

  • I play with embedded a lot (have even done so professionally off and on). I never considered the Arduino IDE to be "industrial strength", so I avoid using it. I found "PlatformIO" to be a reasonable platform for a professional. It is written in Python and straps together 1000's of open-source projects. You can pick different frameworks, OSes and boards. It was "good enough" but in the back of my mind, it still always felt "fragmented". It presented lots of "choice", but many of those choices were bad. At least they encouraged and supported testing.

  • jsondiff

    JsonDiff library (by nsf)

  • I currently work for a company that provides a security operations center to major corporations and governments. In my current role, the most important language is Python since any non-developer in our company still often knows Python due to the nature of their work, but I wrote a reasonably complicated Lambda in Go and have contributed to some Go open source projects we depend upon (Argo). There are a range of libraries I've used from github.com/nsf/jsondiff to AWS SDK stuff to Zap (a logging lib from Uber) to Hashicorp Vault stuff and testify for testing purposes. I've also had to use yaml, and I used the K8s library for that. I can't think of too much else I've used outside the standard library offhand.

  • Ory Hydra

    OpenID Certified™ OpenID Connect and OAuth Provider written in Go - cloud native, security-first, open source API security for your infrastructure. SDKs for any language. Works with Hardware Security Modules. Compatible with MITREid.

  • For hobby work I've used Gorilla Mux for web APIs and written a UI in Angular and I depended upon Badgerdb for data storage since it's a fantastic in-process datastore and well supported since it's the backend for Dgraph. I'm quite happy with those choices, but I'm going to be rewriting my hobby work and using Postgres by way of Ent, playing with Go HTML templating, and using just the standard library for routing (probably... might go back to Gorilla). I might use ORY Hydra for all my auth needs this time around, but of course, hobby work moves far slower than professional work, so it's hard to say what all I will get around to doing.

  • Juju

    Orchestration engine that enables the deployment, integration and lifecycle management of applications at any scale, on any infrastructure (Kubernetes or otherwise).

  • At Canonical I work on two open-source projects written in Go: Juju, a large cloud-based application deployment tool, and Pebble, a small Linux service manager. Both include CLI clients and API-based server daemons. Juju in particular is a large distributed system.

  • pebble

    Take control of your internal daemons! (by canonical)

  • At Canonical I work on two open-source projects written in Go: Juju, a large cloud-based application deployment tool, and Pebble, a small Linux service manager. Both include CLI clients and API-based server daemons. Juju in particular is a large distributed system.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • pq

    Pure Go Postgres driver for database/sql

  • We usually use chi for HTTP routing, gRPC for internal microservices (using gogoprotobuf for a more performant protobuf implementation), Sarama to talk to Kafka, sqlx and github.com/lib/pq to talk to Postgres, aws-sdk-go to talk to AWS services, internally developed libraries to integrate database/sql with AWS Athena and to read and write parquet files, zap for structured logging, stuff like that.

  • cobra

    A Commander for modern Go CLI interactions

  • I just use Cobra (cli verbs and flags) and Viper (configuration) for the most part. github.com/spf13/cobra and github.com/spf13/viper

  • viper

    Go configuration with fangs

  • I just use Cobra (cli verbs and flags) and Viper (configuration) for the most part. github.com/spf13/cobra and github.com/spf13/viper

  • Benthos

    Fancy stream processing made operationally mundane

  • Scalable data streaming systems based on https://www.benthos.dev/

  • Gorgonia

    Gorgonia is a library that helps facilitate machine learning in Go.

  • p/s I am the main contributor to Gorgonia which is a pure Go deep learning library that somewhat predates TensorFlow

  • turandot

    Compose and orchestrate and Kubernetes workloads using TOSCA

  • I created Turandot, Candice, Reposure, Knap, CNCK, QCR, multusctl, and a whole bunch of dependent libraries, and also participate in a bunch of other K8s-related projects.

  • candice

    Cloud-Native Network Device Configurator

  • I created Turandot, Candice, Reposure, Knap, CNCK, QCR, multusctl, and a whole bunch of dependent libraries, and also participate in a bunch of other K8s-related projects.

  • reposure

    Manage and access cloud-native container image registries for Kubernetes

  • I created Turandot, Candice, Reposure, Knap, CNCK, QCR, multusctl, and a whole bunch of dependent libraries, and also participate in a bunch of other K8s-related projects.

  • knap

    Kubernetes Network Attachment Provider (by tliron)

  • I created Turandot, Candice, Reposure, Knap, CNCK, QCR, multusctl, and a whole bunch of dependent libraries, and also participate in a bunch of other K8s-related projects.

  • cnck

    Cloud Native Configurations for Kubernetes

  • I created Turandot, Candice, Reposure, Knap, CNCK, QCR, multusctl, and a whole bunch of dependent libraries, and also participate in a bunch of other K8s-related projects.

  • qcr

    Queued Custom Resources

  • I created Turandot, Candice, Reposure, Knap, CNCK, QCR, multusctl, and a whole bunch of dependent libraries, and also participate in a bunch of other K8s-related projects.

  • multusctl

    CLI client for Multus CNI

  • I created Turandot, Candice, Reposure, Knap, CNCK, QCR, multusctl, and a whole bunch of dependent libraries, and also participate in a bunch of other K8s-related projects.

  • gqlgen

    go generate based graphql server library

  • Backend APIs with Graphql using https://github.com/99designs/gqlgen.

  • zap

    Blazing fast, structured, leveled logging in Go.

  • Other packages of note: https://github.com/uber-go/zap https://github.com/go-ozzo/ozzo-validation

  • ozzo-validation

    An idiomatic Go (golang) validation package. Supports configurable and extensible validation rules (validators) using normal language constructs instead of error-prone struct tags.

  • Other packages of note: https://github.com/uber-go/zap https://github.com/go-ozzo/ozzo-validation

  • or-tools

    Google's Operations Research tools:

  • Neat. I was just seeing someone on this subreddit asking for a Go port of Google’s OR Tools.

  • compress

    Optimized Go Compression Packages

  • https://github.com/klauspost/compress on critical paths which need to do compression/decompression: it's optimized for linux/amd64 and allows to pool compressors/decompressors.

  • safefile

    Go package safefile implements safe "atomic" saving of files.

  • https://github.com/dchest/safefile a no-brainer package which implements (almost) proper atomic file rewriting.

  • clock

    Clock is a small library for mocking time in Go. (by LopatkinEvgeniy)

  • https://github.com/LopatkinEvgeniy/clock an in-house package written to mock time in unit tests which need it (at the time it was written, its competitors were not quite on par; the situation had most probably changed since then).

  • goleveldb

    LevelDB key/value database in Go.

  • https://github.com/syndtr/goleveldb for heavy-duty local data storage.

  • gojsonschema

    An implementation of JSON Schema, draft v4 v6 & v7 - Go language

  • https://github.com/xeipuuv/gojsonschema to validate some incoming JSON docs.

  • colfer

    binary serialization format

  • https://github.com/pascaldekloe/colfer high-perf binary sesialization format (for internal on-disk data storage).

  • jsoniter

    A high-performance 100% compatible drop-in replacement of "encoding/json" (by json-iterator)

  • https://github.com/json-iterator/go an alternative JSON encoding package which allows to stream (flush out) encoded data as soon as it's able to (which is in contrast with the stock package which buffers everything until the encoding is known to be complete and OK).

  • easyjson

    Fast JSON serializer for golang.

  • https://github.com/mailru/easyjson fast JSON (de)serializer which go generates code instead of using reflect at runtime.

  • mapstructure

    Go library for decoding generic map values into native Go structures and vice versa.

  • https://github.com/mitchellh/mapstructure because we have JSON documents which contain rugged arrays ;-)

  • Testify

    A toolkit with common assertions and mocks that plays nicely with the standard library

  • https://github.com/stretchr/testify in unit tests.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts