Our great sponsors
- InfluxDB - Access the most powerful time series database as a service
- SonarLint - Clean code begins in your IDE with SonarLint
- ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
-
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.
-
InfluxDB
Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
-
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.
-
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
Universal Operator Lifecycle Manager (OLM) for Kubernetes operators, and operators for traditional Linux apps, with declarative integration between operators for automated microservice integration.
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.
-
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.
-
SonarLint
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
-
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.
-
I just use Cobra (cli verbs and flags) and Viper (configuration) for the most part. github.com/spf13/cobra and github.com/spf13/viper
-
I just use Cobra (cli verbs and flags) and Viper (configuration) for the most part. github.com/spf13/cobra and github.com/spf13/viper
-
Scalable data streaming systems based on https://www.benthos.dev/
-
p/s I am the main contributor to Gorgonia which is a pure Go deep learning library that somewhat predates TensorFlow
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Backend APIs with Graphql using https://github.com/99designs/gqlgen.
-
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
-
Neat. I was just seeing someone on this subreddit asking for a Go port of Google’s OR Tools.
-
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.
-
https://github.com/dchest/safefile a no-brainer package which implements (almost) proper atomic file rewriting.
-
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).
-
https://github.com/syndtr/goleveldb for heavy-duty local data storage.
-
https://github.com/xeipuuv/gojsonschema to validate some incoming JSON docs.
-
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).
-
https://github.com/mailru/easyjson fast JSON (de)serializer which go generates code instead of using reflect at runtime.
-
https://github.com/mitchellh/mapstructure because we have JSON documents which contain rugged arrays ;-)
-
https://github.com/stretchr/testify in unit tests.
-
ONLYOFFICE
ONLYOFFICE Docs — document collaboration in your environment. Powerful document editing and collaboration in your app or environment. Ultimate security, API and 30+ ready connectors, SaaS or on-premises