Go Library
4.14K subscribers
18 photos
63 files
820 links
Go (Golang) Library

Реклама: @ostinostin
Контент: @mxssl
Download Telegram
Deploy Hugo static site to Hetzner

https://pliutau.com/deploy-hugo-to-hetzner-vps
Default Methods in Go

Go’s interfaces are very funny. Rather than being explicitly implemented, like in Java or Rust, they are simply a collection of methods (a “method set”) that the concrete type must happen to have. This is called structural typing, which is the opposite of nominal typing.

Go interfaces are very cute, but this conceptual simplicity leads to a lot of implementation problems (a theme with Go, honestly). It removes a lot of intentionality from implementing interfaces, and there is no canonical way to document that A satisfies1 B, nor can you avoid conforming to interfaces, especially if one forces a particular method on you.

It also has very quirky results for the language runtime. To cast an interface value to another interface type (via the type assertion syntax a.(B)), the runtime essentially has to use reflection to go through the method set of the concrete type of a. I go into detail on how this is implemented here.

Because of their structural nature, this also means that you can’t add new methods to an interface without breaking existing code, because there is no way to attach default implementations to interface methods. This results in very silly APIs because someone screwed up an interface.


https://mcyoung.xyz/2025/08/25/go-default-methods
surf

Surf is a powerful, feature-rich HTTP client library for Go that makes working with HTTP requests intuitive and enjoyable. With advanced features like browser impersonation, JA3/JA4 fingerprinting, and comprehensive middleware support, Surf provides everything you need for modern web interactions.


https://github.com/enetx/surf
zek

Zek is a prototype for creating a Go struct from an XML document.


https://github.com/miku/zek
goqueue

GoQueue is a flexible background job processing library for Go applications, designed to handle workloads of any scale with multiple backend options.


https://github.com/saravanasai/goqueue
gonzo

A powerful, real-time log analysis terminal UI inspired by k9s. Analyze log streams with beautiful charts, AI-powered insights, and advanced filtering - all from your terminal.


https://github.com/control-theory/gonzo
Go is still not good

Previous posts Why Go is not my favourite language and Go programs are not portable have me critiquing Go for over a decade.

These things about Go are bugging me more and more. Mostly because they’re so unnecessary. The world knew better, and yet Go was created the way it was.

For readers of previous posts you’ll find some things repeated here. Sorry about that.


https://blog.habets.se/2025/07/Go-is-still-not-good.html
tview

This Go package provides commonly used components for terminal based user interfaces.


https://github.com/rivo/tview
mtlog

Serilog-inspired structured logging for Go with message templates, rich formatting, and native Seq support


https://github.com/willibrandon/mtlog
Backend-митап в Москве: многопоточность, микросервисы, prompt engineering и System Design

• 20 сентября
• Пространство «Весна»

Если хочешь разобраться глубже в backend-разработке, системном дизайне, алгоритмах и многопоточке — приходи.

Говорим по существу — про то, что важно в работе и на собеседованиях:
– как строить микросервисы, не превращая код в ад;
– что ждёт на System Design-интервью и как его пройти.
– как готовиться к собесам и системно учить алгоритмы;
– как устроена модель памяти Go и где тебя может поджидать баг.

🎓 Программа

15:00 – 15:30 – Общий сбор

15:30 – 15:50 – Нетворкинг - разделимся на группы, пообщаемся и заведем новые знакомства

15:50 – 16:30 – Игорь Панасюк (Senior в Яндекс) «Особенности и ловушки модели памяти в Go: тайны синхронизации»

16:30 – 17:10 – Леонид Ченский (TeamLead в OzonTech) «Пишем микросервисы на Go как в BigTech, с нуля»

17:10 – 17:30 – Перерыв на фуршет

17:30 – 18:10 – Сергей Венецкий (ex-разработчик в EPAM) «LLM под капотом: как правильно писать промпты»

18:10 – 18:50 – Владимир Балун (ex-TeamLead в Яндекс) «Как пройти System Design интервью: взгляд со стороны интервьювера и кандидата»

