Проведите стресс-тестирование своей базе данных с помощью заранее заданных запросов.
Библиотека поможет найти медленные и неэффективные запросы, которые мешают работе.
go install github.com/adaptive-scale/[email protected]
▪Github@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤5🔥5
Он поддерживает различные функции, такие как автоматическая обработка запросов, ограничение скорости запросов и другие, что делает его идеальным как для простых, так и для сложных HTTP-запросов.
go get -u github.com/davesavic/clink
▪Github▪Примеры
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31❤2🔥2🤔2👎1🥰1😁1
Бенчмарк семи популярных драйверов Go SQLite.
▪ Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3❤2
Пакетом dot решается проблема добавления данных во вложенных структурах, ассоциативных массивах, срезах и каналах любой сложности и различных типов данных. Если точный путь к требуемому полю известен, но на этом пути имеется карта, нужно сначала корректно ее инициализировать, проверить наличие такого ключа, а затем вставить значение.
Для простой структуры этот пакет не нужен, а вот для иерархии посложнее проект dot Golang с открытым исходным кодом придется кстати.
Расставьте точки над «i», контролируйте данные
Приведу простой пример проблемы, с которой столкнулся, хотя иерархия структур у меня посложнее и пути к полям в будущем могут поменяться:
type Second struct {
Items []string
}
type First struct {
Store map[string]Second
}
📌 Продолжение
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14👎3❤2🔥2😁1
Инструмент CLI, выполняющий SQL-запросы к различным файлам, включая файлы xlsx, и выводящий результаты в различные файлы.
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5❤2
🥳 Выпущены версии Go 1.21.6 и 1.20.13!
📢 Анонс: https://groups.google.com/g/golang-announce/c/F12eMaUITDs
⬇️ Скачать: https://go.dev/dl/#go1.21.6
#golang
@Golang_google
📢 Анонс: https://groups.google.com/g/golang-announce/c/F12eMaUITDs
⬇️ Скачать: https://go.dev/dl/#go1.21.6
#golang
@Golang_google
👍33🔥3❤1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
OSINT инструмент, написанный на Go, который не поддерживает сбор и анализ информации по опреленном никнейму в сети.
Благодаря данному методу сбора можно построить цепочку всех упоминаний в интернете, в соц сетях, на сайтах и формумах.
go install github.com/theyahya/enola/cmd/enola@latest
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16👎7❤3🔥3😁3🤬1
В статье описан довольно элегантный паттерн обработки ошибок, при написании
REST,gRPC
и других сервисов на Go. 📌Читать
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍6🤔2👎1🔥1🤬1
Начальный набор для создания веб-сервисов на Go с использованием возможностей Kubernetes.
Проект регулярно обновляется и использует минимальные зависимости, реализует чистый код и следует лучшим практикам программирования на Go.
▪Github
▪Docs
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥2❤1
Go - отличный язык для создания высокопроизводительных веб-приложений, а высокопроизводительные веб-приложения часто требуют централизованного кэширования.
Стандартом де-факто для централизованного кэширования является Redis, но, популярные сегодня библиотеки Go не поддерживают потоковую передачу данных, эффективных с точки зрения памяти.
Вместо этого они предлагают
[]byte API,
с которыми вы взаимодействуете следующим образом:// В этом коде используется https://github.com/redis/go-redis, но те же
// ограничения действуют для Rueidis и Redigo.
func redisHandler(w http.ResponseWriter, r *http.Request) {
ctx := context.Background()
// Extract key from RequestURI
key := strings.TrimLeft(r.RequestURI, "/")
// Get the value from Redis as a byte slice
val, err := rdb.Get(ctx, key).Bytes()
if err == redis.Nil {
http.Error(w, "Key not found in Redis", http.StatusNotFound)
return
} else if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
_, err = w.Write(val)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
Этот паттерн работает хорошо, если вы кэшируете небольшие объекты, но если вы кэшируете объекты размером более 1 кб, []byte-ориентированные API работют не так хорошо.
В протоколе Redis нет ничего такого, что мешало бы создать потоковый API. Поэтому пердставляем redjet, библиотеку Redis, ориентированную на производительность.
С помощью redjet вы можете написать приведенный выше код следующим образом:
func redisHandler(w http.ResponseWriter, r *http.Request) {
ctx := context.Background()
// Извлечение ключа из RequestURI
key := strings.TrimLeft(r.RequestURI, "/")
// Передаем значение непосредственно из Redis в ответ.
_, err := rdb.Command("GET", key).WriteTo(w)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
Код стал проще и эффективнее.
go get github.com/coder/redjet@latest
▪Github
▪Читать дальше
▪Бенчмарки
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35❤7🔥5👎1🤔1
Быстрая и простая в использовании CDN, на основе Go.
CDN (Content Delivery Network) — это географически распределённая сетевая инфраструктура, обеспечивающая быструю доставку контента пользователям веб-сервисов и сайтов. Входящие в состав CDN cерверы географически располагаются таким образом, чтобы сделать время ответа для пользователей сайта/сервиса минимальным.
В проекте использованы базы данных SQLite с GORM и веб-фреймворком Gin. UI построен с помощью Vite + React и wouter.
▪ Github
▪Docs
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4🔥3
go install -v github.com/alpkeskin/mosint/v3/cmd/mosint@latest
▪GitHub@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2🔥1
Учебные материалы по Apache Kafka. Этот репозиторий создан как централизованный ресурс для всех, кто хочет изучить или углубить свои знания об Apache Kafka, независимо от уровня их опыта.
▪ Github
▪ Kafka-go
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤8🔥2
Открытый фреймворк для сборки сверхпроизводительных API-шлюзов с мидлваром; ранее известный как фреймворк KrakenD, и основной сервис API-шлюза KrakenD.
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍8🔥2🤯1
Zed - это новая модель данных, которая объединяет JSON и реляционные модели, чтобы сделать работу с данными эффективной и простой.
Позволят выполнять молниеносные поисковые и аналитические запросы из командной строки по локальным данным Zed.
▪Github
▪Docs
@Golang_google
Позволят выполнять молниеносные поисковые и аналитические запросы из командной строки по локальным данным Zed.
▪Github
▪Docs
@Golang_google
❤11👍3🥰2🔥1😁1😱1
Please open Telegram to view this post
VIEW IN TELEGRAM
go.dev
Go Wiki: Rangefunc Experiment - The Go Programming Language
❤12🤔8👎4👍1🔥1
#golang
https://blog.carlana.net/post/2024/golang-reflect-type-for/
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍5🔥1🤔1
https://arshsharma.com/posts/2023-10-14-argocd-github-actions-getting-started/
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥1
Фреймворк представляет собой менеджер и интерпретатор скриптов, который предоставляет функционал и библиотеки для создания мощных инструментов, интегрированных с сервисами, используемыми во время тестов, сканирования уязвимостей и поиска эксплойтов.
Пользователь может создавать собственные модули или использовать скрипты, созданные сообществом.
make install-go-apt
▪Github
▪Docs
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍5🔥2🤩2
Инструмент, который авоматизирует и упрощает развертывание и управление кластерами PostgreSQL на Kubernetes.
▪Github
▪Docs
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥4👍1