Golang-дайджест № 14 (1 – 28 февраля 2022)
Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены Go 1.17.7 и 1.16.14
Go 1.18 Release Candidate 1: Заметки
Самомодифицирующийся исполняемый файл на Go
Go Workspaces в Go 1.18
Gambit - шахматы в терминале
Подкаст - обсуждаем дженерики от Go Get Podcast
FQ - Инструмент для работы с бинарными данными
Приятного чтения!
Новости, события
Выпущены Go 1.17.7 и 1.16.14 - включает исправлениями безопасности в cmd/go, math/big и crypto/elliptic
crypto/elliptic: исправление IsOnCurve для значений big.Int, которые не являются допустимыми
Некоторые значения big.Int, которые не являются допустимыми могут привести к тому что Curve.IsOnCurve неправильно вернет значение, работа с этими значениями могут вызвать панику или недопустимую операцию с кривой
math/big: потребления памяти в Rat.SetString
может вызвать неограниченный рост памяти в программе, использующей (*Rat).SetString
cmd/go: исправление версии веток
Ветка имя которой напоминает тег версии (например, "v1.0.0" или "subdir/v2.0.0-dev") go может считать действительной версией
proposal: arena: new package providing memory arenas
Предложение добавить пакет arena в стандартную библиотеку Go. Пакет арены позволит выделить любое количество арен. Объекты произвольного типа могут быть выделены из памяти арены, а арена автоматически увеличивается в размерах по мере необходимости. Когда все объекты в арене больше не используются, арена может быть явно освобождена для эффективного освобождения памяти без общей сборки мусора.
runtime: Не пора ли улучшить планировщик Go?
Russ Cox: Разбирает статью от ZDNet «Устойчивое развитие с Rust» - почему эта статья вводит в заблуждение о Go
Что будет в Go 1.18 — краткий обзор, в основном посвященный дженерикам и фаззингу на высоком (хотя и техническом) уровне.
Awesome
Материалы для обучения
The Darker Corners of Go — список уроков
Серии видео уроков по Golang - Николай Тузов
Статьи
Оптимизация GoAWK с помощью компилятора байт-кода и виртуальной машины.
Непрерывная сборка и развертывание приложений Go с помощью Google Cloud Build
Шаблоны проектирования GoF, которые все еще имеют смысл в Go
RabbitMQ Streams для сбора и обработки телеметрии умного дома
Go-контексты и микросервисы. Как решить проблему с соединениями к базе при помощи контекстов
Колокол — система событий в Go или очередная event-system библиотека
Proof-of-Union — алгоритм консенсуса в блокчейн системах базируемый на сотрудничестве узлов
Инструменты
Платформа для создания приложений с удаленным доступом по ssh - wish v0.3.0
Библиотека которая генерирует краткие, URL-безопасные UUID - shortuuid v4.0.0
Сервер обработки изображений с поддержкой Docker - imagor v0.8.11
Форк Cobra с большинством функций, но только с 4 зависимостями - coral v1.0.0
Распределенная реляционная база данных, построенная на SQLite - rqlite v7.3.1
Telegram Bot Framework - telebot 3.0
Игровой движок Pure Go - oak v3.3.0
Официальный клиент Go для Elasticsearch - go-elasticsearch v8.0
DNS-сервер, объединяющий плагины в цепочку - CoreDNS v1.9
Расширенный автономный планировщик заданий для PostgreSQL - pg_timetable v4.4.0
Играйте в шахматы в своем терминале - gambit v0.1.0
Библиотека логирования - zap v1.21.0
Инструмент для работы с бинарными данными - fq v0.05
Платформа TUI, вдохновленная Elm - bubbletea v0.20.0
Инструмент для рендеринга монохромной графики в терминале с помощью специальных блочных символов Unicode - tcg v0.0.2
Библиотека для размещения значка/меню в области уведомлений - systray
Утилита для сканирования некоторых новостных сайтов или других ресурсов и загрузки контента в pdf - newser
Инструмент SAST для обнаружения секретов, паролей, ключей API и токенов в репозиториях git - gitLeaks v8.3
Платформа для создания облачных микросервисов - kratos v2.2.0
Фреймворк для создания сервисов LDAP - gldap
Отслеживание позиций на биржах в терминале - ticker v4.5.0
Видео
Подкасты
▶ Go Get Podcast - Выпуск #1: Обсуждаем Дженерики