TLWI Golang #67
Hello friends and welcome back to our weekly dose of tech goodies! This week we have a great selection of articles and tools written in the ever-growing language of Go.
First up, we have a fascinating read on creating a rule-based tunnel in Go. If you're unfamiliar with what a rule-based tunnel is, this article will give you a great breakdown while showing you how to implement it in Go.
Next, we have another insightful article on the elegance of Go and the importance of functions that implement interfaces. The author goes into detail about what makes Go such a powerful language and how to make the most of it with this concept.
For all the terminal enthusiasts out there, our next link is a fun little tool called Confetty. It's essentially confetti inside your terminal, created purely in Go. Who said programming can't be fun and festive?!
Our fourth link takes us deep into the world of optimization, as we discover how to save a third of our memory by re-ordering Go struct fields. The guys over at Qvault have put together an incredibly insightful post on this topic - it's a must-read! Check it out here.
Last but not least, we have some exciting news for the Go community. Russ Cox recently shared his expectations for generics in Go 1.18 over on the golang-dev platform. Being one of the most highly requested features in Go, we're all eager to see what Cox has to say. Read all about it here and be sure to share your thoughts with us!
That's all for this week folks, see you next time for more tech goodness!
Hot Go Articles This Week On Reddit
- Expectations for generics in Go 1.18 (Russ Cox on golang-dev) (7 days ago)
- Saving a Third of Our Memory by Re-ordering Go Struct Fields - Qvault (18 hours ago)
- On Functions That Implement Interfaces and the Elegance of Go (6 days ago)
- Confetty: Confetti inside your terminal (written in Go) (3 days ago)
Our Article Picks
- Stefan Sundin: Introducing shrimp and s3sha256sum
- bseyhan: Golang with database operations
- potyoma: Hello World
- M Fariz Wisnu prananda: Variabel on Golang
- bseyhan: Hey Marshal
- Javad Rajabzade: Merge files in a path with goMerge
- Aydın Yakar: Golang 101: Yapılar (Structs)
- Karan Pratap Singh: Auditing unsafe passwords
- Alkesh Ghorpade: LeetCode - Subsets
- Pallat Anchaleechamaikorn: เขียน Go ต่อ Oauth ทุกค่าย
- Clavin June: Golang HTTP Client Interceptors
- Yosuf: Setting up your Go environment
- Andrey Yurchenkov: Some interesting topic test
- Alkesh Ghorpade: LeetCode - Remove Element
- Alexey Melezhik: Curated list of Go opensource projects on #mybfio
- ksupdev: [KONG] Example get local Datetime
- doniacld: Change Blogging my first Hacktoberfest (2021)
- Masayoshi Mizutani: zlog: Secure logger in Go to prevent output of sensitive/secret values
- Amelia Smith: Outsource Golang Developer That Truly fits your Need
- Simone Gentili: Little http go server inside docker container
- Rahul Tarak: Depp - How it was built
- Weerasak Chongnguluam: ประกอบ slice ของ byte ด้วย bytes.Buffer
- Konsole: Jira CLI: New version adds support for on-premise jira installation
- Caleb Lemoine: Interactive Halloween decorations with raspberry pi's 🎃
- Jesus Gonzalez: Reverse the elements of a Singly Linked List using a Stack
- Eutychus Towett: Building a REST CRUD app with Golang Revel
- Eutychus Towett: Building a REST CRUD app with Golang Revel
- Yoas: All you need to know about Go functions
- Joel Holmes: Buildpacks with Go
Our Repo Picks
- OpenIMSDK/Open-IM-Server (Go): OpenIM：由前微信技术专家打造的基于 Go 实现的即时通讯（IM）项目，从服务端到客户端 SDK 开源即时通讯（IM）整体解决方案，可以轻松替代第三方 IM 云服务，打造具备聊天、社交功能的 app。
- schollz/croc (Go): Easily and securely send things from one computer to another 🐊 📦
- cloudreve/Cloudreve (Go): 🌩 支持多家云存储的云盘系统 (Self-deployed file management and sharing system, supports multiple storage providers)
- kubesphere/kubesphere (Go): The container platform tailored for Kubernetes multi-cloud, datacenter, and edge management ⎈ 🖥 ☁️
- ethereum/go-ethereum (Go): Official Go implementation of the Ethereum protocol
- goharbor/harbor (Go): An open source trusted cloud native registry project that stores, signs, and scans content.
- gin-gonic/gin (Go): Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.
- junegunn/fzf (Go): 🌸 A command-line fuzzy finder
- pingcap/tidb (Go): TiDB is an open source distributed HTAP database compatible with the MySQL protocol
- juicedata/juicefs (Go): JuiceFS is a distributed POSIX file system built on top of Redis and S3.
- elastic/beats (Go): 🐠 Beats - Lightweight shippers for Elasticsearch & Logstash
- cockroachdb/cockroach (Go): CockroachDB - the open source, cloud-native distributed SQL database.
- photoprism/photoprism (Go): Open Source Photos App powered by Go and Google TensorFlow 🌈
- xinliangnote/Go (Go): 【Go 从入门到实战】学习笔记，从零开始学 Go、Gin 框架，基本语法包括 26 个 Demo，Gin 框架包括：Gin 自定义路由配置、Gin 使用 Logrus 进行日志记录、Gin 数据绑定和验证、Gin 自定义错误处理、Go gRPC Hello World... 持续更新中...
- KubeOperator/KubePi (Go): KubePi 是一款简单易用的开源 Kubernetes 可视化管理面板
- projectdiscovery/nuclei (Go): Fast and customizable vulnerability scanner based on simple YAML based DSL.
- docker-slim/docker-slim (Go): DockerSlim (docker-slim): Don't change anything in your Docker container image and minify it by up to 30x (and for compiled languages even more) making it secure too! (free and open source)
- Mrs4s/go-cqhttp (Go): cqhttp 的 golang 实现，轻量、原生跨平台.
- Dreamacro/clash (Go): A rule-based tunnel in Go.
- kyleconroy/sqlc (Go): Generate type safe Go from SQL
- stashapp/stash (Go): An organizer for your porn, written in Go
- zu1k/proxypool (Go): 自动抓取 tg 频道、订阅地址、公开互联网上的 ss、ssr、vmess、trojan 节点信息，聚合去重后提供节点列表。欢迎 star
- RichardKnop/machinery (Go): Machinery is an asynchronous task queue/job queue based on distributed message passing.
- kubesphere/kubekey (Go): Install Kubernetes only, both Kubernetes and KubeSphere, and related cloud-native add-ons, it supports all-in-one, multi-node, and HA 🔥 ⎈ 🐳
- hashicorp/terraform-provider-aws (Go): Terraform AWS provider
- REL v0.28.0 Released - Primary/Replicas Connections Support
- How to pass default value to function parameter
- How to import a module from github repository in another branch
- Which editor is widely used for GoLang programming?
- Why did this happen？ Please help me to analyse my 'channel' dome
- Freeing a port before running a server instant
- Http: panic serving [::1]:60288: runtime error: invalid memory address or nil pointer dereference
- Which GoLang course should anyone see for good programmer in the Go language?
- What is the architecture for writing REST APIs?
- Use map with atomic/sync package
- Just wanted to know what advantage we get using method than a regular funtion call
- How come the sizeof string is giving is 16 Bytes where as int and float gives just 8 bytes as default. Also the address is for the pointer is 8bytes
- Consuming restapi
- Wasm: Return pointer from function (GC)
- Golang and glibc_version_header
- Go crypto/tls MinVersion ignored
- More compact syntax for slice operations
- Simplifying route handler to handle parameters without framework
- eBPF loader library
- Go tool asm: exec format error Linux
- Best practice for GOPATH?
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! 🦄