📁 doublestar — расширенная поддержка glob-паттернов в Go
Альтернатива стандартному path/filepath.Glob в Go, с поддержкой:
• ** — рекурсивных поддиректорий
• Расширенных классов символов ([[:alpha:]], [[:digit:]])
• Исключающих шаблонов (!(pattern), @(pattern), ?(pattern))
• Более гибких масок в стиле Bash/Zsh
🔧 Использование:
📦 Подходит для написания CLI-инструментов, сборщиков, тулов для анализа кода и всего, где важна гибкость файловых шаблонов.
👉 Если filepath.Glob не хватает — doublestar легко заменяет его, не ломая привычный интерфейс.
github.com/bmatcuk/doublestar
Альтернатива стандартному path/filepath.Glob в Go, с поддержкой:
• ** — рекурсивных поддиректорий
• Расширенных классов символов ([[:alpha:]], [[:digit:]])
• Исключающих шаблонов (!(pattern), @(pattern), ?(pattern))
• Более гибких масок в стиле Bash/Zsh
go get github.com/bmatcuk/doublestar/v4
🔧 Использование:
matches, err := doublestar.Glob("**/*.go")
📦 Подходит для написания CLI-инструментов, сборщиков, тулов для анализа кода и всего, где важна гибкость файловых шаблонов.
👉 Если filepath.Glob не хватает — doublestar легко заменяет его, не ломая привычный интерфейс.
github.com/bmatcuk/doublestar
🌀 RLX OS — минималистичная Linux-операционка, написанная на Go, запускаемая из одного файла
Проект — это легковесная, контейнерно-ориентированная Linux-система, которую можно запустить как один исполняемый файл. Идеально подходит для embedded-устройств, безопасных сред и DevOps-экспериментов.
### ⚙️ Основные особенности:
🚀 Монолитный исполняемый образ — всё в одном
🧱 Immutable by design — неизменяемая, безопасная структура
📦 App Containers — встроенная поддержка запуска приложений как изолированных контейнеров
🌐 Zero-dependency init system — простая и быстрая загрузка
🛡️ Фокус на минимуме, скорости и контроле
💡 Поддержка Live Boot, конфигурации через YAML и кастомных сборок
📦 Отличный выбор для:
• DIY-дистрибутивов
• Специализированных рабочих станций
• Безопасной разработки без зависимости от сторонних пакетов
🔗 Репозиторий
@golang_interview
Проект — это легковесная, контейнерно-ориентированная Linux-система, которую можно запустить как один исполняемый файл. Идеально подходит для embedded-устройств, безопасных сред и DevOps-экспериментов.
### ⚙️ Основные особенности:
🚀 Монолитный исполняемый образ — всё в одном
.efi`- или
.iso`-файле 🧱 Immutable by design — неизменяемая, безопасная структура
📦 App Containers — встроенная поддержка запуска приложений как изолированных контейнеров
🌐 Zero-dependency init system — простая и быстрая загрузка
🛡️ Фокус на минимуме, скорости и контроле
💡 Поддержка Live Boot, конфигурации через YAML и кастомных сборок
📦 Отличный выбор для:
• DIY-дистрибутивов
• Специализированных рабочих станций
• Безопасной разработки без зависимости от сторонних пакетов
🔗 Репозиторий
@golang_interview
⚡️ Thunder — минималистичный фреймворк для API на Go
[Thunder](https://github.com/Raezil/Thunder) — это лёгкий и быстрый инструмент для создания API-серверов на Go. Он фокусируется на простоте, читаемости и строгой типизации без лишних абстракций.
🧩 Ключевые особенности:
• 🧼 Чистая архитектура — без лишнего "магического" кода
• 💡 Использует Go-дженерики для гибкости и типобезопасности
• ⚙️ Простое подключение middleware и обработчиков
• 🧪 Упрощённое тестирование маршрутов
• 🪶 Низкий порог входа и лёгкая интеграция в существующие проекты
👨💻 Пример:
Всё просто и по-Goшному.
📦 Подходит для:
• Быстрой сборки REST API
• Микросервисов и CLI-инструментов
• Тех, кто хочет full-control без тяжёлых фреймворков
🔗 GitHub
[Thunder](https://github.com/Raezil/Thunder) — это лёгкий и быстрый инструмент для создания API-серверов на Go. Он фокусируется на простоте, читаемости и строгой типизации без лишних абстракций.
🧩 Ключевые особенности:
• 🧼 Чистая архитектура — без лишнего "магического" кода
• 💡 Использует Go-дженерики для гибкости и типобезопасности
• ⚙️ Простое подключение middleware и обработчиков
• 🧪 Упрощённое тестирование маршрутов
• 🪶 Низкий порог входа и лёгкая интеграция в существующие проекты
👨💻 Пример:
thunder.Get("/ping", func(c thunder.Context) error {
return c.JSON(200, "pong")
})
Всё просто и по-Goшному.
📦 Подходит для:
• Быстрой сборки REST API
• Микросервисов и CLI-инструментов
• Тех, кто хочет full-control без тяжёлых фреймворков
🔗 GitHub
🧮 Парсим `lsblk` и анализируем диски на Go — без зависимостей
Вместо тяжёлых утилит можно легко написать парсер для анализа дисков прямо на Go.
В блоге Rezmoss показано, как создать свой анализатор дисков и разделов, используя
🔍 Что делает утилита:
• Запускает
• Парсит структуру блок-устройств и их монтирования
• Выводит дерево разделов, меток и точек монтирования
• Работает без сторонних зависимостей
📦 Используются только:
•
•
• Стандартные структуры Go для представления дисков
🧠 Полезно для:
• CLI-утилит по управлению хранилищем
• системных тулов в Linux
• кастомных мониторингов и автоконфигурации
🔗 Читай подробнее: rezmoss.com/blog/disk-partition-analyzer-in-go/
#golang #linux #sysadmin #devtools #cli
Вместо тяжёлых утилит можно легко написать парсер для анализа дисков прямо на Go.
В блоге Rezmoss показано, как создать свой анализатор дисков и разделов, используя
lsblk
и стандартную библиотеку Go.🔍 Что делает утилита:
• Запускает
lsblk -J
и получает JSON • Парсит структуру блок-устройств и их монтирования
• Выводит дерево разделов, меток и точек монтирования
• Работает без сторонних зависимостей
📦 Используются только:
•
os/exec
для запуска lsblk
•
encoding/json
для разбора вывода • Стандартные структуры Go для представления дисков
🧠 Полезно для:
• CLI-утилит по управлению хранилищем
• системных тулов в Linux
• кастомных мониторингов и автоконфигурации
🔗 Читай подробнее: rezmoss.com/blog/disk-partition-analyzer-in-go/
#golang #linux #sysadmin #devtools #cli
🔥 7 000+ упражнений на 76 языках программирования
Exercism — бесплатная платформа для прокачки навыков программирования с нуля. Каждый язык — отдельный путь, наполненный практическими задачами.
Главный плюс — обратная связь от опытных менторов. Ответы здесь не быстрые, зато по делу и без токсичности, как это бывает на Stack Overflow.
https://exercism.org/
Exercism — бесплатная платформа для прокачки навыков программирования с нуля. Каждый язык — отдельный путь, наполненный практическими задачами.
Главный плюс — обратная связь от опытных менторов. Ответы здесь не быстрые, зато по делу и без токсичности, как это бывает на Stack Overflow.
https://exercism.org/
📦 Nubo — репозиторий формальных доказательств для Dedukti
Если вы работаете с формальными доказательствами и Dedukti — Nubo упрощает жизнь.
🔹 Это централизованный репозиторий библиотек с метаданными: имя, версия, зависимости, синтаксис, флаги.
🔹 Поддерживает загрузку (make download), проверку (make check) и упаковку (make package).
🔹 Работает через Makefile-сборку, автоматически управляя зависимостями и структурами.
🔹 Стандартизирует хранение и верификацию библиотек, пригоден для масштабирования и CI.
👨🔬 Полезно для исследователей, разработчиков Dedukti и формальных систем.
🔗 GitHub: https://github.com/nubolang/nubo
Если вы работаете с формальными доказательствами и Dedukti — Nubo упрощает жизнь.
🔹 Это централизованный репозиторий библиотек с метаданными: имя, версия, зависимости, синтаксис, флаги.
🔹 Поддерживает загрузку (make download), проверку (make check) и упаковку (make package).
🔹 Работает через Makefile-сборку, автоматически управляя зависимостями и структурами.
🔹 Стандартизирует хранение и верификацию библиотек, пригоден для масштабирования и CI.
👨🔬 Полезно для исследователей, разработчиков Dedukti и формальных систем.
🔗 GitHub: https://github.com/nubolang/nubo
Вакансиb для Golang-разработчиков в Otello!
1️⃣ Разрабатываем сервис бронирования, где команда сама отвечает за архитектуру, консистентность данных и деплой.
2️⃣ Максимум ответственности и развитияТы сам проектируешь фичи, принимаешь решения и доводишь их до продакшена. У нас нет бюрократии и долгих согласований — есть автономные команды и возможность проявить лидерские качества.
3️⃣ Технологический стек, который радуетGo, PostgreSQL, Clickhouse, Kafka, Kubernetes, Prometheus, Grafana и многое другое. Пишем гексагональные REST-сервисы, разворачиваемся в четырех датацентрах. Любим архитектурные обсуждения, но технологии для нас — не самоцель, а инструмент.
4️⃣ Процесс, который не бесит. Работаем по Shape Up, поэтому без бесконечных таск-трекеров и бесцельных стендапов. Всегда задаем себе вопрос "Зачем?" и находим лучшие ответы на "Как?".
5️⃣ Классная команда и атмосфера. Мы ценим простые и эффективные решения, любим обсуждать архитектуру и масштабирование, а еще умеем работать динамично и с кайфом.
🔥 Если тебе близко —откликайся!
1️⃣ Разрабатываем сервис бронирования, где команда сама отвечает за архитектуру, консистентность данных и деплой.
2️⃣ Максимум ответственности и развитияТы сам проектируешь фичи, принимаешь решения и доводишь их до продакшена. У нас нет бюрократии и долгих согласований — есть автономные команды и возможность проявить лидерские качества.
3️⃣ Технологический стек, который радуетGo, PostgreSQL, Clickhouse, Kafka, Kubernetes, Prometheus, Grafana и многое другое. Пишем гексагональные REST-сервисы, разворачиваемся в четырех датацентрах. Любим архитектурные обсуждения, но технологии для нас — не самоцель, а инструмент.
4️⃣ Процесс, который не бесит. Работаем по Shape Up, поэтому без бесконечных таск-трекеров и бесцельных стендапов. Всегда задаем себе вопрос "Зачем?" и находим лучшие ответы на "Как?".
5️⃣ Классная команда и атмосфера. Мы ценим простые и эффективные решения, любим обсуждать архитектуру и масштабирование, а еще умеем работать динамично и с кайфом.
🔥 Если тебе близко —откликайся!
🚀 Production Go API Template — готовый шаблон для продакшн-бэкенда на Go
Репозиторий trakora/production-go-api-template — это минималистичный и структурированный старт для разработки API‑сервисов на Go, с учётом лучших практик.
📦 Что внутри:
• Чистая архитектура и модульная структура
• Поддержка PostgreSQL, Redis, миграций и хранилищ
• Встроенная обработка ошибок, логгирование, тесты
• JWT-аутентификация, конфигурация через .env
• Готовность к деплою в Docker и CI/CD
💡 Подходит для:
• Быстрого запуска продакшн‑сервисов
• MVP, стартапов, микросервисов
• Разработчиков, которые хотят "не изобретать велосипед"
🔗 GitHub: https://github.com/trakora/production-go-api-template
#golang #backend #api #webdev #goproject #архитектура
Репозиторий trakora/production-go-api-template — это минималистичный и структурированный старт для разработки API‑сервисов на Go, с учётом лучших практик.
📦 Что внутри:
• Чистая архитектура и модульная структура
• Поддержка PostgreSQL, Redis, миграций и хранилищ
• Встроенная обработка ошибок, логгирование, тесты
• JWT-аутентификация, конфигурация через .env
• Готовность к деплою в Docker и CI/CD
💡 Подходит для:
• Быстрого запуска продакшн‑сервисов
• MVP, стартапов, микросервисов
• Разработчиков, которые хотят "не изобретать велосипед"
🔗 GitHub: https://github.com/trakora/production-go-api-template
#golang #backend #api #webdev #goproject #архитектура
Офер в VK для бэкенд-разработчиков — попадите в команду за выходные
28–29 июня пройдёт VK Weekend Offer. Всего за 2 дня вы сможете пройти весь путь от знакомства с командами до приглашения на работу: встретиться с лидами, пройти технические собеседования и получить офер.
Языки программирования — Java, Go, Python, C++. Главное требование — от 3 лет реального опыта в бэкенде.
Читайте подробности на сайте и подавайте заявку до 25 июня!
28–29 июня пройдёт VK Weekend Offer. Всего за 2 дня вы сможете пройти весь путь от знакомства с командами до приглашения на работу: встретиться с лидами, пройти технические собеседования и получить офер.
Языки программирования — Java, Go, Python, C++. Главное требование — от 3 лет реального опыта в бэкенде.
Читайте подробности на сайте и подавайте заявку до 25 июня!
💡 В процессе анализа работы контейнеров, может быть полезно сравнение повышенной нагрузки с количеством логируемых сообщений, при этом, если приложение не является ресурсоемким, количество логов покажет возросшую нагрузку. Это также ускорьте анализ журнала, отображая, в какой момент времени было получено наибольшее количество сообщений из стандартного потока (stdout) и потока ошибок (stderr).
👉 Для проекта будет полезно получить обратную связь по актуальности и настройке текущего Dashboard для Grafana (изменения можно внести самостоятельно через Pull Request). Вы также можете предложить, какие еще кастомные метрики можно было бы реализовать.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - Lifailon/logporter: Prometheus exporter for getting base metrics and number of logged messages in containers.
Prometheus exporter for getting base metrics and number of logged messages in containers. - Lifailon/logporter
🛡️ Инструмент для анализа Kerberos
KerbTool — это утилита для взаимодействия с Kerberos-протоколом, разработанная для тестирования безопасности и проведения атак на аутентификацию в Active Directory. Написана на Go.
🧰 Возможности:
• AS-REQ с любым именем пользователя (без предварительной аутентификации)
• Получение TGT и TGS
• Поддержка дешифровки и анализа билетов
• Brute-force и словарные атаки на учетные записи
• Поддержка режимов "kerberoasting" и "asreproasting"
• Работает в Linux, Windows и MacOS
🎯 Для чего используется:
• Red team-проверки
• Аудит конфигурации Kerberos
• Тестирование уязвимостей в аутентификации
• Извлечение хэшей из TGS/AS-REP без входа в систему
💡 Альтернатива таким инструментам как Impacket и Rubeus, но в удобной кроссплатформенной обёртке на Go.
https://github.com/jfjallid/kerbtool
KerbTool — это утилита для взаимодействия с Kerberos-протоколом, разработанная для тестирования безопасности и проведения атак на аутентификацию в Active Directory. Написана на Go.
🧰 Возможности:
• AS-REQ с любым именем пользователя (без предварительной аутентификации)
• Получение TGT и TGS
• Поддержка дешифровки и анализа билетов
• Brute-force и словарные атаки на учетные записи
• Поддержка режимов "kerberoasting" и "asreproasting"
• Работает в Linux, Windows и MacOS
🎯 Для чего используется:
• Red team-проверки
• Аудит конфигурации Kerberos
• Тестирование уязвимостей в аутентификации
• Извлечение хэшей из TGS/AS-REP без входа в систему
💡 Альтернатива таким инструментам как Impacket и Rubeus, но в удобной кроссплатформенной обёртке на Go.
https://github.com/jfjallid/kerbtool
Forwarded from Golang
🌀 Go 1.25 приносит мощный апгрейд JSON-библиотеки:
Что изменилось:
● Прямая работа с
Новые функции
● Потоковая обработка JSON
Появился модуль
● Гибкая настройка
Теперь функции
-
-
-
-
-
Пример:
● Новое поведение по умолчанию
Теперь:
JSON-парсинг чувствителен к регистру
Дублирующиеся ключи запрещены
Неизвестные поля игнорируются, если не указано иное
Можно включить прежнее поведение опциями (например, MatchCaseInsensitiveNames)
● Ускорение десериализации
Внутренний движок полностью переписан — ускорение десериализации в 2.7–10.2 раз. При использовании потоковых API (UnmarshalJSONFrom) — прирост до 40×.
● Экспериментальный статус
API ещё может меняться. По умолчанию encoding/json использует новый движок, но json/v2 доступен отдельно и требует флага:
Это — один из самых масштабных апдейтов стандартной библиотеки Go за последние годы. Подходит для тех, кто работает с тяжёлыми JSON-структурами, большими потоками или требует строгого контроля сериализации.
📌 Полный разбор и примеры
@golang_google
#golang #go #JSON
encoding/json/v2
— переработанная с нуля система сериализации с гибкой настройкой, высокой скоростью и новым APIЧто изменилось:
● Прямая работа с
io.Writer
и io.Reader
Новые функции
MarshalWrite
и UnmarshalRead
позволяют писать и читать JSON напрямую, без создания Encoder/Decoder. Это упрощает потоковую работу и уменьшает аллокации.● Потоковая обработка JSON
Появился модуль
jsontext
с функциями MarshalEncode
и UnmarshalDecode
, которые читают и пишут JSON по одному объекту за раз. Это критично для систем, обрабатывающих большие JSON-потоки, например, в Kubernetes.● Гибкая настройка
Теперь функции
Marshal
и Unmarshal
принимают опции, напрямую влияющие на формат вывода и поведение парсера:-
OmitZeroStructFields(true)
— пропускать нулевые поля -
StringifyNumbers(true)
— числа как строки -
MatchCaseInsensitiveNames(true)
— имена полей без учёта регистра -
FormatNilMapAsNull(true)
— nil`-карты как `null
-
WithIndent(" ")
— отступы в JSONПример:
json.Marshal(
user,
json.OmitZeroStructFields(true),
json.StringifyNumbers(true),
jsontext.WithIndent(" "),
)
● Новое поведение по умолчанию
Теперь:
JSON-парсинг чувствителен к регистру
Дублирующиеся ключи запрещены
Неизвестные поля игнорируются, если не указано иное
Можно включить прежнее поведение опциями (например, MatchCaseInsensitiveNames)
● Ускорение десериализации
Внутренний движок полностью переписан — ускорение десериализации в 2.7–10.2 раз. При использовании потоковых API (UnmarshalJSONFrom) — прирост до 40×.
● Экспериментальный статус
API ещё может меняться. По умолчанию encoding/json использует новый движок, но json/v2 доступен отдельно и требует флага:
GOEXPERIMENT=jsonv2
Это — один из самых масштабных апдейтов стандартной библиотеки Go за последние годы. Подходит для тех, кто работает с тяжёлыми JSON-структурами, большими потоками или требует строгого контроля сериализации.
📌 Полный разбор и примеры
@golang_google
#golang #go #JSON
Тимлид, вам слово📣 Приглашаем на митап по управлению командами
Воспользуйтесь летним затишьем, чтобы посмотреть на практику коллег, промониторить «погоду» в своей команде и, возможно, обновить стратегию работы. Обсудим дела тимлидские на офлайн-встрече TeamLead Talks в офисе Lamoda.
🤝 Обменяемся опытом, разберем кейсы командного управления и выберем лучшие решения.
🍕 Наладить непринужденное общение помогут нетворкинг-разогрев, игра «IT-бункер», закуски и напитки.
Присоединяйтесь к Team Lead Talks:
📅 2 июля в 19:00.
📍 Офлайн, Москва, офис Lamoda.
🔗Регистрируйтесь по ссылке, количество мест ограничено.
#реклама
О рекламодателе
Воспользуйтесь летним затишьем, чтобы посмотреть на практику коллег, промониторить «погоду» в своей команде и, возможно, обновить стратегию работы. Обсудим дела тимлидские на офлайн-встрече TeamLead Talks в офисе Lamoda.
🤝 Обменяемся опытом, разберем кейсы командного управления и выберем лучшие решения.
🍕 Наладить непринужденное общение помогут нетворкинг-разогрев, игра «IT-бункер», закуски и напитки.
Присоединяйтесь к Team Lead Talks:
📅 2 июля в 19:00.
📍 Офлайн, Москва, офис Lamoda.
🔗Регистрируйтесь по ссылке, количество мест ограничено.
#реклама
О рекламодателе
package main
func oneStep(yield func() bool) {
yield()
}
func f() {
for range oneStep {
print("f ")
recover()
}
}
func g() {
for range 1 {
print("g ")
recover()
}
}
func checkPanic(loop func(), c chan<- struct{}) {
defer func() {
println(recover() != nil)
c <- struct{}{}
}()
defer loop()
panic(123)
}
func main() {
c := make(chan struct{}, 1)
go checkPanic(f, c)
<-c
go checkPanic(g, c)
<-c
}
🔗 Ответ
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM