Полезные библиотеки
- viper
Чтение и сохранение конфигурации в различных форматах. - Работа с командной строкой: создание флагов командной строки в POSIX формате, автоматическая генерация “как использовать”
. - Kingpin
- ещё одна реализация работы с флагами. Godoc . - Flaggy
. Также работа с командной, возможность создания подкоманд. Godoc . - Go-Config
. Позволяет собирать конфигурацию из различных источников (файлы, командная строка и т.д.). Godoc . Описание в блоге . - Gonfig
- позволяет читать конфигурацию из json и переменных окружения. - Venom
. Также позволяет конфигурировать из различных источников. GoDoc . - Реализация формата HOCON
configuration . GoDoc . - Yaml
- работа с YAML от Canonical . API . Blog . - promptui
- позволяет запрашивать у пользователя информацию в процессе работает. Интегрируется, например с cobra и другими подобными библиотеками. GoDoc . - cli
- ещё одна библиотека для расширения флагов командной строки. GoDoc . - koanf
- позиционируется как более легковесный конкурент viper .
- Библиотека от Google Glog
. Документация . - Библиотека от juju Loggo
. Документация . - Библиотека от Uber Zap
. Документация . - Logrus
. Наверное наиболее популярный. Используется в Docker. API . - Вроде как самая маленькая библиотека go-logging
. API . - zerolog
- логирование в формате json. GoDoc . Также может логировать в нормальном виде. - go-spew
- красивый вывод в консоль данных для отладки. GoDoc . - httpretty
- удобное логирование в консоль http запросов как на сервере, так и на клиенте. GoDoc . - zlog
- логер позволяет скрывать чувствительную информацию из логирования. GoDoc . - Log
- простенький логер с подсветкой вывода от создателей Bubble Tea . GoDoc .
Отличная статья
- Пользовательский интерфейс в терминале (https://github.com/nsf/termbox-go)
. - Ещё одна реализация (https://github.com/gdamore/tcell)
. Почти полностью совместима с termbox-go . - gocui
. Godoc . - TermUI
. Документация . - Bubble Tea
- от создателей Glow . - Box CLI Maker
- позволяет создавать приветственные окна.
- Реализация node.js socket (https://github.com/googollee/go-socket.io)
. Полезно при использовании electron в качестве UI. - Библиотека для написания GUI на Electron (https://github.com/asticode/go-astilectron)
. - Walk.
Библиотека позволяет писать GUI под Windows. Является обёрткой над win32 API. - duit
. Развивающаяся библиотека. Кроссплатформенная. Вводная информация . - WebView
- вызов встроенного в GUI операционки просмотрщика HTML. Кросплатформенный. GoDoc . - QT(https://github.com/therecipe/qt)
- биндинг QT для Go. Wiki . - WUI(https://github.com/gonutz/wui)
- позволяет создавать простые GUI в Windows. GoDoc . - Systray
- позволяет выводить информацию в tray. - Gio
- пилит чувак из Google. Надо следить. Основной сайт gioui . - Gi
- ещё один framework, но зависит от cgo. - fyne
- кроссплатформенная библиотека. Под виндой собралась. GoDoc . Документация на сайте разработчика . - giu
- обёртка над Dear ImGui . Поддерживает lua. GoDoc . - govcl(https://github.com/ying32/govcl)
- биндинг над графической библиотекой lazurus. Мне кажется очень перспективная. README . - pix
- какая-то минималистическая библиотека. GoDoc .
- go-pretty
- упрощает вывод текста, таблиц, списков в консоль. Progressbar. GoDoc - gchalk
- позволяет выводить в консоль разноцветный текст. GoDoc . - PTerm
- ещё одна реализация цветного терминала. Очень прикольный. GitHub . - lipgloss
- ещё одна библиотека для создания интерфсов в терминале. - Анимация в командной строке Wow
. - progressbar
от автора croc. GoDoc . - color
- позволяет раскрашивать вывод в консоль. GoDoc . - ishell
- библиотека позволяет создавать интерактивные консольные приложения.
- sqlx
. Работа с данными как со структурами. - sqlboiler
. Ещё одна библиотека для генерации данных на основании схемы. Документация . - Драйвер для MS SQL (https://github.com/denisenkom/go-mssqldb)
. - Bolt (embeded key/value база данных) (https://github.com/boltdb/bolt)
(например, используется в InfluxDB ). - Список проектов, использующих bolt
. Среди них много интересных.
- Список проектов, использующих bolt
- Budger
. - Драйвер для sqllite (https://github.com/mattn/go-sqlite3)
- ql
- embedded SQL database. GoDoc . - Gorm
- ORM для Go. Github . GoDoc . Docs . - go-sqlbuilder
- постритель запросов к базе. GoDoc . - squirrel
- sql генератор. GoDoc . - go-memdb
- база в памяти, близка к Redis. поддерживает транзакции. - sqlite
- реализация sqlite на чистом Go. GoDoc .
- jsoniter
. - Проекты Tidwall
- fastjson
. Библиотека от создателя fasthttp . API . - gojsonq
A simple Go package to Query over JSON/YAML/XML/CSV Data. GoDoc . - easyjson
- серилизатор без reflection от mail.ru. - hujson
- HumanJson - позволяет парсить json с комментариями и запятыми после последнего элемента. GoDoc . - go-json
- очередной быстрый заменитель стандартной библиотеки. - sonic
- библиотека от создателей Tik-Tok. Используют ассемблер. GoDoc .
- Bdd test framework ginkgo
. GitHub . - gomega
- библиотека для сравнения, интегрируется с ginkgo.
- gomega
- goblin
- ещё один BDD. - Godoc
. Пакет для создание и запуска тестов на Cucumber в Go. - Testify
- библиотека по принципу *unit. Добавляет методы assert. - GoConvey
. Github . - RobotGo
- позволяет управлять GUI из Go.GoDoc . ApiDoc . - Rapid
- property-based тестирование. GoDoc . - go-cmp
- библиотека для сравнения значений двух структур. GoDoc . - quicktest
- набор удобных методов. - chromedr
- реализация Chrome driver API на Go. GoDoc . - gocheck
- конкурент testify .
- Fake
. Библиотека для генерации различных данных на русском и английском языках. GoDoc . - Faker
- ещё одна библиотека. GoDoc . - gofakeit
- тоже для генерации данных.
- templ
- написание html шаблонов на Go. Документация .
- fasthttp
- на сегодняшний момент самая быстрая реализация http сервера на Go. API - resty
- rest-client, позволяющий удобно делать запросы и разбирать ответы. Автоматически измеряет время ответа от сервера. GoDoc . - quic-go
- реализация протокола quic на Go.
- Gorilla web toolkit
. Небольшая вводная . - Revel
. Framework типа Grails для Go. - Компилятор Go в JS GopherJs
. - GoWebApp
- MVC web application на Go. Blue Jay - Blueprint - Более продвинутая реализация. - Framework macaron
. Документация . Github . - hutplate
- надстройка над http для облегчения авторизации, сессионностии прочее. - Bufallo
- ещё один web-framewrok. Документация . Github . - Beego
web-framework. Github . Godoc . - quicktemplate
- замена работы с шаблонами в Go. Похожа на работу с Jsp в Java. API . - gramework
- от создателя fasthttp . - chi
- простой легковесный роутер как Gorilla , только легче и идеоматичней. Godoc . - echo
- легковесный web-framework. - Gin
- вроде как шустрый web-framework. Офицальный сайт . GoDoc . - authboss
- библиотека для аутентификации, авторизации. GoDoc . - sessionup
- позволяет управлять сессиями. GoDoc - Secure
- прослойка позволяет настраивать некоторую безопасность для web-приложений. GoDoc . - nosurf
- помогает осущесвлять проверку безопасности для web-серверов. GoDoc . - go-kit
- набор для создания микросервисов. GitHub . - webrtc
- реализация WebRTC на GO. - goa
- библиотека позволяет быстро создавать api и микросервисы. Имеет свой DSL для описания. GitHub . - go-app
- ещё один интересный проект написания progressive web apps (PWA). С декларативным синтаксисом. GitHub . - ldpap
- реализация LDAP 3 на GO. - Zepto
- обещают легковесный framework в Go-стиле. - GopherJS
- компилятор из go в JS. GoDoc . - flogo
- framework для создания микро-сервисов. GitHub . - bud
- очередной мощный фреймворк для создания сайтов. Пока требует node.js. Будем наблюдать.
- Evio
- работа с сетью, основанная на событиях. - Noise
. Библиотека, позволяющая писать децентрализованные P2P приложения. Godoc . - limiter
- библиотека для разных ограничений в сети, типа количества запросов в секунду. - GoPacket
- библиотека для работы с сетевыми пакетами от Google. GoDoc .
- Dateparse
- библиотека для парсинга строк, представляющих из себя различные форматы дат. Документация . - GoAWK
- реализация парсера языка AWK на Go. Есть возможность использовать прямо внутри Go. GoDoc .
- Now
- библиотека расширяет некоторые методы для работы с датой. Документация . - cron
- реализация cron на GO. GoDoc . - when
- парсер времени с натурального языка.
Информация взята отсюда
Пакет | Пример | Описание формата |
---|---|---|
ksuid | 0pPKHjWprnVxGH7dEsAoXX2YQvU | 4 bytes of time (seconds) # 16 random bytes |
xid | b50vl5e54p1000fo3gh0 | 4 bytes of time (seconds) # 3 byte machine id # 2 byte process id # 3 bytes random |
betterguid | -Kmdih_fs4ZZccpx2Hl1 | 8 bytes of time (milliseconds) # 9 random bytes |
sonyflake | 20f8707d6000108 | ~6 bytes of time (10 ms) # 1 byte sequence # 2 bytes machine id |
ulid | 01BJMVNPBBZC3E36FJTGVF0C4S | 6 bytes of time (milliseconds) # 8 bytes random |
sid | 1JADkqpWxPx-4qaWY47~FqI | 8 bytes of time (ns) # 8 random bytes |
go.uuid | 5b52d72c-82b3-4f8e-beb5-437a974842c | UUIDv4 from RFC 4112 |
uuid | UUIDs based on RFC 4122 |
- Gobot
Библиотека позволяет программировать различные устройства. Репозиторий на Guthub. Документация . - Emgo
Позволяет писать микропрограммы для ARM Cortex-M based MCUs. Репозиторий на Github. Блог как это всё работает. - Periph
от команды google GitHub . GoDoc . - Tinygo
GitHub . - TamaGo
- bare metal Go for ARM SoCs . Позволяет писать на GO для голых чипов AMD. - ghw
- Golang HardWare discovery/inspection library. Позволяет получать информацию о конфигурации оборудовании, текущем состоянии.
- Go-Set
- набор разных типов коллекций и операций с ними. GoDoc . - Enumer
- генератор для enum. - concurrent-map
- конкурентная мапа.
- Ebiten
. Позволяет писать двухмерные игры. Godoc . Краткая справка . GitHub . - Prototype
. Простая библиотека для работы с канвой. GoDoc . - Библиотека для написания игр pixel
.
- Draw2d
- библиотека для вывода графики. Godoc . - Gg
- визуализация двухмерной графики. Godoc . - colorgrad
- позволяет делать градиенты, шкалы цветов и всё такое. GoDoc . - generativeart
- позволяет создавать абстрактные рисунки. - imaging
- изменение изображений - изменение масштаба, поворот и т.д.
- Go Fluent FFmpeg
- wrapper для ffmpeg. Позволяет работать с видеофайлами из программы на Go. GoDoc .
- Tachymeter
- подсчёт статистики с выводом в виде json, histogram и в консоль. GoDoc . - Gonum
- мощная библиотека для различной математики и статистики. Github . GoDoc . - decimal
- работа с числами с заданной точностью. GoDoc .
- Machinery
обработка сообщений. Работа с различными источниками. Godoc . - Bigslice
- аналог Spark на Go. GitHub . GoDoc . - watermill
- работа с сообщениями. Возможность интегрироваться с Kafka, RabbitMQ.
- Интерпретатор GO Yaegi
. Введение . GoDoc . Работает как библиотека, так и как приложение командной строки. Позволяет парсить и запускать код на Go.
- ristretto
- конкурентный кеш. Описание в блоге . Godoc . - olric
- распределённый in-memory кеш, ключ-значение. GoDoc .
- esc
- встраивает файлы в бинарник, при этом их сжимая. GoDoc . - Rice
- упаковка ресурсов в исполняемый файл. GoDoc . - packr
-создан на основе rice, но улучшен. GoDoc . - statik
- чем-то похож на esc. GoDoc . - broccoli
- встраивает и сжимает ресурсы в бинарник. GoDoc . - binclude
- тоже умеет сжимать. Обращение к ерсурсам практически также, как и к ресурсам системы. GoDoc .
- Goweight
- анализ размера используемых пакетов. - go-mod-outdated (go-mod-outdated)
- анализ устаревших пакетов в зависимостях. - Spaghetti
- анализ зависимостей в браузере. - Go binary size SVG treemap
- рисует SVG карту библиотек в бинарнике. Примерно как Goweight.
- ExpvarMon
- библиотека позволяет мониторить в консоли программу на Go. - fgprof
- мониторинг загрузки процессора. Достаточно простой и наглядный. GoDoc. - statviz
- рисует разные графики в runtime.
- gocv
- библиотека для работы с OpenCv из Go. GitHub . - Работа с открытой библиотека OpenCV
- wrapper для OpenCv на Go.
- excelize
- работа с excel файлами из Go. Документация . GoDoc .
- Runner для goroutines
. Позволяет легко управлять запущенными goroutines. - ants
. Позволяет создавать с пулом goroutings. GoDoc . - Управление gouroutines Run
. Godoc . - tunny
- создание пулов gorouting. Похоже как в джаве сделаны Executors. GoDoc . - goleak
- поиск утечек в рутинах. - Conc
- ещё одна реализация часто встречающихся операций с потоками. Пулы, параллельная работа с мапами и т.д.
- age
-библиотека для семмитричного и ассиметриченого шифрования. Может использоватся как отдельная утилита GoDoc .
- Колокол
- простая библиотека для работы с событиями. Статья от авторов на Хабре . - RxGo
- одна из самых популярных библиотек для работы на событиях.
- Распознавание естественных языков
. - Фильтрация строк из ридера как в Groovy и Unix
. Документация . - linq, как в C# в Go
. Документация . - Множество библиотек для web
. - Etree
. Библиотека для работы с XML. - Рисование графиков
- Список проектов для работы с железом
. - Reducemap на Go gleam
. Анализ данных. - Паук для web Colly
. Документация . - Работа с клавиатурой keyboard
. - Глобальных перехват Ctrl+C и прочих прерываний Goodbye
. Статья от автора . - Работа с изображениями govips
. - Клиент для elasticsearch
. Запись в блоге . - Gosec
. Библиотека для сканирования исходного кода на Go и выявление проблем с безопасностью. - Detective
- мониторинг распределённых систем. GoDoc . - Charlatan
позволяет автоматически создавать заглушки для программных интерфейсов. - Tablewriter
- вывод таблиц в текстовом форматре. - Chroma
- подсветка синтаксиса. Godoc . - Prototool
от Uber. Альтернативная работа с protobuf. Godoc . - BigMachine
- библиотека для развертывания кластера. Например, работает в связке с Bigslice . - g-locale
- определение установленной локали пользователя. GoDoc . - ASCIIGraph
- вывод графиков в консоли при помощи ASCII символов. GoDoc . - validator
- проверка значений в структурах. GoDoc . - go-humanize
- позволяет переводить числа в байты, удобное время и прочее. GoDoc . - error
- набор обёрток для обработки ошибок. - dagger
- реализация графов. - script
- работа из Go c командами консоли. Возможно написание shell скриптов. Описание .