37.2K subscribers
1.52K photos
37 videos
5 files
1.67K links
加入频道
🗃️ Stoolap — лёгкая и быстрая SQL-база данных на чистом Go без зависимостей

Stoolap — это современный HTAP-движок (Hybrid Transactional/Analytical Processing), сочетающий OLTP и OLAP в одном ядре. Подходит как для транзакционных задач, так и для аналитики.

🚀 Возможности:
• Полностью написан на Go — никаких внешних зависимостей
• ACID-транзакции через MVCC
• Колонковое хранение с SIMD-ускорением
• Поддержка SQL: JOIN, агрегаты, оконные функции
• Встроенный тип JSON
• Поддержка database/sql и интеграция с GORM
• CLI-режим и in-memory база

📦 Установка:

go get github.com/stoolap/stoolap


🔥 Быстрый старт (CLI):

stoolap -db memory://


📎 Репозиторий: https://github.com/stoolap/stoolap
🌐 Сайт: https://stoolap.io


@golang_google
🏗️ Как строить масштабируемые multi-tenant приложения на Go — опыт Atlas Cloud

В этой статье команда Atlas делится практическими стратегиями масштабирования multi-tenant приложений на Go, основанными на опыте разработки бэкенда для Atlas Cloud — части их коммерческого продукта.

🔍 Что такое multi-tenancy?

Multi-tenancy — это архитектура, при которой один инстанс системы обслуживает сразу нескольких клиентов (арендаторов).

📦 Но тут важен нюанс: клиенты ожидают, что сервис будет работать так, как будто он только для них — без потерь в скорости, надёжности и безопасности.

Именно поэтому вы *молча* обещаете каждому клиенту две вещи:

1. Изоляция данных — никакой арендатор не должен иметь доступ к чужим данным
2. Стабильная производительность — нагрузка одного арендатора не должна замедлять других

🛡️ Стратегия №1 — Физическая изоляция (Dedicated Instances)

Самый прямой способ выполнить эти обещания — запуск отдельного инстанса приложения на каждого арендатора.

Что это даёт:

Данные арендаторов хранятся в отдельных БД (или даже в разных VPC/облаках)
Полная изоляция ресурсов — никто не шумит и не мешает
Безопасность на уровне инфраструктуры

💸 Но у такого подхода есть и минусы:

Сложность в управлении: сотни и тысячи развёрнутых инстансов, каждая со своей БД и конфигурацией
Стоимость: каждый инстанс потребляет ресурсы, и это дорого
Проблемы масштабирования: каждый новый клиент = новый деплой
Сложности с наблюдаемостью: логи, метрики и дебаг — теперь распределены по куче окружений

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

🔗 Продолжение читай тут:
https://atlasgo.io/blog/2025/05/26/gophercon-scalable-multi-tenant-apps-in-go

@golang_google
📦 godump — удобный Go-инструмент для дампа объектов в читаемом виде

godump — это мощная альтернатива fmt.Printf("%#v") и spew.Dump для Go-разработчиков.

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

🛠️ Что умеет godump:
• Красиво форматирует вложенные структуры и срезы
• Поддерживает карты, интерфейсы, указатели, циклы
• Вывод в цвете (ANSI) и с отступами
• Умеет обходить циклические ссылки
• Простой API: godump.Dump(anyObject)

💡 Отлично подходит для:
- Отладки и логирования сложных структур
- Инспекции JSON-данных после анмаршалинга
- Быстрой визуальной проверки содержимого без IDE

🔍 Пример использования:

import "github.com/goforj/godump"

type User struct {
Name string
Tags []string
}

func main() {
user := User{"Alice", []string{"dev", "golang"}}
godump.Dump(user)
}


🚀 Установка:

go get github.com/goforj/godump


🔗 https://github.com/goforj/godump

Если fmt.Println уже не справляется — попробуй godump. Красиво. Быстро. Глубоко.

@golang_google
👣 Tyk Gateway

Это современный, сверхпроизводительный, специально разработанный API-шлюз с открытым исходным кодом.

Tyk Operator предоставляет возможности полного жизненного цикла управления API в Kubernetes. Вы можете настраивать Ingress, API, политики безопасности, аутентификацию, авторизацию, посредничество, используя лучшие практики GitOps с помощью пользовательских ресурсов и примитивов, присущих Kubernetes.

📌 Github

#golang #devops #девопс

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Давно хотели освоить программирование, но вас останавливала нехватка времени или строгие дедлайны? Тогда советуем обратить внимание на бесплатные курсы Яндекс Лицея по Python, Go и C++ для начинающих.

Заниматься на них можно когда и где угодно, ведь уроки доступны онлайн и в них нет дедлайнов! Вас ждут:
Качество: занятия разработаны практикующими экспертами Яндекса.
Свобода: пользуйтесь автоматической проверкой решений и задавайте вопросы через поддержку.
Перспективы: после завершения вы получите уверенную базу для дальнейшего роста, а также сертификат, который пригодится при поступлении в Яндекс Лицей.

Не откладывайте на потом — выберите курс и зарегистрируйтесь на сайте!
🏠 MCP для умного дома

Тысячи бессонных ночей сотен ресёрчеров и ML-инженеров дали миру сначала большие языковые модели, а потом MCP-протокол - открытый стандарт, который связал эти модели и дал возможность подключаться к приложениям, системам и API.

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

Как это используют люди? Пилят действительно важные и нужные интеграции.

Проект поддерживает Ollama, подключение к экосистеме управления умным домом HomeAssistant MCP и написан на Go.


🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Uzi — параллельный запуск AI-кодинг-агентов из терминала

Проект, который превращает терминал в многопоточную машину для работы с LLM-агентами: Claude, GPT, Aider, Codex и другими.

🧠 Что делает Uzi:
• Запускает несколько агентов параллельно
• Каждому агенту — свой git worktree, tmux и порт
• Можно задавать общую задачу, а агенты предложат решения независимо
• Позволяет наблюдать за прогрессом, подтверждать или отклонять шаги
• Упрощает слияние финальных изменений — без ручной рутины

🛠 Пример:

uzi prompt --agents claude:2,gpt4:1 "Добавь в проект GraphQL API и авторизацию"


Затем:
- uzi auto — агентам можно доверить автоматические действия
- uzi broadcast "Обнови документацию" — отправить команду всем
- uzi checkpoint — сохранить и закоммитить результат

🧪 Идеально подходит для:
— Быстрой генерации MVP
— Прототипирования фичей сразу в нескольких вариантах
— Параллельной работы с кодовыми ассистентами
— Демонстраций, где хочется "показать мощь LLM сразу в действии"

📦 Установка:

go install github.com/devflowinc/uzi@latest


📌 Репозиторий

#AI #DevTools #CLI #LLM #CodeGeneration #OpenSource

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Представлен язык программирования Gauntlet, расширяющий возможности Go

Доступен первый альфа-выпуск языка программирования Gauntlet, надстройки над языком Go, решающей некоторые архитектурные проблемы и добавляющей дополнительную функциональность.
Программы на языке Gauntlet поддерживают все возможности языка Go, транслируются в представление на языке Go и интегрируются с существующей экосистемой Go без необходимости задействования обвязок (binding).

Развиваемый проектом инструментарий написан на языке F# и распространяется пол лицензией GPLv3. Для работы с кодом предоставляется дополнение к редактору VSCode.

Решаемые в Gauntlet проблемы:

