TLWI Golang
thelastweekin.dev
Welcome back to our weekly newsletter! We're so excited to share with you some amazing resources that we've stumbled upon this week. First on our list is Recovergoroutine, a tool that helps prevent panic from occurring within goroutines. Panic attacks are never fun, but panic in your code can be even worse! Luckily, Recovergoroutine saves the day by detecting when a panic attack is about to happen and swooping in with its magical powers to prevent it from occurring in the first place.
Next up, we've got an open source, self-hosted implementation of the Tailscale control server. This implementation
Have you ever had a question about Go linker source code? Well, if so, you're in luck because we've got the answer
So, you're wondering how can you use module tags that don't follow the semantic versioning conventions? Great question! Lucky for you, we've got some tips and tricks
Lastly, if you're interested in handling concurrency with goroutines and channels in Golang, we've got just the resource
That's it for this week's newsletter. We hope you found these resources helpful and informative. Be on the lookout for next week's edition, where we'll have even more exciting content to share with you!
Dennis
Our Article Picks
- Benjamen Pyle: Custom API Gateway Authorizer with Golang
- Kuldeep Singh: Learn Golang By Building A 2D Snake Game: A Complete Guide
- Michael Umeokoli: Handling Concurrency With Goroutines and Channels in Golang
- Sugawara Yuuta: Journey to the Fastest Streaming JSON Decoder In Go
- Moiz Ibrar: How to Read and Visualize CSV Data in Golang using Gonum/Plot
- Josemy Duarte: How to shutdown a Go application gracefully
- Mikiya Ichino: Building a CRUD App with MySQL, GORM, Echo, and Clean Architecture in Go
- Emily Fortuna: Compensating Actions, Part of a Complete Breakfast with Sagas
- Abhishek Gupta: Use Golang for data processing with Amazon SNS and AWS Lambda
- RoseSecurity: A Theoretically Devastating Cyber Attack on America’s Gas Stations:
- Mark: Recovergoroutine prevents panic from occurring within goroutines
- Darpan Vithani: The Ultimate Guide to the Most Useful Go Packages
- Adams Adebayo: Go Beginners Series: Data Structures, Structs, and Pointers
- OpenReplay Tech Blog: Using Go for front end development
- Otavio Monteagudo: Euclidean Algorithm: Breakdown + Golang implementations
- Ankit malik: LRU implementation in Java and Go
- Andrew: SAML SSO Implementation in Golang: A Comprehensive Step-by-Step Guide
- Kirill Scherba: Tru go net example
- Alkesh Ghorpade: LeetCode - Find the Prefix Common Array of Two Arrays
- Ryan Hoffman: GSchema - A schematics engine written in go
- Jonathan Hall: ChatGPT-4 vs ChatGPT-3 vs Golang
- Siddhesh Khandagale: Caching in Golang 🛢️
- APIMatic.io: How Go’s Simplicity Brings Complexity
Our Repo Picks
- go-skynet/LocalAI (Go): 🤖 Self-hosted, community-driven, local OpenAI-compatible API. Can be used as a drop-in replacement for OpenAI, running on CPU with consumer-grade hardware. API for ggml compatible models, for instance: llama.cpp, alpaca.cpp, gpt4all.cpp, rwkv.cpp, vicuna, koala, gpt4all-j, cerebras
- jesseduffield/lazygit (Go): simple terminal UI for git commands
- iawia002/lux (Go): 👾 Fast and simple video download library and CLI tool written in Go
- bluesky-social/indigo (Go): Go source code for Bluesky's atproto services. NOT STABLE (yet)
- projectdiscovery/httpx (Go): httpx is a fast and multi-purpose HTTP toolkit that allows running multiple probes using the retryablehttp library.
- photoprism/photoprism (Go): AI-Powered Photos App for the Decentralized Web 🌈💎✨
- grafana/loki (Go): Like Prometheus, but for logs.
- jeessy2/ddns-go (Go): 简单好用的 DDNS。自动更新域名解析到公网 IP(支持阿里云、腾讯云 dnspod、Cloudflare、Callback、华为云、百度云、Porkbun、GoDaddy、Google Domain)
- ddosify/ddosify (Go): Comprehensive Performance Testing Platform. Available on CLI, Self-Hosted, and Cloud - https://ddosify.com 🚀
- kopia/kopia (Go): Cross-platform backup tool for Windows, macOS & Linux with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication. CLI and GUI included.
- trufflesecurity/trufflehog (Go): Find and verify credentials
- portainer/portainer (Go): Making Docker and Kubernetes management easy.
- go-gitea/gitea (Go): Git with a cup of tea! Painless self-hosted all-in-one software development service, includes Git hosting, code review, team collaboration, package registry and CI/CD
- juanfont/headscale (Go): An open source, self-hosted implementation of the Tailscale control server
- wailsapp/wails (Go): Create beautiful applications using Go
- hashicorp/terraform-provider-aws (Go): Terraform AWS provider
- k8sgpt-ai/k8sgpt (Go): Giving Kubernetes Superpowers to everyone
- binwiederhier/ntfy (Go): Send push notifications to your phone or desktop using PUT/POST
- kubernetes-sigs/kwok (Go): Kubernetes WithOut Kubelet - Simulates thousands of Nodes and Clusters.
- traefik/traefik (Go): The Cloud Native Application Proxy
- hashicorp/terraform (Go): Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
- rancher/rancher (Go): Complete container management platform
- gitleaks/gitleaks (Go): Protect and discover secrets using Gitleaks 🔑
- navidrome/navidrome (Go): 🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic
- trustwallet/assets (Go): A comprehensive, up-to-date collection of information about several thousands (!) of crypto tokens.
Forum Topics
- Writing an OS in Go: The Bootloader
- Open Source Image Upscaler
- How to design MVC with Go Fiber
- How to store logs just before crashing
- Get function name
- How to assign "[]T" to variadic arguments "...interface{}"?
- How can I create multiple files in a loop in Go?
- How can I use module tags that do not follow the semantic versioning conventions?
- Logging in a private rest api
- How to parse stp file using go lang
- A question of Go linker source code
- Can replace be used only locally?
Gopher Gold is a weekly roundup for all things Go! If you have more suggestions for resources, submit them below! Follow me on Twitter for more projects @dennisokeeffe92
Subscribe to my personal newsletter to get updates on TheLastWeekIn.Dev + more! 🦄