Category : golang

golang
OpenClaw переписали на Go и уместили в один бинарник на 35 МБ. Зачем и что это даёт

OpenClaw — Node.js. Это значит: установи Node, установи npm, склонируй репо, npm install, подожди пока 800 МБ node_modules скачается, настрой конфиг, запусти. Если что-то сломалось — разбирайся с версиями Node, конфликтами зависимостей, нативными модулями.Кто-то посмотрел на это и решил переписать всё на Go. Результат — GoClaw: один бинарный файл на 35 МБ, который скачал, дал права на запуск и работаешь. Никаких зависимостей, никакого рантайма, никаких node_modules.Разбираю, что внутри и имеет …

  • среда, 8 апреля 2026 г. в 00:00:11
golang
Колобок-стек: я от бабушки ушёл, или как мы написали свой сервер алертов на 16 МБ

Нет повести печальнее на свете, чем повесть о лежачем алерте.Pusk — self‑hosted сервер алертов на 16 МБ. Один бинарник, без внешних сервисов, частично совместим с Telegram Bot API (13 методов из 80+).Типичная ситуация: несколько серверов, Zabbix собирает метрики, Python‑боты шлют алерты в Telegram. У кого‑то это веб‑проект, у кого‑то видеонаблюдение, у кого‑то живые эфиры, где 2 минуты без алерта = зрители видят чёрный экран. Работало годами. А потом канал до API отвалился. Причина неважна — ли…

  • суббота, 4 апреля 2026 г. в 00:00:06
golang
Очередь на Redis с Lua: порядок в партициях, общий пул воркеров и отложенные сообщения

Для тех кому лень читать и хочется сразу потрогать вот Github.Откуда задачаПеред командой встала типичная для высоконагруженных сервисов постановка по обработке сообщений:Порядок обработки в рамках одной логической партиции — события по одному пользователю/сущности должны идти строго последовательно.Очень много ключей партиций — сотни тысяч и выше; заводить под каждую ключ отдельную «очередь» в классическом смысле неразумно.Ограниченный пул воркеров, который шарится между партициями, при этом о…

  • пятница, 3 апреля 2026 г. в 00:00:10
golang
AI пишет код быстрее, а архитектура не успевает: три направления работы Go-команд сегодня

IT-индустрия вышла в новую фазу: мы научились быстро писать код, масштабировать системы и внедрять новые технологии почти без трения. Но столкнулись с новым вызовом: проблем не стало меньше — они стали сложнее.Команда «Онтико» решила не делать вид, что это просто «ещё один виток роста», и в 2026 году меняет сам формат IT-конференций! GolangConf 2026 — это уже не про «послушать доклады», которые кто-то просЛушал, а кто-то просРушал :) Мы будем разбираться с тем, что реально болит у команд прямо …

  • пятница, 3 апреля 2026 г. в 00:00:10
golang
Один вход для всех: как мы строили Gateway и выходили из хаоса nginx + Lua

Всем привет, меня зовут Кирилл Вересников, я бэкенд-разработчик в iSpring.Мы делаем iSpring LMS — платформу для корпоративного онлайн-обучения. Исторически это был модульный монолит на PHP, а затем система начала постепенно дополняться микросервисами. Самые нагруженные и часто меняющиеся части мы выносили из монолита, а новый функционал всё чаще сразу делали в микросервисах.При этом маршрутизация продолжала жить по старому. Чтобы вынести очередной сервис или добавить новый, нужно было идти обра…

  • четверг, 2 апреля 2026 г. в 00:00:03
golang
Lionheart: как я спрятал SOCKS5-туннель внутри видеоконференции Wildberries

Привет, Хабр. Я написал SOCKS5-прокси, который прячет весь трафик внутри WebRTC TURN-сессий видеоплатформы WB Stream (stream.wb.ru — да, у Wildberries есть свой аналог Телемоста, я тоже прифигел). Для любого наблюдателя трафик выглядит как обычная видеоконференция.В этом посте — полный разбор: как я отреверсил HTTP API платформы, зачем написал свой protobuf-парсер на 40 строк, и как KCP-соединение с VPS пролезает через чужой TURN-сервер.Репозиторий: github.com/jaykaiperson/lionheartДисклеймер. …

  • среда, 1 апреля 2026 г. в 00:00:07
golang
Новый народный мессенджер России. Можно, а зачем?

Telegram практически заблокирован. Max — официальный, удобный, но его не хотят ставить даже те, кто в курсе, что именно VK-экосистема уже хранит половину их цифровой жизни. В этом зазоре появляется вопрос: а нужен ли вообще «свой» мессенджер, и если да — каким он должен быть? Я попробовал ответить не словами, а кодом.Рынок, которого нетВ России сложилась любопытная ситуация. С одной стороны — Telegram, которым пользуется активная аудитория для всего: от личной переписки до бизнес-каналов с тыс…

  • вторник, 31 марта 2026 г. в 00:00:14
golang
Разбираем подводные камни, ошибки и лучшие практики при разработке Kubernetes-операторов. Часть 3

Привет! Это снова Стас Иванкевич, техлид в команде разработки управляющего слоя Platform V DropApp в СберТехе. Наши операторы продолжают бороздить просторы K8s, а инсталляторы — разворачивать новые кластеры, и мы готовы поделиться с вами новыми полезностями.В первой и второй частях мы уже о многом поговорили. Обсудили и базовые штуки, и принципы использования патчинга. В этой части детальнее поговорим про ошибки, как с ними можно и нужно работать, а как делать не стоит.Обработка ошибки и повтор…

  • вторник, 31 марта 2026 г. в 00:00:13
golang
Go, TUN и UDP: пишем сетевой relay с гибкой конфигурацией

Продолжаю пилить на Go утилиту для работы с TUN-интерфейсами. В предыдущей версии пакеты проходили путь system <-> tun10 <-> go app <-> tun11 <-> inet. Основная цель тогда была одна — разобраться с TUN-интерфейсами и сетевыми настройками. В текущей версии я добавил простейший udp relay, вынес сложность в конфиг и в целом переработал проект.В проекте появился YAML-конфиг, и теперь верхнеуровневая логика движения данных находится там:relays: - ingress: type: tun …

  • понедельник, 30 марта 2026 г. в 00:00:05