• Назойливый вывод ошибок, связанных с неиспользуемыми переменными (Gauntlet добавляет для всех неиспользуемых переменных заглушки вида "_ = a").
• Раздутый код для обработки ошибок. В Gauntlet вместо условных блоков вида "if err != nil" используются однострочные выражения "try-with".
• Назойливый способ импорта и экспорта (например, в Go необходимо, чтобы экспортируемые имена начинались на заглавную букву).
• Отсутствие тенарного оператора. В Gauntlet можно использовать выражения вида 'let properWord = @String len(lines) > 1 ? "lines" : "line"'.
•Отсутствие синтаксиса switch-case.
• Усложнённые циклы "for". В Gauntlet можно писать "for let _, c in "Hello" {" вместо "for _, c := range "Hello" {".
• Необычный оператор присваивания (":=" для одновременного объявления и инициализации переменных; "=" для изменения значения уже объявленных переменных).
• Невозможность вызова функций по цепочке (в Gauntlet поддерживается вызов вида 'let trimmedLines = fileContentStrVersion => strings.trimSpace(_) => strings.split(_, "\n")'.

Расширенные возможности Gauntlet:

• Синтаксис "when-is" похожий на switch.case, но манипулирующий выражениями.
• Поддержка pipe-каналов, позволяющих по цепочке пропускать значение через несколько выражений или функций. например "10 => add(_, 10) => add(_, 30) => divide(_, 2)".
• Выражения "try .. with" и "force .. with".
• Выражение "wrapper" для создания псевдонимов типов (например. "wrapper Int Dollars").


✔️ Github
✔️ Gauntlet
✔️ Новость

#Gauntlet #golang

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Можно ли за 4 года стать хорошим фулстек-разработчиком с дипломом престижного вуза,
готовым портфолио и сильной теоретической базой?
💻

В совместном онлайн-бакалавриате НИУ ВШЭ и Нетологии «Программные системы и автоматизация процессов разработки»
готовят как раз таких специалистов.🔥

На первых курсах вы изучите базовые математические и гуманитарные предметы,
основы программирования и профильные дисциплины по фулстек-разработке.
А с третьего курса выберете углублённый трек: руководитель командой разработки или DevOps-инженер.
По итогу обучения освоите 4 языка программирования: Java, Python, JavaScript, Go.

Вас ждёт:
📎 сильное студенческое комьюнити,
📎 постоянная практика,
📎 хакатоны и стажировки.

🙂А ещё — все бонусы очной формы обучения: отсрочка от армии, льготы на проезд,
доступ к библиотеке, привилегии при посещении театров, льготный кредит на
образование.

Получите диплом, который поможет строить карьеру в сильных IT-командах.
Подробнее ➡️ https://netolo.gy/ebKa

Реклама. ООО "Нетология". ИНН 7726464125 Erid: 2VSb5z1PXD2
Please open Telegram to view this post
VIEW IN TELEGRAM
📡 apimocker — простой мокер REST API без бэкенда

apimocker — это легкий TUI-инструмент на Go, который поднимает фейковый API из YAML/JSON за секунды. Идеален для фронтенда, тестов и прототипов.

🛠 Что умеет:
• Динамичные JSON-ответы с шаблонами ("id": "uuid", "email": "email")
• Задержки, ошибки с вероятностью
• Отдача файлов (изображений и др.)
• Логирование (plain/json)
• TUI-интерфейс с активными маршрутами

💡 Подходит для:
• Быстрого мокинга
• Демонстраций и тестов
• Изоляции от реального API

🚀 Установка:

yay -S apimocker # Arch
# или:
git clone https://github.com/Hanashiko/apimocker.git
cd apimocker && go build -o apimocker main.go
sudo mv apimocker /usr/bin/

🔗 https://github.com/Hanashiko/apimocker

Нужен API-сервер без сервера? Используй apimocker.

@golang_google
📞 Diago — библиотека для создания VoIP-приложений на Go

Diago (сокращение от Dialog + Go) — это open-source библиотека для разработки VoIP-решений на языке Go.

VoIP (Voice over IP) — это технология, которая позволяет передавать голосовые вызовы через интернет или любую другую IP-сеть, вместо использования традиционной телефонной связи.

Она построена поверх оптимизированной библиотеки SIPgo и предназначена для быстрого и удобного создания тестируемых VoIP-приложений.

🔧 Основные возможности:

- SIP-сессии: Поддержка клиентских и серверных SIP-сессий, включая регистрацию и аутентификацию.
- Обработка медиа: Воспроизведение и запись аудио, поддержка DTMF, управление RTP/RTCP.
- Поддержка кодеков: Включая Opus, что делает библиотеку совместимой с современными стандартами аудио.
- Примеры использования: В репозитории представлены примеры, такие как эхо-тест и регистрация SIP-агента.

🚀 Быстрый старт:

Пример:


ua, _ := sipgo.NewUA()
dg := diago.NewDiago(ua)

dg.Serve(ctx, func(inDialog *diago.DialogServerSession) {
inDialog.Trying()
inDialog.Answer()

playfile, err := os.Open("demo-echotest.wav")
if err != nil {
fmt.Println("Failed to open file", err)
return
}
defer playfile.Close()

pb, _ := inDialog.PlaybackCreate()
if err := pb.Play(playfile, "audio/wav"); err != nil {
fmt.Println("Playing failed", err)
}
})


🧪 Дополнительные инструменты:
Gophone: CLI SIP-телефон, построенный на Diago, для тестирования и отладки VoIP-сервисов.

📚 Подробнее:
Репозиторий: github.com/emiago/diago
Redis и Valkey изучите секреты самых популярных open source key-value СУБД

В высоко-нагруженных сервисах Redis — не просто кэш, а важная подсистема, на которой строится значимая часть бизнес-логики. От его стабильности, масштабируемости и отказоустойчивости зависит производительность всего сервиса. Valkey - это современный производительный форк Redis с открытым исходным кодом, поддерживаемый сообществом и рядом крупных компаний. Valkey набирает популярность, поддержан крупными облачными провайдерами, и вполне возможно потеснит или вовсе заменит Redis со временем. Наш курс — для тех, кто хочет держать свой стэк и знания актуальными и глубоко разбираться, как устроен Redis и Valkey.

🌐 В программе курса:

🤩 Как эффективно использовать базовые и продвинутые структуры данных: HyperLogLog, Bitmaps и Bisields, Streams, Geospatial-индексы, Bloom Filters
🤩 Как проектировать in-memory системы, которые не разваливаются под нагрузкой, что влияет на отказоустойчивость и как её добиться
🤩 Как работает репликация и кластеризация на практике (режимы Sentinel и Cluster)
🤩 Как встроить Redis/Valkey в реальный прод с учётом безопасности, интеграций и современных практик мониторинга.

🥸 Кто мы: R&D-центр Devhands. Автор курса — Константин Ратвин — преподаватель МФТИ на кафедре БИТ (совместно со СберТех), эксперт по распределённым системам и банковским ИТ, автор курсов по СУБД и инфраструктуре, спикер HighLoad++ и PGConf.

🗓 Старт курса: 9 июня, 6 недель обучения.
Изучить программу и записаться можно здесь.

Ждем вас!

Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqxNnFKA
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Monstera — фреймворк для Go, который избавит тебя от забот о масштабировании

Пишешь приложение на Go, где нужно хранить состояние (state)?
Обычно это боль: базы, кеши, отказоустойчивость, репликация...

Monstera всё упрощает:

Пиши обычный Go-код со всеми данными в памяти или на диске
Не думай про кластеры, скейлинг, доступность — всё уже встроено
Подходит для real-time приложений, распределённых систем и сервисов с постоянным состоянием

💡 Просто подключаешь Monstera — и сразу получаешь стабильную, масштабируемую систему.

go get -u github.com/evrblk/monstera@latest

🔗 Попробовать

#golang
🎆 Релиз Go 1.24.4 и 1.23.10!

🔐 Безопасность:
Обновления включают исправления для критических уязвимостей:
• CVE-2025-4673 (в `net/http`)
• CVE-2025-0913 (в `os`)
• CVE-2025-22874 (в `crypto/x509`)

📢 Анонс: https://groups.google.com/g/golang-announce/c/ufZ8WpEsA3A/m/XDxq7uidAgAJ

📦 Скачать: https://go.dev/dl/#go1.24.4

#golang #security #update

@Golang_google