Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены версии 1.18.4 и 1.17.12;
Выпущен GoLand 2022.2;
Go To Memory;
Что нового в Go 1.19?
Приятного чтения!
Новости, события
Выпущены версии 1.18.4 и 1.17.12 — второстепенные выпуски исправления безопасности:
net/http: неправильная очистка заголовка Transfer-Encoding
Когда httputil.ReverseProxy.ServeHTTP вызывался с картой Request.Header, содержащей нулевое значение для заголовка X-Forwarded-For, ReverseProxy устанавливал IP-адрес клиента как значение заголовка X-Forwarded-For, вопреки его документации. В более обычном случае, когда функция Director устанавливает значение заголовка X-Forwarded-For равным nil, ReverseProxy оставит заголовок не измененным, как и ожидалось.
encoding/gzip: Вызов Reader.Read для архива, содержащего большое количество связанных сжатых файлов нулевой длины, может вызвать панику из-за исчерпания стека.
encoding/xml: Вызов Unmarshal для XML-документа в структуру Go, которая имеет вложенное поле, использующее
any
тег поля, может вызвать панику из-за исчерпания стека.encoding/gob: Вызов Decoder.Decode для сообщения, содержащего глубоко вложенные структуры, может вызвать панику из-за исчерпания стека.
path/filepath: Вызов Glob который содержит большое количество разделителей путей, может вызвать панику из-за исчерпания стека.
go/parser: Вызов любой функции Parse в исходном коде Go, который содержит глубоко вложенные типы или объявления, может вызвать панику из-за исчерпания стека.
Awesome
Материалы для обучения
Статьи
Minecraft protocol VarInt и VarLong. Как из единиц и нулей сделать число на примере Go?
Предотвращаем утечки памяти в Go, ч. 2. Особенности рантайма
Go sync/singleflight: устранение дублирования идентичных запросов
Как мы себя обманываем, только бы продолжать пользоваться Golang
Предотвращаем утечки памяти в Go, ч. 1. Ошибки бизнес-логики
Веб-фреймворки для Golang в 2022 году: оптимальные варианты для разработчика
Инструменты
Pongo2 6.0 — Django-синтаксис, похожий на движок шаблонов для Go.
eRPC 7.0 — расширяемая, простая в использовании платформа RPC.
go-elasticsearch 8.3 — официальный клиент Go для Elasticsearch.
Traefik 2.8.1 — обратный HTTP-прокси и балансировщик нагрузки.
FerretDB 0.5.1 — альтернатива MongoDB, но с серверной частью Postgres.
Vitess 12.0.5 — система кластеризации для горизонтального масштабирования MySQL.
Casbin 2.51.2 — библиотека авторизации, поддерживающая несколько моделей контроля доступа.
fasthttp 1.38 — быстрый HTTP-пакет.
go-version 1.6 — библиотека для разбора и проверки версий и ограничений.
Delve 1.9 — популярный инструмент отладки для Go
Miller 6.3 — как awk, sed, вырезание, объединение и сортировка для CSV/TSV.
GoBGP 3.4 — BGP, реализованный в Go.
OctoSQL 0.9.2 — объединяйте, анализируйте и преобразовывайте данные из нескольких источников с помощью SQL.
go-junit-report 2.0 — преобразование выходных данных теста Go в JUnit XML.
s5cmd 2.0 — инструмент для параллельного выполнения S3 и локальной файловой системы.
lo 1.27 — библиотека Go в стиле Lodash, основанная на дженериках.
Maddy 0.6.2 — компонуемый универсальный почтовый сервер.
cpuid 2.1 — инструмент идентификации функций ЦП для Go
gokey 0.1.1 — Простой менеджер паролей без хранилищ в Go
ent 0.11 — Популярная структура сущностей для Go.
PB 3.1 — индикатор выполнения консоли.
Kratos 2.4.1 — фреймворк для микросервисов.
Caddy 2.5.2 — быстрый веб-сервер с автоматическим HTTPS.
frp 0.44 — быстрый обратный прокси для доступа к локальным серверам.
tproxy 0.6.1 — инструмент cli для проксирования и анализа TCP-соединений.
gorse 0.4.5 — система рекомендаций.
Gum 0.2 — инструмент для «гламурных» сценариев консоли
chris — реализация парсера Пратта в Go для разбора математических уравнений
Go Micro 4.8 — платформа микросервисов.
Sonic 1.3.4 — сверхбыстрая JSON-библиотека (де)сериализации.
Sarama 1.35 — библиотека Go для Apache Kafka от Shopify.