Если ты любишь TUI-интерфейсы и работаешь в терминале — это must-see.
GopherTube — это open-source YouTube-клиент на Go, который работает прямо в консоли.
Никаких браузеров, никакого GUI — только поиск, выбор и просмотр видео.
📦 Репозиторий: https://github.com/KrishnaSSH/GopherTube
Что умеет:
- искать видео по ключевым словам
- воспроизводить их через
mpv
- скачивать через
yt-dlp
- всё это — в удобном TUI-интерфейсе
💡 Зачем это нужно:
- смотреть/слушать видео на сервере без GUI
- работать в терминале быстрее, без переключений
- расширить знания по Go и TUI-разработке
Автор приглашает комьюнити участвовать — можно предложить фичи, улучшить UX, поработать над кешированием, плейлистами, буфером и т.д.
🧠 Отличный пример того, как писать полезные и лаконичные инструменты на Go.
#golang #tui #opensource #cli
📌 Github
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37🤔13❤9👍6🥰1🤯1
🔐 Хочешь выпустить собственный TLS-сертификат на Go — и сделать всё правильно?
🧰 В этом свежем гайде от показано, как:
1. 📄 Сгенерировать самоподписанный сертификат или свой CA (Certificate Authority)
2. 🔗 Создать доверенную цепочку: CA → сертификат сервера
3. 🛡️ Реализовать OCSP и CRL для проверки отозванных сертификатов
4. 🧪 Проверить подключение клиента с отозванным/действительным TLS
5. ⚙️ Подключить всё к
💡
Это must-read для тех, кто:
– делает gRPC или HTTPS
– работает с внутренними сертификатами
– хочет полный контроль над TLS-цепочкой
🧵 Читай подробно: https://getpid.dev/blog/tls-certificates/
Ставь 💙 и делись с тем, кто пишет на Go
#golang #TLS
@golang_google
🧰 В этом свежем гайде от показано, как:
1. 📄 Сгенерировать самоподписанный сертификат или свой CA (Certificate Authority)
2. 🔗 Создать доверенную цепочку: CA → сертификат сервера
3. 🛡️ Реализовать OCSP и CRL для проверки отозванных сертификатов
4. 🧪 Проверить подключение клиента с отозванным/действительным TLS
5. ⚙️ Подключить всё к
tls.Config
через кастомную валидацию VerifyPeerCertificate
💡
Go по умолчанию не проверяет статус сертификатов — и автор показывает, как это изменить всего за ~100 строк.
Это must-read для тех, кто:
– делает gRPC или HTTPS
– работает с внутренними сертификатами
– хочет полный контроль над TLS-цепочкой
🧵 Читай подробно: https://getpid.dev/blog/tls-certificates/
Ставь 💙 и делись с тем, кто пишет на Go
#golang #TLS
@golang_google
❤40👍13🔥8
Внутри:
- Минималистичный симулятор горутин и каналов прямо в браузере
- Работает через Go WebAssembly — никакого сервера не требуется
- Наглядно объяснены
select
, fan-in/fan-out, worker pool, таймауты и про- Код можно редактировать на лету
Выучить паттерны конкурентности Go станет проще с этим полезным сайтом.
Сохрани в закладки и тренируй мышление «конкурентного» Go-разработчика:
https://concurrency.rocks
#golang
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥59👍20❤13
🎉 Go 1.25 Release Candidate 3 уже доступен!
🔈 Анонс: https://groups.google.com/g/golang-announce/c/sTNnwCTjr1Y/m/tdIX-dDUAgAJ
📦 Скачать https://go.dev/dl/#go1.25rc3
⚠️ Исправлены баги: в этом релизе исправлены две уязвимости:
• os/exec.LookPath мог непредсказуемо возвращать путь к бинарям, если PATH содержит исполняемые файлы вместо папок — исправлено (CVE‑2025‑47906).
• В database/sql.Rows.Scan иногда возвращались некорректные результаты — теперь проблемы устранены.
🚀 Можно ставить в прод или тестировать: go.dev/issue/new
#golang #Go125 #release
@golang_google
🔈 Анонс: https://groups.google.com/g/golang-announce/c/sTNnwCTjr1Y/m/tdIX-dDUAgAJ
📦 Скачать https://go.dev/dl/#go1.25rc3
⚠️ Исправлены баги: в этом релизе исправлены две уязвимости:
• os/exec.LookPath мог непредсказуемо возвращать путь к бинарям, если PATH содержит исполняемые файлы вместо папок — исправлено (CVE‑2025‑47906).
• В database/sql.Rows.Scan иногда возвращались некорректные результаты — теперь проблемы устранены.
🚀 Можно ставить в прод или тестировать: go.dev/issue/new
#golang #Go125 #release
@golang_google
👍25🔥8❤7
Media is too big
VIEW IN TELEGRAM
Что это такое
gore
— это минимальный, платформонезависимый порт легендарного движка DOOM, написанный полностью на Go. Код портирован через ccgo, , реализован без использования CGo и внешних зависимостей — только чистый Go, кросс-компиляция и демонская ярость.
Что важно знать
- Нет платформозависимых библиотек — всё на Go и стандартной библиотеке.
- На GitHub обсуждаются текущие задачи: рефакторинг публичных функций, включение генераиков, улучшение воспроизведения демо и аудио, поддержка sanitiser.
- Никаких официальных релизов пока нет — код доступен только в виде репозитория.
Почему это интересно
- Интересный эксперимент: реализация старого движка в чистом Go, демонстрация возможностей языка.
- Подходит для обучения: архитектоника движка, рендеринг с нуля, работа с WAD-файлами.
📌 Github
@golang_google
#golang #doom
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33❤10👍6😁3🎉1
📘 "Go 101" популярная серия бесплатных книг обновлена под новую версию Golang 1.25 — сразу в четырёх разделах:
• 🚀 Go Optimizations 101: https://go101.org/optimizations/101.html
• 💡 Go Details & Tips 101: https://go101.org/details-and-tips/101.html
• 🔧 Go Generics 101: https://go101.org/generics/101.html
• 📖 Go 101: https://go101.org/article/101.html
@golang_google
#golang #freebook #education #book #go
• 🚀 Go Optimizations 101: https://go101.org/optimizations/101.html
• 💡 Go Details & Tips 101: https://go101.org/details-and-tips/101.html
• 🔧 Go Generics 101: https://go101.org/generics/101.html
• 📖 Go 101: https://go101.org/article/101.html
@golang_google
#golang #freebook #education #book #go
❤31👍16🔥9🥰1
💥 Необычное поведение структур
В недавнем блоге Мэтта Холла поднята важная деталь, о которой некоторые забывают.
Автор показывает, что при встраивании (`embedding`) структур Go может выбрать неочевидное поле, даже если кажется, что это вызовет ошибку.
Пример:
Вы думаете, тут компиляция не пройдёт из-за неоднозначности?
Но, она завершится успешна — и начпечатает abc.com.
Go выбирает наименее вложенное поле URL, в данном случае FooService.URL.
⚠ Урок: будьте осторожны с struct embedding! Переиспользование полей может скрывать баги, особенно когда поля именованы одинаково, а уровни вложенности различны.
📌 Пост
@golang_google
#golang #go
В недавнем блоге Мэтта Холла поднята важная деталь, о которой некоторые забывают.
Автор показывает, что при встраивании (`embedding`) структур Go может выбрать неочевидное поле, даже если кажется, что это вызовет ошибку.
Пример:
type FooService struct { URL string }
type BarConnectionOptions struct { URL string }
type BarService struct { BarConnectionOptions }
type Options struct {
FooService
BarService
}
opts := Options{
FooService: FooService{URL: "abc.com"},
BarService: BarService{
BarConnectionOptions: BarConnectionOptions{URL: "xyz.com"},
},
}
fmt.Println(opts.URL)
Вы думаете, тут компиляция не пройдёт из-за неоднозначности?
Но, она завершится успешна — и начпечатает abc.com.
Go выбирает наименее вложенное поле URL, в данном случае FooService.URL.
⚠ Урок: будьте осторожны с struct embedding! Переиспользование полей может скрывать баги, особенно когда поля именованы одинаково, а уровни вложенности различны.
📌 Пост
@golang_google
#golang #go
👍37❤8🔥8🤯4
Что это:
Screego — сервер для шаринга экрана с низкой задержкой и высоким качеством, написанный на Go. Работает через WebRTC и включает встроенный TURN-сервер, чтобы пробиваться даже через сложные сети и NAT.
✨ Возможности:
- Совместный доступ к экрану для нескольких пользователей
- Высокое разрешение + минимальная задержка
- Простая установка: Docker или единый бинарник
- Защищённая передача данных через WebRTC
- Поддержка IP-фильтров и настроек безопасности
🚀 Актуально:
Последний релиз — v1.12.0 (май 2025). Добавлены новые настройки безопасности для TURN-сервера.
🔗 Репозиторий: github.com/screego/server
@golang_google
#golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35❤10🔥9
This media is not supported in your browser
VIEW IN TELEGRAM
📡 marchat — лёгкий терминальный чат на Go
marchat — это самохостящийся чат прямо в терминале.
Он прост, кроссплатформенный и поддерживает всё, что нужно команде для быстрой и безопасной переписки.
🔑 Фишки:
- Устанавливается за пару минут (бинарь или Docker)
- E2E-шифрование (X25519 + ChaCha20-Poly1305)
- Передача файлов до 1 МБ
- Темы оформления и TUI-интерфейс (Bubble Tea)
- Плагины:
- Поддерживает админ-команды:
📌 Github
@golang_google
#golang #go #opensource
marchat — это самохостящийся чат прямо в терминале.
Он прост, кроссплатформенный и поддерживает всё, что нужно команде для быстрой и безопасной переписки.
🔑 Фишки:
- Устанавливается за пару минут (бинарь или Docker)
- E2E-шифрование (X25519 + ChaCha20-Poly1305)
- Передача файлов до 1 МБ
- Темы оформления и TUI-интерфейс (Bubble Tea)
- Плагины:
:store
, :plugin install
и т.д. - Поддерживает админ-команды:
:ban
, :kick
, :cleardb
📌 Github
@golang_google
#golang #go #opensource
👍12❤7🔥2
🚀 ВКонтакте усиляет Go-экспертизу команды
ВКонтакте переходит на сервисную архитектуру и переобучает часть команд на Go — уже 140 разработчиков прошли внутреннюю программу обучения:
Программа адаптирована под реальные процессы ВКонтакте: архитектура сервисов, работа с высоконагруженной инфраструктурой, асинхронность, интеграции
Фокус не на обучении с нуля, а быстром входе в сложные и практические задачи: например, в финальном проекте участники разрабатывали каркас микросервиса в условиях, максимально близких к реальным.
💡 Почему это интересно
Переход на Go — часть технологической стратегии ВКонтакте: микросервисы дают командам автономность и ускоряют внедрение фич.
Разработчики не теряют накопленные знания о продукте, но получают новую экспертизу и майндсет.
Пример, как крупная компания может инвестировать в апгрейд команды, а не только в найм.
#golang #vk #microservices @golang_google
ВКонтакте переходит на сервисную архитектуру и переобучает часть команд на Go — уже 140 разработчиков прошли внутреннюю программу обучения:
Программа адаптирована под реальные процессы ВКонтакте: архитектура сервисов, работа с высоконагруженной инфраструктурой, асинхронность, интеграции
Фокус не на обучении с нуля, а быстром входе в сложные и практические задачи: например, в финальном проекте участники разрабатывали каркас микросервиса в условиях, максимально близких к реальным.
💡 Почему это интересно
Переход на Go — часть технологической стратегии ВКонтакте: микросервисы дают командам автономность и ускоряют внедрение фич.
Разработчики не теряют накопленные знания о продукте, но получают новую экспертизу и майндсет.
Пример, как крупная компания может инвестировать в апгрейд команды, а не только в найм.
#golang #vk #microservices @golang_google
🤬33😁13👍10🔥7❤4
🚀 kro (Kube Resource Orchestrator) — новый открытый проект для Kubernetes!
kro позволяет объединять несколько ресурсов в один логический объект и управлять их жизненным циклом автоматически. При применении конфигурации kro создаёт необходимые CRD и сам следит за порядком развёртывания.
✨ Ключевые возможности:
- 🛠 Kubernetes-native – использует CRD, контроллеры и CEL (Common Expression Language).
- 🔗 ResourceGraphDefinition (RGD) – позволяет объявлять группы ресурсов с зависимостями в едином объекте.
- ⚡ Упрощение платформенной инженерии – скрывает сложность, создавая стандартизированные шаблоны деплоя для команд.
📌 Статус проекта:
- Всё ещё в активной разработке, не рекомендуется для production.
- GitHub: более 2.3k звёзд, десятки открытых задач и PR, активное развитие.
💬 От сообщества:
> kro упрощает управление сложными Kubernetes-ресурсами, превращая их в переиспользуемые блоки и автоматически определяя порядок развёртывания.
👉 Репозиторий: https://github.com/kro-run/kro
@golang_google
#golang #Kubernetes
kro позволяет объединять несколько ресурсов в один логический объект и управлять их жизненным циклом автоматически. При применении конфигурации kro создаёт необходимые CRD и сам следит за порядком развёртывания.
✨ Ключевые возможности:
- 🛠 Kubernetes-native – использует CRD, контроллеры и CEL (Common Expression Language).
- 🔗 ResourceGraphDefinition (RGD) – позволяет объявлять группы ресурсов с зависимостями в едином объекте.
- ⚡ Упрощение платформенной инженерии – скрывает сложность, создавая стандартизированные шаблоны деплоя для команд.
📌 Статус проекта:
- Всё ещё в активной разработке, не рекомендуется для production.
- GitHub: более 2.3k звёзд, десятки открытых задач и PR, активное развитие.
💬 От сообщества:
> kro упрощает управление сложными Kubernetes-ресурсами, превращая их в переиспользуемые блоки и автоматически определяя порядок развёртывания.
👉 Репозиторий: https://github.com/kro-run/kro
@golang_google
#golang #Kubernetes
❤5👍4🔥3
В релизе Go 1.25 представлена важная улучшенная логика работы
GOMAXPROCS
в контейнеризованных средах — например, в Kubernetes.Как это работает:
- Раньше по умолчанию
GOMAXPROCS
устанавливался равным числу логических CPU на хосте. - Теперь на Linux runtime автоматически учитывает CPU limits, заданные для контейнера. Если лимит меньше числа логических ядер —
GOMAXPROCS
устаналивается на уровне лимита. - Более того, runtime периодически обновляет
GOMAXPROCS
, если меняются доступные CPU или ограничения, без необходимости внешнего вмешательства. Почему это важно:
Ранее разработчикам приходилось использовать внешние решения вроде
uber-go/automaxprocs
, чтобы вручную синхронизировать GOMAXPROCS
с лимитами контейнера. Теперь runtime делает это автоматически и точнее: - Внутри контейнера Go не будет пытаться использовать все ядра хоста
- Уменьшаются лишние горутины, контекстные переключения и нагрузка на GC
Кратко: начиная с Go 1.25,
GOMAXPROCS
адаптируется под реальные CPU-ресурсы контейнера — без дополнительных усилий.📌 Подробности
@golang_google
#golang #Kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
👍59🔥18❤16👏2
🌦️ Минималистичный CLI для прогноза погоды на GO
Stormy — это настраиваемый инструмент командной строки для получения прогноза погоды, вдохновленный Neofetch. Написан на Go, он поддерживает несколько провайдеров данных и предлагает визуально привлекательное представление текущих погодных условий.
🚀Основные моменты:
- Поддержка OpenMeteo и OpenWeatherMap
- ASCII-арт для отображения погоды
- Настраиваемые единицы измерения
- Локальный конфигурационный файл
- Цветная поддержка для терминалов
📌 GitHub: https://github.com/ashish0kumar/stormy
@golang_google
#go #golang
Stormy — это настраиваемый инструмент командной строки для получения прогноза погоды, вдохновленный Neofetch. Написан на Go, он поддерживает несколько провайдеров данных и предлагает визуально привлекательное представление текущих погодных условий.
🚀Основные моменты:
- Поддержка OpenMeteo и OpenWeatherMap
- ASCII-арт для отображения погоды
- Настраиваемые единицы измерения
- Локальный конфигурационный файл
- Цветная поддержка для терминалов
📌 GitHub: https://github.com/ashish0kumar/stormy
@golang_google
#go #golang
❤32👍18🔥7😁3
Workshop по Go для тех, кто хочет собрать своего собственного кодинг-агента.
Это практический гайд — шаг за шагом показывают, как из Go сделать среду для генерации кода.
По сути похоже на Roo Code, Cline, Amp, Cursor, Windsurf или OpenCode, но в этом гайде упор идет на то, чтобы понять механику изнутри.
@golang_google
#go #golang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤6🔥6
@golang_google
#go #golang #Kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍7🔥3
Библиотека zek позволяет автоматически генерировать Go-структуры из XML-документов.
Полученные структуры идеально подходят для чтения и парсинга XML.
🔗 Repo: https://github.com/miku/zek
#golang #xml #devtools
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31😁16❤4🔥4
🗄️ SQL-редактор в браузере
Запускается как Go HTTP-сервер и открывается прямо в браузере.
Подходит для простых ETL-задач:
- перенос данных между базами
- работа с Excel-таблицами
- поддержка JSON и CSV
⚡ Удобный инструмент, когда нужно быстро и без лишних настроек управлять данными.
👉 https://github.com/a-le/db-portal
#golang
Запускается как Go HTTP-сервер и открывается прямо в браузере.
Подходит для простых ETL-задач:
- перенос данных между базами
- работа с Excel-таблицами
- поддержка JSON и CSV
⚡ Удобный инструмент, когда нужно быстро и без лишних настроек управлять данными.
👉 https://github.com/a-le/db-portal
#golang
👍9❤7🤔3🥰2
🤯 Вышли Go 1.25.1 и Go 1.24.7!
🔐 Security: исправлена уязвимость в
📣 Анонс: https://groups.google.com/g/golang-announce/c/PtW9VW21NPs/m/DJhMQ-m5AQAJ
⬇️ Скачать: https://go.dev/dl/#go1.25.1
#golang #security #release
@golang_google
🔐 Security: исправлена уязвимость в
net/http
(CVE-2025-47910). 📣 Анонс: https://groups.google.com/g/golang-announce/c/PtW9VW21NPs/m/DJhMQ-m5AQAJ
⬇️ Скачать: https://go.dev/dl/#go1.25.1
#golang #security #release
@golang_google
1👍33❤14🔥7
Metrics Server — это легковесный источник метрик ресурсов контейнеров для Kubernetes, предназначенный для поддержки автошкалирования. Он собирает данные о ресурсах с Kubelet и предоставляет их через Metrics API, что упрощает настройку горизонтального и вертикального автошкалирования.
- Эффективное использование ресурсов: 1 мили ядра CPU и 2 МБ памяти на узел
- Поддержка кластеров до 5000 узлов
- Сбор метрик каждые 15 секунд для быстрого автошкалирования
- Не предназначен для мониторинга или других целей, кроме автошкалирования
📌 GitHub: https://github.com/kubernetes-sigs/metrics-server
@golang_google
#golang
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5🔥3😁1
Новый экспериментальный JSON API в Go
В версии Go 1.25 появился новый способ работы с JSON — пакеты
Пока они работают только в экспериментальном режиме: чтобы включить, нужно указать
Зачем это нужно?
Старая библиотека
- Принимает некорректный UTF-8 и дубли ключей в объектах — это нарушает стандарт и может вести к багам.
-
- Сопоставление полей Go-структур нечувствительно к регистру — медленно и запутанно.
- Нет нормального стриминга JSON.
- Есть лишние аллокации и даже квадратичные замедления при рекурсии.
Что изменилось в
- Код разделён на два уровня: синтаксис (`jsontext`) и работа со значениями (`json/v2`). Это упростило и ускорило библиотеку.
- Marshal работает так же быстро, как в старой версии, а Unmarshal стал значительно быстрее.
- Поведение можно тонко настраивать через новые опции.
- Ошибки прошлого (дубли ключей, странное поведение с
📌 Как запустить?
или
Новый API делает работу с JSON быстрее, чище и предсказуемее. Пока он экспериментальный, но, если сообщество даст положительный отклик, то в Go 1.26 или следующей версии json/v2 станет стандартом.
Почитай официальный блог: https://go.dev/blog/jsonv2-exp
@Golang_google
#Go #Golang #JSON #Go125 #encodingjson #jsonv2
В версии Go 1.25 появился новый способ работы с JSON — пакеты
encoding/json/v2
и encoding/json/jsontext
. Пока они работают только в экспериментальном режиме: чтобы включить, нужно указать
GOEXPERIMENT=jsonv2
или собрать проект с тегом goexperiment.jsonv2
.Зачем это нужно?
Старая библиотека
encoding/json
существует с первых версий Go и за годы накопила массу проблем:- Принимает некорректный UTF-8 и дубли ключей в объектах — это нарушает стандарт и может вести к багам.
-
nil`-срезы и карты сериализуются как `null
, хотя логичнее было бы []
или {}
. - Сопоставление полей Go-структур нечувствительно к регистру — медленно и запутанно.
- Нет нормального стриминга JSON.
- Есть лишние аллокации и даже квадратичные замедления при рекурсии.
Что изменилось в
v2
?- Код разделён на два уровня: синтаксис (`jsontext`) и работа со значениями (`json/v2`). Это упростило и ускорило библиотеку.
- Marshal работает так же быстро, как в старой версии, а Unmarshal стал значительно быстрее.
- Поведение можно тонко настраивать через новые опции.
- Ошибки прошлого (дубли ключей, странное поведение с
nil
, нечувствительность к регистру) исправлены.📌 Как запустить?
go run -tags goexperiment.jsonv2 .
или
GOEXPERIMENT=jsonv2 go run .
Новый API делает работу с JSON быстрее, чище и предсказуемее. Пока он экспериментальный, но, если сообщество даст положительный отклик, то в Go 1.26 или следующей версии json/v2 станет стандартом.
Почитай официальный блог: https://go.dev/blog/jsonv2-exp
@Golang_google
#Go #Golang #JSON #Go125 #encodingjson #jsonv2
👍41❤19🔥12