Что это:
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
👍33❤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
🤬32😁12👍10🔥7❤4
🧰 Новый инструмент для DevOps и тех, кто работает с Docker-реестрами
Это лёгкий, автономный скрипт на Go, который позволяет удалять образы из Docker Registry, даже если он не поддерживает API удаления.
Зачем это нужно?
— Некоторые приватные реестры быстро захламляются образами
— По умолчанию Docker Registry хранит всё, и старые образы не удаляются автоматически
— А стандартный API удаления (delete by digest) работает не везде или требует включения GC вручную
Что делает
- безопасно удаляет теги и образы по маске
- поддерживает dry-run режим
- не требует сложной настройки
- работает без установки — один бинарник
📦 Подходит для cleanup-скриптов, CI/CD пайплайнов и просто админки старых реестров.
👉 Репозиторий: https://github.com/psviderski/unregistry
Это лёгкий, автономный скрипт на Go, который позволяет удалять образы из Docker Registry, даже если он не поддерживает API удаления.
Зачем это нужно?
— Некоторые приватные реестры быстро захламляются образами
— По умолчанию Docker Registry хранит всё, и старые образы не удаляются автоматически
— А стандартный API удаления (delete by digest) работает не везде или требует включения GC вручную
Что делает
unregistry
:- безопасно удаляет теги и образы по маске
- поддерживает dry-run режим
- не требует сложной настройки
- работает без установки — один бинарник
📦 Подходит для cleanup-скриптов, CI/CD пайплайнов и просто админки старых реестров.
👉 Репозиторий: https://github.com/psviderski/unregistry
❤11👍5🔥3
ХОЧЕШЬ ПОВЫСИТЬ ГРЕЙД В 2025 ГОДУ? 🚀
Если:
— код разваливается от правок,
— бизнес-логика размазана,
— Entity — просто структуры,
— а тесты живут своей жизнью —
вам точно сюда.
📦 Научитесь строить архитектуру, устойчивую к изменениям.
Что будет на обучении?
✅ Создадим полноценный микросервис
✅ Разберем все тактические паттерны DDD
✅ Реализуем Use Case и Domain Service
✅ Напишем много тестов
✅ Реализуем HTTP, gRPC и Kafka адаптеры
📢 Повышайте свою ценность, как специалиста, прямо сейчас👉 https://microarch.ru/courses/ddd/languages/go?utm_source=posev&utm_medium=erid:2VtzqvXrjht&utm_campaign=1
Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2VtzqvXrjht
Если:
— код разваливается от правок,
— бизнес-логика размазана,
— Entity — просто структуры,
— а тесты живут своей жизнью —
вам точно сюда.
📦 Научитесь строить архитектуру, устойчивую к изменениям.
Что будет на обучении?
✅ Создадим полноценный микросервис
✅ Разберем все тактические паттерны DDD
✅ Реализуем Use Case и Domain Service
✅ Напишем много тестов
✅ Реализуем HTTP, gRPC и Kafka адаптеры
📢 Повышайте свою ценность, как специалиста, прямо сейчас👉 https://microarch.ru/courses/ddd/languages/go?utm_source=posev&utm_medium=erid:2VtzqvXrjht&utm_campaign=1
Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2VtzqvXrjht
❤7🔥4👍3
🚀 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
Media is too big
VIEW IN TELEGRAM
Есть вариант на 27 августа — DrinkUp от Авито для backend-разработчиков в Нижнем Новгороде ☄️
Встречаемся в 19:00 в DKRT space, чтобы в формате дискуссий обсудить:
➡️ как правильно структурировать проекты;
➡️ кому и как проще вкатиться в Go и почему он такой странный;
➡️ как LLM помогает разработчикам.
Остальные темы раскрывать не будем — можете посмотреть их по ссылке! Там же, кстати, и регистрация на ивент.
Встречаемся в 19:00 в DKRT space, чтобы в формате дискуссий обсудить:
Остальные темы раскрывать не будем — можете посмотреть их по ссылке! Там же, кстати, и регистрация на ивент.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🤬1
В релизе 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❤15👏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
❤29👍18🔥7😁3
Митап для Go-разработчиков от МТС
11 сентября | 19:00
Офлайн в Москве | Онлайн
О чем поговорим:
🔹LLM для конкурентного Go кода;
🔹WaitGroup Pitfalls;
🔹Эффективное использование sync.Map в Go;
🔹Разработка Cloud Controller Manager: интеграция Kubernetes с облаком MWS.
Воркшоп, доклады и нетворкинг на баскетбольной арене.
Присоединяйся! Для участия зарегистрируйся по ссылке.
11 сентября | 19:00
Офлайн в Москве | Онлайн
О чем поговорим:
🔹LLM для конкурентного Go кода;
🔹WaitGroup Pitfalls;
🔹Эффективное использование sync.Map в Go;
🔹Разработка Cloud Controller Manager: интеграция Kubernetes с облаком MWS.
Воркшоп, доклады и нетворкинг на баскетбольной арене.
Присоединяйся! Для участия зарегистрируйся по ссылке.
❤11
📂 filesql — SQL для ваших файлов прямо в Go
Хотите писать SQL-запросы к CSV, TSV или LTSV без лишней возни? 🚀
Инструмент позволяет использовать привычный синтаксис SQLite прямо поверх файлов — даже сжатых (.gz, .bz2, .xz, .zst).
✨ Основные фишки:
🟢 Поддержка CSV / TSV / LTSV
🟢 JOIN между файлами и рекурсивный обход папок
🟢 Полный синтаксис SQLite: CTE, оконные функции, агрегаты
🟢 Безопасность: INSERT/UPDATE/DELETE работают только в памяти — исходники не трогаются
🟢 Экспорт изменений функцией DumpDatabase()
🛠 Пример кода на Go:
📦 Установка:
🔥 Идеально для быстрых аналитических задач, скриптов и прототипов — SQL-сила без базы данных!
▪ Github
@golang_google
Хотите писать SQL-запросы к CSV, TSV или LTSV без лишней возни? 🚀
Инструмент позволяет использовать привычный синтаксис SQLite прямо поверх файлов — даже сжатых (.gz, .bz2, .xz, .zst).
✨ Основные фишки:
🛠 Пример кода на Go:
db, _ := filesql.Open("data.csv")
rows, _ := db.Query("SELECT name, age FROM data WHERE age > 25 ORDER BY name")
defer rows.Close()
📦 Установка:
go get github.com/nao1215/filesql
🔥 Идеально для быстрых аналитических задач, скриптов и прототипов — SQL-сила без базы данных!
▪ Github
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19🔥12👍10
Тест для Golang-разработчиков, проверьте свои знания, готовы ли вы к обучению на курсе.
💻 Ответьте на 20 вопросов за 30 минут и проверьте, готовы ли вы к обучению на онлайн-курсе «Golang Developer. Professional» от OTUS. Сейчас Go становится все востребованнее, благодаря своей производительности, масштабируемости и экосистеме.
После 5 месяцев обучения вы сможете:
— Писать production-ready код, многопоточные и конкурентные программы.
— Понимать синтаксис и внутреннее устройство языка Go.
— Разворачивать микросервисы с помощью Docker.
— Проектировать и реализовывать микросервисную архитектуру на Go.
Также вас ждет прокачка навыков на реальных коммерческих кейсах и под руководством экспертов в этой области. Возможна рассрочка.
👉 ПРОЙТИ ТЕСТ: https://otus.pw/jQx5Y/?erid=2W5zFJ5e6tQ
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
💻 Ответьте на 20 вопросов за 30 минут и проверьте, готовы ли вы к обучению на онлайн-курсе «Golang Developer. Professional» от OTUS. Сейчас Go становится все востребованнее, благодаря своей производительности, масштабируемости и экосистеме.
После 5 месяцев обучения вы сможете:
— Писать production-ready код, многопоточные и конкурентные программы.
— Понимать синтаксис и внутреннее устройство языка Go.
— Разворачивать микросервисы с помощью Docker.
— Проектировать и реализовывать микросервисную архитектуру на Go.
Также вас ждет прокачка навыков на реальных коммерческих кейсах и под руководством экспертов в этой области. Возможна рассрочка.
👉 ПРОЙТИ ТЕСТ: https://otus.pw/jQx5Y/?erid=2W5zFJ5e6tQ
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
😁4❤2🤬2🤯1
🔥 Упрощение DLL-хайкинга с DllShimmer
DllShimmer позволяет легко добавлять код в экспортируемые функции DLL без нарушения работы программы. Он генерирует C++ и DEF файлы, которые обеспечивают корректное взаимодействие с оригинальной DLL, сохраняя ее структуру.
Экспортируемые функции DLL — это функции, которые библиотека DLL (Dynamic Link Library) делает доступными для использования другими программами.
Когда вы пишете код вы можете собрать его не только в обычный исполняемый .exe, но и в динамическую библиотеку .dll. Такая библиотека хранит набор функций и данных, которые могут вызываться другими приложениями во время выполнения.
🚀Основные моменты:
- Простое создание прокси DLL для внедрения кода.
- Поддержка динамической и статической компоновки.
- Не требует реверс-инжиниринга.
- Сохраняет оригинальные имена и порядковые номера функций.
- Поддержка только x86-64 архитектуры.
📌 GitHub
@golang_google
#go
DllShimmer позволяет легко добавлять код в экспортируемые функции DLL без нарушения работы программы. Он генерирует C++ и DEF файлы, которые обеспечивают корректное взаимодействие с оригинальной DLL, сохраняя ее структуру.
Экспортируемые функции DLL — это функции, которые библиотека DLL (Dynamic Link Library) делает доступными для использования другими программами.
Когда вы пишете код вы можете собрать его не только в обычный исполняемый .exe, но и в динамическую библиотеку .dll. Такая библиотека хранит набор функций и данных, которые могут вызываться другими приложениями во время выполнения.
🚀Основные моменты:
- Простое создание прокси DLL для внедрения кода.
- Поддержка динамической и статической компоновки.
- Не требует реверс-инжиниринга.
- Сохраняет оригинальные имена и порядковые номера функций.
- Поддержка только x86-64 архитектуры.
📌 GitHub
@golang_google
#go
👍9❤5🔥2
Что нужно сделать первым делом, когда открыл офис в новом городе? Устроить вечеринку! 😀
Так поступили и Авито в Нижнем Новгороде — зовут инженеров 3 сентября на IT-квест по городу, который завершится вечеринкой с нетворкингом и Fuckup Night в секретном месте.
Пересылайте пост друзьям, с которыми пойдёте, и не забудьте зарегистрироваться по ссылке.
Так поступили и Авито в Нижнем Новгороде — зовут инженеров 3 сентября на IT-квест по городу, который завершится вечеринкой с нетворкингом и Fuckup Night в секретном месте.
Пересылайте пост друзьям, с которыми пойдёте, и не забудьте зарегистрироваться по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🥰1
🧠 CasCache — CAS-безопасный кэш для Go с валидацией чтения и «bulk»-наборов
Что это
- Кэш «как CAS»: записи защищены поколениями (generation). Запись проходит только если поколение ключа не изменилось.
- Singles: никогда не вернёт «протухшее» значение; битые/чужого типа записи самовосстанавливаются (самоочистка).
- Bulk: кэширует набор ключей; при чтении каждый элемент сверяется с актуальным поколением — если хоть один устарел, весь набор отбрасывается и читается по одиночке.
- Подключаемые провайдеры значений: Ristretto / BigCache / Redis.
- Подключаемые кодеки: JSON/Msgpack/CBOR/Proto (можно навесить компрессию/шифрование).
- Distributed GenStore (опционально): хранит поколения в Redis для корректности между репликами и переживания рестартов.
Зачем это нужно
- Без «грязных» чтений при гонках читателя/писателя.
- Нулевая «write amplification» при чтении — валидация только на чтении.
- Гибкий выбор провайдера/кодека, можно начать локально и дорастить до кластера (с общим GenStore).
Быстрый старт
📌Репозиторий: github.com/unkn0wn-root/cascache
Что это
- Кэш «как CAS»: записи защищены поколениями (generation). Запись проходит только если поколение ключа не изменилось.
- Singles: никогда не вернёт «протухшее» значение; битые/чужого типа записи самовосстанавливаются (самоочистка).
- Bulk: кэширует набор ключей; при чтении каждый элемент сверяется с актуальным поколением — если хоть один устарел, весь набор отбрасывается и читается по одиночке.
- Подключаемые провайдеры значений: Ristretto / BigCache / Redis.
- Подключаемые кодеки: JSON/Msgpack/CBOR/Proto (можно навесить компрессию/шифрование).
- Distributed GenStore (опционально): хранит поколения в Redis для корректности между репликами и переживания рестартов.
Зачем это нужно
- Без «грязных» чтений при гонках читателя/писателя.
- Нулевая «write amplification» при чтении — валидация только на чтении.
- Гибкий выбор провайдера/кодека, можно начать локально и дорастить до кластера (с общим GenStore).
Быстрый старт
import (
"context"
"time"
"github.com/unkn0wn-root/cascache"
rp "github.com/unkn0wn-root/cascache/provider/ristretto"
)
type User struct{ ID, Name string }
func buildCache() cascache.CAS[User] {
rist, _ := rp.New(rp.Config{
NumCounters: 1_000_000,
MaxCost: 64 << 20,
BufferItems: 64,
Metrics: false,
})
cc, _ := cascache.New[User](cascache.Options[User]{
Namespace: "user",
Provider: rist,
Codec: cascache.JSONCodec[User]{},
DefaultTTL: 5 * time.Minute,
BulkTTL: 5 * time.Minute,
// GenStore: nil → локально; для кластера подключите Redis GenStore.
})
return cc
}
func readUser(ctx context.Context, c cascache.CAS[User], id string) (User, bool) {
if u, ok, _ := c.Get(ctx, id); ok { return u, true }
obs := c.SnapshotGen(id) // снять поколение ДО чтения БД
u := loadFromDB(id)
_ = c.SetWithGen(ctx, id, u, obs, 0) // запись пройдёт только если поколение не изменилось
return u, true
}
📌Репозиторий: github.com/unkn0wn-root/cascache
👍6❤5🔥3