pgxWrappy — потому что жизнь слишком коротка для ручного сканирования в Go! �

от автора

🚀 Запарило ручное сканирование в pgx? Встречайте pgxWrappy — супер-удобную обертку для PostgreSQL в Golang! 🐘💨

🔥 Больше никакого boilerplate-кода!

// 🚫 БЫЛО (кошмар на 10 строк): rows, _ := conn.Query(ctx, "SELECT id, name FROM users") defer rows.Close() var users []User for rows.Next() {     var u User     rows.Scan(&u.ID, &u.Name)     users = append(users, u) }  // ✅ СТАЛО (магия в 1 строку!): var users []User db.Select(ctx, &users, "SELECT id, name FROM users") // ✨ Волшебство! 

✨ Главные фишки pgxWrappy

📌 Автомагическое сканирование во что угодно!

  • Структуры 🏗

  • Вложенные структуры 🏗➡🏗

  • Слайсы 🍕

  • Указатели 👉

  • Кастомные типы 🎨

� Пример с вложенностью:

type Profile struct {     Bio  string `db:"bio"`     Pic  string `db:"avatar_url"` }  type User struct {     ID      int     `db:"id"`     Name    string  `db:"name"`     Profile Profile `db:"profile"` // 💫 Автораскрытие вложенности! }  // Запрос просто должен содержать profile_bio и profile_avatar_url db.Get(ctx, &user, "SELECT ..., bio AS profile_bio, avatar_url AS profile_avatar_url ...") 

🚦 Три причины выбрать pgxWrappy:

  1. ⏱ Экономия 30% времени на рутинном коде

  2. 📚 Сохраняем всю мощь pgx под капотом

  3. 🎯 Простота миграции — подходит к существующим проектам

⚡ Быстрый старт

go get -u github.com/Arlandaren/pgxWrappy # ⬇️ Одна команда - и готово! 
// 🛠 Настройка за 5 секунд: db := pgxwrappy.NewWrapper(pool) // 🎯 Вот и всё!  // 💾 Пример CRUD: db.Get(ctx, &user, "SELECT * FROM users WHERE id=$1", 42)       // READ db.Exec(ctx, "UPDATE users SET name=$1 WHERE id=$2", "Bob", 42) // UPDATE 

🏆 Сравнение с аналогами

pgxWrappy

Чистый pgx

GORM

sqlx

Удобство

😍

😐

😊

😊

Производительность

🚀🚀🚀

🚀🚀🚀🚀

🚀

🚀🚀

Вложенные структуры

PostgreSQL фичи

✅✅

✅✅✅

✅✅

💡 Идеальный баланс между производительностью и удобством!

🎁 Бонусы:

  • 🧵 Потокобезопасность из коробки

  • 🔄 Поддержка context.Context

  • 📛 Ясные ошибки с stack trace

  • 🧩 Простое расширение функционала

💌

💖 Нравится идея? Поставьте звезду на GitHub:
https://github.com/Arlandaren/pgxWrappy

🛠 Хотите помочь? Присылайте PR и идеи!
🐞 Нашли баг? Открывайте issue!

pgxWrappy — потому что жизнь слишком коротка для ручного сканирования! 😁


ссылка на оригинал статьи https://habr.com/ru/articles/931242/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *