# Golang - Go - [Introduction](#introduction) - [Design Patterns](#design-patterns) - [Tutorials](#tutorials) - [Kubernetes Client Go](#kubernetes-client-go) - [Building container images](#building-container-images) - [Go cheatsheets](#go-cheatsheets) - [Go Frameworks and libraries](#go-frameworks-and-libraries) - [Go packages](#go-packages) - [Go Tools](#go-tools) - [Go Books](#go-books) - [Go Samples](#go-samples) - [Dockerfile for go](#dockerfile-for-go) - [Tweets](#tweets) ## Introduction - [golang.org](https://golang.org/) - [github.com/golang/go](https://github.com/golang/go) - [wikipedia: Go](https://en.wikipedia.org/wiki/Go_(programming_language)) - [Zepto is a lightweight framework for the development of microservices & web services in golang](https://github.com/go-zepto/zepto) - [medium: Microservices in Go](https://medium.com/seek-blog/microservices-in-go-2fc1570f6800) - [search.gocenter.io: JFrog Go Center](https://search.gocenter.io/) Host your Go-based applications for free on the JFrog Platform. - [dev.to: Deploying Your First Golang Webapp](https://dev.to/heroku/deploying-your-first-golang-webapp-11b3) - [Awesome Go ๐ŸŒŸ](https://github.com/avelino/awesome-go) - [inancgumus/learngo ๐ŸŒŸ](https://github.com/inancgumus/learngo) A Huge Number of Go Examples, Exercises and Quizzes. - [eli.thegreenplace.net: REST Servers in Go: Part 4 - using OpenAPI and Swagger](https://eli.thegreenplace.net/2021/rest-servers-in-go-part-4-using-openapi-and-swagger/) - [blog.getambassador.io: Debugging Go Microservices in Kubernetes with VScode](https://blog.getambassador.io/debugging-go-microservices-in-kubernetes-with-vscode-a36beb48ef1) Tutorial: Learn to debug Go microservices locally while testing against dependencies in a remote Kubernetes cluster - [developers.redhat.com: Using Delve to debug Go programs on Red Hat Enterprise Linux](https://developers.redhat.com/blog/2021/03/03/using-delve-to-debug-go-programs-on-red-hat-enterprise-linux/) - [Golang for Node.js Developers](https://github.com/miguelmota/golang-for-nodejs-developers) - [The Ultimate Go Study Guide](https://github.com/hoanhan101/ultimate-go) - [ammeon.com: Profiling golang microservices for high throughput on kubernetes/openshift clusters](https://www.ammeon.com/profiling-golang-microservices-for-high-throughput-on-kubernetes-openshift-clusters/) - [cyberciti.biz: How to install Go [golang] on Ubuntu Linux](https://www.cyberciti.biz/faq/how-to-install-gol-ang-on-ubuntu-linux/) - [developer.okta.com: Elasticsearch in Go: A Developer's Guide](https://developer.okta.com/blog/2021/04/23/elasticsearch-go-developers-guide) - [go-ini/ini](https://github.com/go-ini/ini) Package ini provides INI file read and write functionality in Go - [rakyll/go-test-trace ๐ŸŒŸ](https://github.com/rakyll/go-test-trace) Go test with tracing. go-test-trace is like go test but it also generates distributed traces. Generated traces are exported in OTLP to a OpenTelemetry collector. You need to run go-test-trace alongside a collector to export data to distributed tracing service. - [hashicorp.com: 8 Best Practices for Writing Secure Go Code](https://www.hashicorp.com/resources/8-best-practices-for-writing-secure-go-code) - [thenewstack.io: Getting Started with Go and InfluxDB](https://thenewstack.io/getting-started-with-go-and-influxdb/) - [go.dev: A new search experience on pkg.go.dev](https://go.dev/blog/pkgsite-search-redesign) - [quii/learn-go-with-tests](https://github.com/quii/learn-go-with-tests) Learn Go with test-driven development - [itnext.io: Go Does Not Need a Java Style GC](https://itnext.io/go-does-not-need-a-java-style-gc-ac99b8d26c60) Why does Go not need a fancy expensive garbage collector like Java and C#? - [erik-engheim.medium.com: Go Does Not Need a Java Style GC](https://erik-engheim.medium.com/go-does-not-need-a-java-style-gc-ac99b8d26c60) - [levelup.gitconnected.com: Generics in Go: Viva La Revolution!](https://levelup.gitconnected.com/generics-in-go-viva-la-revolution-e27898bf5495) - [teivah.medium.com: When to Use Generics in Go?](https://teivah.medium.com/when-to-use-generics-in-go-36d49c1aeda) - [dev.to: JSON Schema Validation in Golang](https://dev.to/franciscomendes10866/how-to-validate-data-in-golang-1f87) - [blog.logrocket.com: How to build a blockchain from scratch with Go](https://blog.logrocket.com/how-to-build-blockchain-from-scratch-go/) - [dev.to: Rate limiting HTTP requests in Go using Redis](https://dev.to/mauriciolinhares/rate-limiting-http-requests-in-go-using-redis-51m7) - [dev.to: Understanding and Crafting HTTP Middlewares in Go](https://dev.to/theghostmac/understanding-and-crafting-http-middlewares-in-go-3183) - [dev.to: Getting started with Go-Lang](https://dev.to/treva123mutebi/getting-started-with-go-lang-1g0) ## Design Patterns - [aly.arriqaaq.com: Golang Design Patterns in Kubernetes](https://aly.arriqaaq.com/golang-design-patterns/) ## Tutorials - [==dev.to: Create a Restful API with Golang from scratch== ๐ŸŒŸ](https://dev.to/pacheco/create-a-restful-api-with-golang-from-scratch-42g2) - [itnext.io: Generically working with Kubernetes objects in Go](https://itnext.io/generically-working-with-kubernetes-resources-in-go-53bce678f887) Using the unstructured package from k8s API machinery ## Kubernetes Client Go - [An example of using dynamic client of k8s.io/client-go](https://ymmt2005.hatenablog.com/entry/2020/04/14/An_example_of_using_dynamic_client_of_k8s.io/client-go) - [medium: Using the Go client framework ๐ŸŒŸ](https://medium.com/programming-kubernetes/building-stuff-with-the-kubernetes-api-part-4-using-go-b1d0e3c1c899) ## Building container images - [ahmet.im: Building container images in Go](https://ahmet.im/blog/building-container-images-in-go/) ## Go cheatsheets - [devhints.io/go: Go cheatsheet](https://devhints.io/go) - [github.com: golang-cheat-sheet](https://github.com/a8m/golang-cheat-sheet) - [jimmysong.io/cheatsheets/go](https://jimmysong.io/cheatsheets/go) - [simplecheatsheet.com/tag/golang-cheat-sheet](https://simplecheatsheet.com/tag/golang-cheat-sheet/) - [a8m/golang-cheat-sheet](https://github.com/a8m/golang-cheat-sheet) An overview of Go syntax and features. ## Go Frameworks and libraries - [go-micro](https://github.com/asim/go-micro) Go Micro is a framework for distributed systems development - [dapr.io](https://dapr.io) - [reddit.com: What is the best microservice framework in Go?](https://www.reddit.com/r/golang/comments/jnv4bd/what_is_the_best_microservice_framework_in_go/) - [Masterminds/sprig: Sprig: Template functions for Go templates](https://github.com/Masterminds/sprig) Useful template functions for Go templates. The Go language comes with a built-in template language, but not very many template functions. Sprig is a library that provides more than 100 commonly used template functions. - [go-kratos/kratos](https://github.com/go-kratos/kratos) A modular-designed and easy-to-use __microservices framework__ in Go. - [gnet](https://github.com/panjf2000/gnet) ๐Ÿš€ gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go./ gnet - [dsa0x/sicher](https://github.com/dsa0x/sicher) Sicher is a go module that allows secure storage of encrypted credentials in a version control system. ## Go packages - [cap](https://github.com/hashicorp/cap) A collection of authentication Go packages related to OIDC, JWKs and Distributed Claims. - [volatiletech/sqlboiler](https://github.com/volatiletech/sqlboiler) Generate a Go ORM tailored to your database schema. ## Go Tools - [jcchavezs/porto](https://github.com/jcchavezs/porto) Tool for adding [vanity imports](https://sagikazarmark.hu/blog/vanity-import-paths-in-go/) URI to Go files. If you want to enforce vanity import paths, it automates the addition of the import directive. - [mholt/json-to-go](https://github.com/mholt/json-to-go) Translates JSON into a Go type in your browser instantly (original) - [curl-to-go](https://mholt.github.io/curl-to-go/) Instantly convert curl commands to Go code ## Go Books - https://github.com/dariubs/GoBooks ## Go Samples - [==GoogleCloudPlatform/golang-samples: Sample apps and code written for Google Cloud in the Go programming language.==](https://github.com/GoogleCloudPlatform/golang-samples) - [rehacktive/caffeine](https://github.com/rehacktive/caffeine) A very basic REST service for JSON data - enough for prototyping and MVPs! - [ebosas/microservices](https://github.com/ebosas/microservices) A microservices example in Go - [iximiuz/client-go-examples](https://github.com/iximiuz/client-go-examples) Collection of mini-programs demonstrating Kubernetes client-go usage. ## Dockerfile for go - [==dev.to: Dockerfile for Go==](https://dev.to/youngyoshie/dockerfile-for-go-4jjp) ## Tweets - [twitter.com/GolangRepos](https://twitter.com/GolangRepos)
Click to expand!