18:50 – 19:00 – Завершение контентной части, фотосесия

19:00 – 20:00 – Фуршет и нетворкинг на площадке

20:00 - Afterparty - по желанию едем в бар неподалеку и продолжаем общение в неформальной обстановке

🎁 Подарки за лучшие вопросы:

— книги по backend разработке от спикеров
— сертификаты на бесплатное обучение на любом из курсов школы
— бесплатные mock-собеседования от интервьюверов из BigTech
— скидки на обучение в нашей школе

Место: Пространство «Весна»
Спартаковский переулок 2с1, подъезд 7

5 минут от м. Красносельская
7 минут от м. Бауманская

Количество мест ограничено - приобрести билет можно по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
mangle

Mangle is a programming language for deductive database programming. It is an extension of Datalog, with various extensions like aggregation, function calls and optional type-checking.


https://github.com/google/mangle
Announcing Genkit Go 1.0 and Enhanced AI-Assisted Development

We're excited to announce the release of Genkit Go 1.0, the first stable, production-ready release of Google’s open-source AI development framework for the Go ecosystem. Along with this release, we're also introducing the genkit init:ai-tools command to supercharge your AI-assisted development workflow.

Genkit is an open-source framework for building full-stack AI-powered applications. It provides a unified interface for multiple model providers and streamlined APIs for multimodal content, structured outputs, tool calling, retrieval-augmented generation (RAG), and agentic workflows. With Genkit Go, you can now build and deploy production-ready AI applications with the speed, safety, and reliability of Go.


https://developers.googleblog.com/en/announcing-genkit-go-10-and-enhanced-ai-assisted-development
what the go proxy has been doing

A follow up to what is the go proxy even doing? now with more answers. Russ Cox (rsc) and I traded a few emails trying to work out what was going on. They’re going to make a few changes, and I also learned a few things it would have been helpful to know.


https://flak.tedunangst.com/post/what-the-go-proxy-has-been-doing
Avoiding Common sync.WaitGroup Mistakes in Go

With the latest release of Go 1.25, there are two notable changes to the sync.WaitGroup type, both of which stem from common mistakes that developers make when using the WaitGroup type. In this post we are going to explore both of these changes and how they can help you avoid a common race condition.


https://www.calhoun.io/avoiding-common-sync-waitgroup-mistakes/
Running Go tools in a browser

This post provides a step-by-step breakdown of how to run Go tooling inside a browser by compiling it to WASM. The Go logic is exposed to JavaScript using Bazel Go rules, though the process can be replicated without the Bazel build system. The example used is the assembler for the Mrav CPU.


https://popovicu.com/posts/running-go-tools-in-browser
Exploring Concurrency Issues with Philosophers and Go

Understand key concepts in concurrency by solving the dining philosophers problem step by step while discussion different subtle problems and intricacies. Full code in Go is provided towards the end.


https://clustersandcoffee.substack.com/p/exploring-concurrency-issues-with
GoferBroke

GoferBroke is a lightweight, extensible tool designed for building distributed clusters using an anti-entropy gossip protocol over custom binary TCP.


https://github.com/kristianJW54/GoferBroke
anubis

Anubis is a Web AI Firewall Utility that weighs the soul of your connection using one or more challenges in order to protect upstream resources from scraper bots.

This program is designed to help protect the small internet from the endless storm of requests that flood in from AI companies. Anubis is as lightweight as possible to ensure that everyone can afford to protect the communities closest to them.


https://github.com/TecharoHQ/anubis
flagr

Flagr is an open source Go service that delivers the right experience to the right entity and monitors the impact. It provides feature flags, experimentation (A/B testing), and dynamic configuration. It has clear swagger REST APIs for flags management and flag evaluation.


https://github.com/openflagr/flagr
Practical Networking Patterns in Go

A 13-part guide to building scalable, efficient, and resilient networked applications in Go—grounded in real-world benchmarks, low-level optimizations, and practical design patterns.


https://goperf.dev/02-networking