39.1K subscribers
1.65K photos
48 videos
5 files
1.79K 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
👣 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
🌦️ Минималистичный CLI для прогноза погоды на GO

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

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

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

@golang_google


#go #golang
32👍18🔥7😁3
🔥 Упрощение DLL-хайкинга с DllShimmer

DllShimmer позволяет легко добавлять код в экспортируемые функции DLL без нарушения работы программы. Он генерирует C++ и DEF файлы, которые обеспечивают корректное взаимодействие с оригинальной DLL, сохраняя ее структуру.

Экспортируемые функции DLL — это функции, которые библиотека DLL (Dynamic Link Library) делает доступными для использования другими программами.

Когда вы пишете код вы можете собрать его не только в обычный исполняемый .exe, но и в динамическую библиотеку .dll. Такая библиотека хранит набор функций и данных, которые могут вызываться другими приложениями во время выполнения.

🚀Основные моменты:
- Простое создание прокси DLL для внедрения кода.
- Поддержка динамической и статической компоновки.
- Не требует реверс-инжиниринга.
- Сохраняет оригинальные имена и порядковые номера функций.
- Поддержка только x86-64 архитектуры.

📌 GitHub

@golang_google

#go
👍127🔥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
🛠️ Удобный инструмент для управления кластерами Postgres

Ivory — это инструмент с открытым исходным кодом, который упрощает работу с кластерами Postgres, предоставляя удобный интерфейс для разработчиков и администраторов баз данных. Он позволяет управлять конфигурацией кластера, выполнять запросы и контролировать состояние в одном месте.

🚀 Основные моменты:
- Упрощает управление Postgres кластерами
- Интуитивно понятный интерфейс для основных функций Patroni
- Возможность работы локально или в виртуальной машине
- Поддержка редактирования конфигурации кластера
- Инструменты для диагностики и устранения проблем

📌 GitHub: https://github.com/veegres/ivory

#go
👍105🔥4
🌊 Surf - Мощный HTTP-клиент для Go

Surf предлагает интуитивно понятный и функциональный подход к работе с HTTP-запросами. С поддержкой браузерной имитации, продвинутой безопасности и гибкой системой промежуточного ПО, этот клиент идеально подходит для современных веб-взаимодействий.

🚀 Основные моменты:
- Поддержка имитации браузеров Chrome и Firefox
- Расширенные функции безопасности и TLS
- Полная поддержка HTTP/2 и HTTP/3
- Эффективное управление соединениями и кэширование ответов
- Совместимость со стандартной библиотекой Go

🟢GitHub: https://github.com/enetx/surf

#go

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2413🔥4🤬2😁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
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Анализ логов в реальном времени с Gonzo

Gonzo — это мощный TUI для анализа логов, вдохновленный k9s. Он предлагает красивый интерфейс для работы с потоками логов, включая интерактивные графики и AI-аналитику. Поддержка OpenTelemetry и продвинутые фильтры делают его идеальным инструментом для разработчиков.

🚀Основные моменты:
- Реальный анализ логов с потоковой обработкой
- Интерактивная панель с графиками и навигацией
- Поддержка фильтрации по регулярным выражениям
- Темы оформления и возможность настройки
- AI-аналитика для выявления паттернов и аномалий

📌 GitHub: https://github.com/control-theory/gonzo

#go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥64
👣 Разбор статьи о том, как Go управляет памятью

Go использует собственную, достаточно сложную модель аллокации памяти, которая сильно отличается от традиционного malloc. Вместо прямой работы с кучей Go оперирует несколькими уровнями:

- Arena - основной блок памяти в 64 МБ, который Go выделяет у ОС.
- Page - каждая арена делится на страницы по 8 КБ.
- Span - набор страниц, который используется для аллокаций объектов одного размера.
- Size class - категории размеров объектов (от tiny до large), каждая из которых имеет свой способ обработки.

Память также делится на:
- scan (объекты с указателями, которые должен обходить GC),
- noscan (объекты без указателей, GC может их игнорировать).

Аллокация объектов
- Tiny-объекты (менее 16 байт) могут группироваться в один слот для ускорения.
- Small-объекты (до 32 КБ) выделяются из span’ов в соответствии с size class.
- Large-объекты (более 32 КБ) выделяются напрямую из кучи (heap).

Escape analysis
Go-компилятор анализирует, выходит ли переменная за пределы функции:
- если нет → объект попадает на стек,
- если да → объект уходит в кучу.
Это решает судьбу каждой переменной и напрямую влияет на работу GC.

Стек горутин
- Каждая горутина стартует со стека в 2 КБ.
- Стек растёт динамически (copy & grow) и может сжиматься.
- При глубокой рекурсии или сложных вычислениях рост стека может быть дорогим, так как требует копирования всех данных.

Практические советы
1. Избегайте лишних tiny / small аллокаций в горячих функциях - каждая мелочь создаёт нагрузку на GC.
2. Переиспользуйте срезы и буферы (`row[:0]`, sync.Pool) для минимизации мусора.
3. Объединяйте переменные в структуры, если они живут одинаковое время, чтобы уменьшить число malloc’ов.
4. Следите за размером объектов, чтобы они не перескакивали из small в large — это увеличивает расходы.
5. Профилируйте escape analysis (`go build -gcflags="-m"`) - он покажет, какие переменные уходят в кучу, а какие остаются на стеке.
6. Следите за ростом стека в рекурсивных функциях - копирование может быть дорогим.

Контроль над аллокацией в Go - это контроль над работой GC. Если понимать, как именно Go управляет памятью, можно проектировать код так, чтобы минимизировать аллокации, упростить жизнь GC и получить значительный прирост производительности.

🟢 Полный разбор здесь: https://nghiant3223.github.io/2025/06/03/memory_allocation_in_go.html
🟢Видео-разбор: https://www.youtube.com/watch?v=VrXQhtpjHWs

@golang_google

#golang #go #memory
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥57👍2416