ttlMap
https://github.com/jftuga/ttlMap
TtlMap is golang package that implements a time-to-live map such that after a given amount of time, items in the map are deleted.
https://github.com/jftuga/ttlMap
bluetuith
https://github.com/darkhz/bluetuith
bluetuith is a TUI-based bluetooth connection manager, which can interact with bluetooth adapters and devices. It aims to be a replacement to most bluetooth managers, like blueman.
https://github.com/darkhz/bluetuith
beelzebub
https://github.com/mariocandela/beelzebub
Beelzebub is an advanced honeypot framework designed to provide a highly secure environment for detecting and analyzing cyber attacks. It offers a low code approach for easy implementation and utilizes virtualization techniques powered by OpenAI Generative Pre-trained Transformer.
https://github.com/mariocandela/beelzebub
walk
https://github.com/antonmedv/walk
Walk — a terminal navigator.
Why another terminal navigator? I wanted something simple and minimalistic. Something to help me with faster navigation in the filesystem; a cd and ls replacement. So I build walk. It allows for quick navigation with fuzzy searching, cd integration is quite simple. And you can open vim right from the walk. That's it.
https://github.com/antonmedv/walk
Why Golang instead of Rust to develop the Krater desktop app
https://blog.moonguard.dev/why-golang-instead-of-rust-to-develop-the-krater-desktop-app
Hello! If you have been following our articles, you may remember reading that Krater was being developed with Rust using Tauri. However, this is no longer the case because a few months ago we made the decision to migrate the entire project to Wails (Golang). In this article, we will discuss our experience and why we made such a risky decision to migrate an entire application from one language to another.
https://blog.moonguard.dev/why-golang-instead-of-rust-to-develop-the-krater-desktop-app
Go, Containers, and the Linux Scheduler
https://www.riverphillips.dev/blog/go-cfs
Like many Go developers my applications are usually deployed in containers. When running in container orchestrators it’s important to set CPU limits to ensure that the container doesn’t consume all the CPU on the host. However, the Go runtime is not aware of the CPU limits set on the container and will happily use all the CPU available. This has bitten me in the past, leading to high latency, in this blog I’ll explain what is going on and how to fix it.
https://www.riverphillips.dev/blog/go-cfs
doltgresql
https://github.com/dolthub/doltgresql
From the creators of Dolt, the world's first version controlled SQL database, DoltgreSQL (aka Doltgres) is a Postgres-flavored version of Dolt. Doltgres offers all the Git-style log, diff, branch, and merge functionality of Dolt on your Postgres database schema and data. Instead of connecting with a MySQL client and using MySQL SQL, you connect to Doltgres with a Postgres client and use Postgres SQL. Doltgres is like Git and Postgres had a baby.
https://github.com/dolthub/doltgresql
goverter
https://github.com/jmattheis/goverter
goverter is a tool for creating type-safe converters. All you have to do is create an interface and execute goverter. The project is meant as alternative to jinzhu/copier that doesn't use reflection.
https://github.com/jmattheis/goverter
gatewayd
https://github.com/gatewayd-io/gatewayd
GatewayD is a free and open-source cloud-native database gateway and framework for building data-driven applications. It sits between your database servers and clients and proxies all their communication. It is like API gateways, for databases.
https://github.com/gatewayd-io/gatewayd
nutsdb
https://github.com/nutsdb/nutsdb
NutsDB is a simple, fast, embeddable and persistent key/value store written in pure Go.
It supports fully serializable transactions and many data structures such as list、set、sorted set. All operations happen inside a Tx. Tx represents a transaction, which can be read-only or read-write. Read-only transactions can read values for a given bucket and a given key or iterate over a set of key-value pairs. Read-write transactions can read, update and delete keys from the DB.
https://github.com/nutsdb/nutsdb
fuse
https://github.com/bazil/fuse
bazil.org/fuse is a Go library for writing FUSE userspace filesystems.
It is a from-scratch implementation of the kernel-userspace communication protocol, and does not use the C library from the project called FUSE. bazil.org/fuse embraces Go fully for safety and ease of programming.
https://github.com/bazil/fuse
Go's 1.22+ ServeMux vs Chi Router
https://www.calhoun.io/go-servemux-vs-chi
Go 1.22 introduces a couple new features for Go. Among them are changes to the net/http package that make it easier to use the ServeMux. In a nutshell, the routing for this type is being updated to allow for HTTP methods and URL path values.
https://www.calhoun.io/go-servemux-vs-chi
Pushing SQLite to its limits with Go while having fun
https://www.terlici.com/2023/11/06/pushing-sqlite-limits.html
https://www.terlici.com/2023/11/06/pushing-sqlite-limits.html
Golang Structs Memory Allocation
P1: https://prog-bytes.hashnode.dev/golang-structs-memory-allocation
P2: https://prog-bytes.hashnode.dev/golang-structs-memory-allocation-ii
P1: https://prog-bytes.hashnode.dev/golang-structs-memory-allocation
P2: https://prog-bytes.hashnode.dev/golang-structs-memory-allocation-ii
cpuid
https://github.com/klauspost/cpuid
Package cpuid provides information about the CPU running the current program.
CPU features are detected on startup, and kept for fast access through the life of the application. Currently x86 / x64 (AMD64/i386) and ARM (ARM64) is supported, and no external C (cgo) code is used, which should make the library very easy to use.
https://github.com/klauspost/cpuid
NilAway: Practical Nil Panic Detection for Go
https://www.uber.com/en-NL/blog/nilaway-practical-nil-panic-detection-for-go
Uber has widely adopted Go as a primary programming language for implementing backend services and libraries due to its high performance. The Go monorepo is the largest codebase at Uber, comprising 90 million lines of code (and growing). This makes tooling for writing reliable Go code a critical part of our development infrastructure.
Pointers (variables that hold the memory addresses of other variables instead of their actual values) are an integral part of the Go programming language and facilitate efficient memory management and effective data manipulation. Therefore, programmers use pointers extensively in writing Go programs for various purposes such as in-place data modification, concurrent programming, easy data sharing, optimizing memory usage, and facilitating interfaces and polymorphism. While pointers are powerful and widely used, it is essential to use them carefully and judiciously to avoid common pitfalls like nil pointer dereferences causing nil panics.
https://www.uber.com/en-NL/blog/nilaway-practical-nil-panic-detection-for-go