39.1K subscribers
1.64K photos
47 videos
5 files
1.78K links
admin - @haarrp

https://t.me/Golang_google - Golang разработка

https://t.me/golangl - golang чат

https://t.me/golangtests go тесты

https://t.me/ai_machinelearning_big_data машинное обучение

@itchannels_telegram

РКН: clck.ru/3Fmx3s
Download Telegram
👣 GopherTube — YouTube прямо в терминале на Go

Если ты любишь 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🤔139👍6🥰1🤯1
🔐 Хочешь выпустить собственный TLS-сертификат на Go — и сделать всё правильно?

🧰 В этом свежем гайде от показано, как:

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
👣 concurrency.rocks — интерактивный учебник с паттернами конкурентности Go

Внутри:
- Минималистичный симулятор горутин и каналов прямо в браузере
- Работает через 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👍2013
🎉 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
👍25🔥87
Media is too big
VIEW IN TELEGRAM
🎮 Gore — минимальная реализация DOOM на Go от AndreRenaud

Что это такое
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
🔥3310👍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
31👍16🔥9🥰1
💥 Необычное поведение структур

В недавнем блоге Мэтта Холла поднята важная деталь, о которой некоторые забывают.

Автор показывает, что при встраивании (`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
👍378🔥8🤯4
👣 Screego — быстрый и удобный экран-шеринг с открытым исходным кодом

Что это:
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
👍3510🔥9
This media is not supported in your browser
VIEW IN TELEGRAM
📡 marchat — лёгкий терминальный чат на Go

marchat — это самохостящийся чат прямо в терминале.
Он прост, кроссплатформенный и поддерживает всё, что нужно команде для быстрой и безопасной переписки.

🔑 Фишки:
- Устанавливается за пару минут (бинарь или Docker)
- E2E-шифрование (X25519 + ChaCha20-Poly1305)
- Передача файлов до 1 МБ
- Темы оформления и TUI-интерфейс (Bubble Tea)
- Плагины: :store, :plugin install и т.д.
- Поддерживает админ-команды: :ban, :kick, :cleardb

📌 Github

@golang_google

#golang #go #opensource
👍127🔥2
🚀 ВКонтакте усиляет Go-экспертизу команды

ВКонтакте переходит на сервисную архитектуру и переобучает часть команд на Go — уже 140 разработчиков прошли внутреннюю программу обучения:

Программа адаптирована под реальные процессы ВКонтакте: архитектура сервисов, работа с высоконагруженной инфраструктурой, асинхронность, интеграции

Фокус не на обучении с нуля, а быстром входе в сложные и практические задачи: например, в финальном проекте участники разрабатывали каркас микросервиса в условиях, максимально близких к реальным.

💡 Почему это интересно

Переход на Go — часть технологической стратегии ВКонтакте: микросервисы дают командам автономность и ускоряют внедрение фич.

Разработчики не теряют накопленные знания о продукте, но получают новую экспертизу и майндсет.

Пример, как крупная компания может инвестировать в апгрейд команды, а не только в найм.

#golang #vk #microservices @golang_google
🤬33😁13👍10🔥74
🚀 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
5👍4🔥3
👣 Go теперь по-умолчанию "знает", сколько CPU ему действительно доступно внутри контейнера

В релизе 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🔥1816👏2
🌦️ Минималистичный CLI для прогноза погоды на GO

Stormy — это настраиваемый инструмент командной строки для получения прогноза погоды, вдохновленный Neofetch. Написан на Go, он поддерживает несколько провайдеров данных и предлагает визуально привлекательное представление текущих погодных условий.

🚀Основные моменты:
- Поддержка OpenMeteo и OpenWeatherMap
- ASCII-арт для отображения погоды
- Настраиваемые единицы измерения
- Локальный конфигурационный файл
- Цветная поддержка для терминалов

📌 GitHub: https://github.com/ashish0kumar/stormy

@golang_google


#go #golang
32👍18🔥7😁3
👣 Build Your Own Coding Agent via a Step-by-Step Workshop

Workshop по Go для тех, кто хочет собрать своего собственного кодинг-агента.

Это практический гайд — шаг за шагом показывают, как из Go сделать среду для генерации кода.

По сути похоже на Roo Code, Cline, Amp, Cursor, Windsurf или OpenCode, но в этом гайде упор идет на то, чтобы понять механику изнутри.

🟢Github

@golang_google

#go #golang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍186🔥6
💻 kubectl-browse-pvc — плагин для kubectl, который позволяет пользователям удобно просматривать данные в Persistent Volume Claims (PVC) в Kubernetes!

🌟 Этот инструмент предоставляет возможность быстро монтировать PVC в поды Kubernetes и просматривать содержимое томов через файловую систему, что упрощает процесс диагностики и работы с данными в Kubernetes.

🌟 Плагин работает как расширение для kubectl, добавляя команду kubectl browse-pvc. Это позволяет пользователю быстро исследовать данные в томах Kubernetes без необходимости вручную настраивать монтирование томов или взаимодействовать с подами через командную строку. Пользователь может указать имя PVC, и плагин автоматически создает под с монтированным PVC, предоставляя удобный доступ к его содержимому для чтения и диагностики.

🔐 Лицензия: MIT

🖥 Github

@golang_google

#go #golang #Kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍7🔥3
👣 Zek: быстрое создание структур из XML

Библиотека 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😁164🔥4
🗄️ SQL-редактор в браузере

Запускается как Go HTTP-сервер и открывается прямо в браузере.
Подходит для простых ETL-задач:

- перенос данных между базами
- работа с Excel-таблицами
- поддержка JSON и CSV

Удобный инструмент, когда нужно быстро и без лишних настроек управлять данными.

👉 https://github.com/a-le/db-portal

#golang
👍97🤔3🥰2
🤯 Вышли Go 1.25.1 и Go 1.24.7!

🔐 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👍3314🔥7
👣 Kubernetes Metrics Server для автошкалирования 🚀
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 — пакеты 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
👍4119🔥12