Skip to content

Коллекция Open Source библиотек Go

Собраны и классифицированы некоторые open source сторонние библиотеки и фреймворки Go для удобства последующего просмотра. Также приветствуются pull request'ы с добавлением новых проектов.

TIP

Порядок расположения не означает рейтинг —好不好用要根据实际体验来看。

Web фреймворки

НазваниеОписаниеРепозиторий
ginКлассический web фреймворкhttps://github.com/gin-gonic/gin
beegoWeb фреймворк от китайских разработчиковhttps://github.com/beego/beego
irisWeb фреймворк, претендующий на звание самого быстрогоhttps://github.com/kataras/iris
echoМинималистичный высокопроизводительный web фреймворкhttps://github.com/labstack/echo
gojiЛаконичный web фреймворкhttps://github.com/zenazn/goji
revelВысокодоступный full-stack web фреймворкhttps://github.com/revel/revel
buffaloWeb фреймворк для простого создания full-stack проектовhttps://github.com/gobuffalo/buffalo
hertzМикросервисный HTTP фреймворк с высокой производительностью и расширяемостью (open source от ByteDance)https://github.com/cloudwego/hertz
dotwebПростой микро web фреймворкhttps://github.com/devfeel/dotweb
fiberWeb фреймворк в стиле Node.js Expresshttps://github.com/gofiber/fiber

ORM

НазваниеОписаниеРепозиторий
gormORM библиотека, дружественная к разработчикамhttps://github.com/go-gorm/gorm
xormПростая и мощная ORMhttps://gitea.com/xorm/xorm
entORM с открытым исходным кодом от FaceBookhttps://github.com/ent/ent
sqlxМощное расширение библиотеки sqlhttps://github.com/jmoiron/sqlx
beego/ormORM, входящая в состав beegohttps://github.com/astaxie/beego/tree/master/orm
relРасширяемая современная ORMhttps://github.com/go-rel/rel
bunSQL-ориентированная ORMhttps://github.com/uptrace/bun

Микросервисные фреймворки

НазваниеОписаниеРепозиторий
kratosCloud-native микросервисный фреймворк (open source от Bilibili)https://github.com/go-kratos/kratos
go-kitБиблиотека инструментов для разработки микросервисовhttps://github.com/go-kit/kit
kitexВысокопроизводительный и расширяемый микросервисный фреймворк (open source от ByteDance)https://github.com/cloudwego/kitex
go-zeroCloud-native микросервисный фреймворк (open source от Qiniu Cloud)https://github.com/zeromicro/go-zero
go-microЗарубежный микросервисный фреймворкhttps://github.com/go-micro/go-micro
kiteМикросервисный фреймворк (давно не обновлялся)https://github.com/koding/kite
dubbo-goРеализация java dubbo на go (open source от Alibaba)https://github.com/apache/dubbo-go
tarsgoРеализация tars на go (open source от Tencent)https://github.com/TarsCloud/TarsGo
juptiersМикросервисный фреймворк, ориентированный на управление (open source от Douyu)https://github.com/douyu/jupiter
redsyncРаспределённая блокировка redishttps://github.com/go-redsync/redsync

Интересный факт

Jupiter от Douyu — это имя Зевса, бога богов, а Kratos от Bilibili — это имя Кратоса, бога войны, который позже убил Зевса, бога богов.

Компоненты логирования

НазваниеОписаниеРепозиторий
logrusБиблиотека структурированного логированияhttps://github.com/sirupsen/logrus
zapВысокопроизводительная библиотека логирования с открытым исходным кодом от Uberhttps://github.com/uber-go/zap
glogМногоуровневое логированиеhttps://github.com/golang/glog
zerologJSON логирование без выделения памятиhttps://github.com/rs/zerolog
apex/logБиблиотека структурированного логированияhttps://github.com/apex/log
lumberjackБиблиотека ротации логов, поддерживает разделение по размеру, дате, сжатие файловhttps://github.com/natefinch/lumberjack

Компоненты тестирования

НазваниеОписаниеРепозиторий
testifyСамый популярный пакет инструментов тестированияhttps://github.com/stretchr/testify
ginkgoСовременный фреймворк тестированияhttps://github.com/onsi/ginkgo
ramsqlSQL движок в памяти, в основном для модульного тестирования SQLhttps://github.com/proullon/ramsql
go-sqlmockSQL Mock для тестированияhttps://github.com/DATA-DOG/go-sqlmock
goconveyВизуальное тестирование в браузереhttps://github.com/smartystreets/goconvey
go-stress-testingИнструмент нагрузочного тестированияhttps://github.com/link1st/go-stress-testing
xgoФреймворк stub-тестирования go, реализованный через переписывание кода во время компиляцииhttps://github.com/xhd2015/xgo
gomonkeyФреймворк stub-тестирования go, реализованный через изменение адреса функцииhttps://github.com/agiledragon/gomonkey

Обработка данных

НазваниеОписаниеРепозиторий
mapstructureПреобразование map в структуру и обратноhttps://github.com/mitchellh/mapstructure
castУдобное преобразование типов данныхhttps://github.com/spf13/cast
deepcopyГлубокое копированиеhttps://github.com/mohae/deepcopy
copierКопирование значений между одноимёнными полями структурhttps://github.com/jinzhu/copier
go-pinyinПреобразование китайских иероглифов в пиньиньhttps://github.com/mozillazg/go-pinyin
go-streamsПотоковая обработка данныхhttps://github.com/reugn/go-streams
streamПотоковая обработкаhttps://github.com/xyctruth/stream
go-humanizeПреобразование данных в читаемый для человека форматhttps://github.com/dustin/go-humanize
unisegСегментация Unicode текста, перенос слов и расчёт ширины строк в Gohttps://github.com/rivo/uniseg

Валидация данных

НазваниеОписаниеРепозиторий
go-playground/validator/v10Валидатор данныхhttps://github.com/go-playground/validator
go-cmpБиблиотека для сравнения значений с открытым исходным кодом от Googlehttps://github.com/google/go-cmp
ozzo-validationБиблиотека валидации данных на основе правилhttps://github.com/go-ozzo/ozzo-validation
go-tagexprБиблиотека валидации тегов структурhttps://github.com/bytedance/go-tagexpr

Структуры данных

НазваниеОписаниеРепозиторий
godsРеализация распространённых структур данныхhttps://github.com/emirpasic/gods
go-datastructuresРеализация распространённых структур данныхhttps://github.com/Workiva/go-datastructures
bisetРеализация bitsets в gohttps://github.com/bits-and-blooms/bitset
bloomРеализация bloom filters в gohttps://github.com/bits-and-blooms/bloom
dequeРеализация высокопроизводительной двусторонней очередиhttps://github.com/edwingeng/deque
concurrent-mapПотокобезопасная реализация сегментированной maphttps://github.com/orcaman/concurrent-map
samber/loБиблиотека обработки данных в стиле Lodash, поддерживает дженерикиhttps://github.com/samber/lo
google/btreeБиблиотека BTree от Google, поддерживает дженерикиhttps://github.com/google/btree
gostlБиблиотека структур данных как C++ STLhttps://github.com/liyue201/gostl

Математические вычисления

НазваниеОписаниеРепозиторий
gonumАналог numpyhttps://github.com/gonum/gonum
decimalБиблиотека для работы с числами высокой точностиhttps://github.com/shopspring/decimal
crunchБиблиотека для упрощения операций с байтами и битамиhttps://github.com/superwhiskers/crunch
math-engineБиблиотека движка парсинга и вычисления математических выраженийhttps://github.com/dengsgo/math-engine

Шаблонизаторы

НазваниеОписаниеРепозиторий
pongo2Шаблонизатор в стиле Djangohttps://github.com/flosch/pongo2
aceHTML шаблонизаторhttps://github.com/yosssi/ace
mustacheРеализация mustache на gohttps://github.com/hoisie/mustache
heroМощный, быстрый шаблонизаторhttps://github.com/shiyanhui/hero
quictemplateКак следует из названия, высокопроизводительный шаблонизаторhttps://github.com/valyala/quicktemplate
amberШаблонизатор на основе HAML и Jadehttps://github.com/eknkc/amber

Компоненты кэширования

НазваниеОписаниеРепозиторий
golang-lruПотокобезопасный LRU, а также LRU 2Q кэшhttps://github.com/hashicorp/golang-lru
ttlcacheКэш в памяти, поддерживает TTL, дженерикиhttps://github.com/jellydator/ttlcache
gocacheМенеджер промежуточного ПО кэшированияhttps://github.com/eko/gocache
go-cacheКэш в памяти, подходит для автономных приложений, поддерживает TTLhttps://github.com/patrickmn/go-cache
ristrettoВысокопроизводительный кэш в памятиhttps://github.com/dgraph-io/ristretto
bigcacheЭффективный кэш больших ключей в памятиhttps://github.com/allegro/bigcache

Базы данных и драйверы

НазваниеОписаниеРепозиторий
modernc.org/sqliteДрайвер sqlite, написан на чистом go, не требует cgohttps://gitlab.com/cznic/sqlite
mattn/go-sqlite3Драйвер sqlite, требует cgohttps://github.com/mattn/go-sqlite3
denisenkom/go-mssqldbДрайвер sqlserver, редко обновляется, рекомендуется использовать версию от Microsofthttps://github.com/denisenkom/go-mssqldb
microsoft/go-mssqldbДрайвер sqlserver, новый форк от Microsofthttps://github.com/microsoft/go-mssqldb
pgxДрайвер postgreSQLhttps://github.com/jackc/pgx/
mysqlДрайвер mysqlhttps://github.com/go-sql-driver/mysql
oci-go-sdkОфициальный драйвер oraclehttps://github.com/oracle/oci-go-sdk
go-oraДрайвер oracle, написан на чистом gohttps://github.com/sijms/go-ora
badgerВстраиваемая kv база данных на основе LSMhttps://github.com/dgraph-io/badger
boltdbВстраиваемая kv база данных на основе B+Treehttps://github.com/boltdb/bolt
goleveldbРеализация leveldb на gohttps://github.com/syndtr/goleveldb
qmgoБиблиотека для работы с mongodb от Qiniu Cloudhttps://github.com/qiniu/qmgo
mongo-go-driverОфициальный go драйвер mongodbhttps://github.com/mongodb/mongo-go-driver
rqliteЛёгкая распределённая реляционная база данных на основе sqlitehttps://github.com/rqlite/rqlite/
go-mysqlМощный набор инструментов MySQLhttps://github.com/go-mysql-org/go-mysql
go-mysql-elasticsearchИнструмент синхронизации данных MySQL в Elasticsearchhttps://github.com/go-mysql-org/go-mysql-elasticsearch
gofoundАвтономный движок полнотекстового поиска на сотни миллионов записей,https://github.com/sea-team/gofound
bleveБиблиотека полнотекстового поискаhttps://github.com/blevesearch/bleve

Сериализация

НазваниеОписаниеРепозиторий
go-iniБиблиотека сериализации ini файловhttps://github.com/go-ini/ini
sonicВысокопроизводительная библиотека json сериализации с открытым исходным кодом от ByteDancehttps://github.com/bytedance/sonic
easyjsonБиблиотека быстрой json сериализацииhttps://github.com/mailru/easyjson
gjsonБыстрое получение значений json ключей, не традиционная библиотека сериализацииhttps://github.com/tidwall/gjson
go-yamlБиблиотека yaml сериализацииhttps://github.com/go-yaml/yaml
go-tomlБиблиотека toml сериализацииhttps://github.com/pelletier/go-toml
propertiesБиблиотека properties сериализацииhttps://github.com/magiconair/properties
viperПоддержка сериализации нескольких форматов данных, также является менеджером конфигурацииhttps://github.com/spf13/viper
configorСериализатор нескольких форматов данных от автора gorm, менеджер конфигурацииhttps://github.com/jinzhu/configor

Командная строка

НазваниеОписаниеРепозиторий
pflagПакет flag в стиле POSIX/GNUhttps://github.com/spf13/pflag
go-flagsПарсер аргументов командной строкиhttps://github.com/jessevdk/go-flags
cobraСкаффолдинг для современных CLI программhttps://github.com/spf13/cobra
dimiro1/bannerБиблиотека для создания красивых баннеровhttps://github.com/dimiro1/banner
go-prettyКрасивый вывод таблиц, текста, прогресс-баров в командной строкеhttps://github.com/jedib0t/go-pretty
progressbarПотокобезопасный прогресс-бар для командной строкиhttps://github.com/schollz/progressbar
go-ansiПортативная утилита ANSI escape-последовательностей для Windows на Gohttps://github.com/k0kubun/go-ansi
go-isattyБиблиотека для определения ttyhttps://github.com/mattn/go-isatty

Архивация и сжатие

НазваниеОписаниеРепозиторий
klauspost/compressОптимизированная версия стандартной библиотеки compresshttps://github.com/klauspost/compress
alexmullins/zipФорк стандартной библиотеки archive/zip, поддерживает парольhttps://github.com/alexmullins/zip
mholt/archiverБиблиотека инструментов архивации и сжатия, поддерживающая множество форматов (настоятельно рекомендуется)https://github.com/mholt/archiver
go-carРеализация CAR архивов на gohttps://github.com/ipld/go-car
go-unarrБиблиотека архивации и сжатияhttps://github.com/gen2brain/go-unarr
xzЧистая Golang библиотека для чтения и записи xz архивовhttps://github.com/ulikunitz/xz

Дата и время

НазваниеОписаниеРепозиторий
carbonБиблиотека обработки даты и времениhttps://github.com/golang-module/carbon
robfig/cronБиблиотека для периодических задачhttps://pkg.go.dev/github.com/robfig/cron/v3
gronБиблиотека для периодических задачhttps://github.com/roylee0704/gron
jobrunnerФреймворк асинхронных периодических задачhttps://github.com/bamzi/jobrunner
dataparseПарсинг строк времени без знания форматаhttps://github.com/araddon/dateparse
jinzhu/nowБиблиотека утилит для работы с датамиhttps://github.com/jinzhu/now

Внедрение зависимостей

НазваниеОписаниеРепозиторий
digБиблиотека внедрения зависимостей с открытым исходным кодом от Uber, основана на рефлексииhttps://darjun.github.io/2020/02/22/godailylib/dig/
wireБиблиотека внедрения зависимостей с открытым исходным кодом от Google, основана на генерации кодаhttps://github.com/google/wire
injectИнструмент внедрения зависимостейhttps://github.com/codegangsta/inject
diКонтейнер внедрения зависимостейhttps://github.com/sarulabs/di

Геолокация

НазваниеОписаниеРепозиторий
geoip2-golangIP в геолокациюhttps://github.com/oschwald/geoip2-golang
ip2location-goIP в геолокациюhttps://github.com/ip2location/ip2location-go

Фреймворки для краулинга

НазваниеОписаниеРепозиторий
collyПростой и мощный фреймворк для краулингаhttps://github.com/gocolly/colly
goqueryАналог j-thinghttps://github.com/PuerkitoBio/goquery

Сетевые инструменты

НазваниеОписаниеРепозиторий
gentlemanПлагино-ориентированный, расширяемый http клиентhttps://github.com/h2non/gentleman
restyRESTful http клиентhttps://pkg.go.dev/github.com/go-resty/resty/v2
gopeedСовременный менеджер загрузок для всех платформ, основан на go и flutterhttps://github.com/GopeedLab/gopeed

Электронная почта

НазваниеОписаниеРепозиторий
jordan-wright/emailНадёжная и гибкая библиотека отправки почтыhttps://github.com/jordan-wright/email
gomailБиблиотека отправки почтыhttps://github.com/go-gomail/gomail
go-simple-mailПростая библиотека отправки почтыhttps://github.com/xhit/go-simple-mail
go-mailПростая в использовании, комплексная библиотека отправки почтыhttps://github.com/wneessen/go-mail
email-verifierПроверка валидности email без отправки письмаhttps://github.com/AfterShip/email-verifier
maddyКомбинированный почтовый серверhttps://github.com/foxcpp/maddy
moxПолностью open source, высокоподдерживаемый, самохостящийся почтовый серверhttps://github.com/mjl-/mox
hermesБиблиотека генерации email шаблоновhttps://github.com/matcornic/hermes
listmonkВысокопроизводительный, самохостящийся, визуальный менеджер почтовых списковhttps://github.com/knadh/listmonk
go-smtpSMTP клиент и сервер на gohttps://github.com/emersion/go-smtp
go-imapIMAP клиент и сервер на gohttps://github.com/emersion/go-imap

Разработка игр

НазваниеОписаниеРепозиторий
ebitengineОчень простой 2D игровой движокhttps://github.com/hajimehoshi/ebiten
Azul3D3D игровой движок на gohttps://github.com/azul3d/engine
engoOpen source 2D игровой движок на gohttps://github.com/EngoEngine/engo
g3n/engine3D игровой движок gohttps://github.com/g3n/engine
gonetФреймворк игрового сервераhttps://github.com/xtaci/gonet
leafФреймворк игрового сервераhttps://github.com/name5566/leaf
cloud-gameОблачный игровой сервис на основе webhttps://github.com/giongto35/cloud-game

GUI

НазваниеОписаниеРепозиторий
fyneКроссплатформенный инструментарий GUI разработки (действительно стоящий)https://github.com/fyne-io/fyne
go-flutterНаписание Flutter на gohttps://github.com/go-flutter-desktop/go-flutter
WailsМожно рассматривать как быструю и лёгкую альтернативу Electron для Gohttps://github.com/wailsapp/wails

Взаимодействие с системой

НазваниеОписаниеРепозиторий
gopsutilПолучение информации об ОС, совместим с основными системамиhttps://github.com/shirou/gopsutil
flockФайловая блокировка на основе системных вызововhttps://github.com/gofrs/flock
sysОфициальная библиотека взаимодействия с ОСhttps://cs.opensource.google/go/x/sys

Межъязыковое взаимодействие

НазваниеОписаниеРепозиторий
gopher-luaLua виртуальная машина на gohttps://github.com/yuin/gopher-lua
go-luaLua виртуальная машина на gohttps://github.com/Shopify/go-lua
gojaПоддержка ES5.1+https://github.com/dop251/goja
tengoTengo — небольшой, динамичный, быстрый, безопасный скриптовый язык на Gohttps://github.com/d5/tengo
gobyИнтерпретируемый скриптовый язык на go, вдохновлённый rubyhttps://github.com/goby-lang/goby
go+Скриптовый язык с открытым исходным кодом от Qiniu Cloud, бесшовно взаимодействует с go, также называется Q языкhttps://github.com/goplus/gop
go-pythonВызов cpython2 из gohttps://github.com/sbinet/go-python
go-pytyon3Вызов cpython3 из gohttps://github.com/DataDog/go-python3

Обработка изображений

НазваниеОписаниеРепозиторий
plotБиблиотека построения графиков, в основном для визуализации данныхhttps://github.com/gonum/plot
gg2D библиотека рисованияhttps://github.com/fogleman/gg
gocvПоддержка OpenCV4+https://github.com/hybridgroup/gocv
imagingПростая библиотека обработки изображенийhttps://github.com/disintegration/imaging

Обработка текста

НазваниеОписаниеРепозиторий
valeИнструмент грамматической коррекции текстаhttps://github.com/errata-ai/vale

Аутентификация и авторизация

НазваниеОписаниеРепозиторий
casbinГибкая и мощная библиотека управления правамиhttps://github.com/casbin/casbin
openfgaВысокопроизводительная библиотека прав/авторизации, основана на Google Zanzibarhttps://github.com/openfga/openfga

Генерация кода

НазваниеОписаниеРепозиторий
jenniferБиблиотека генерации кодаhttps://github.com/dave/jennifer

Обработка регулярных выражений

НазваниеОписаниеРепозиторий
commonregxБиблиотека с коллекцией часто используемых регулярных выраженийhttps://github.com/mingrammer/commonregex

Обработка файлов

НазваниеОписаниеРепозиторий
fileboxБиблиотека инструментов работы с файламиhttps://github.com/dstgo/filebox
sizeБыстрое преобразование между размером файла и строкойhttps://github.com/dstgo/size
checksumБиблиотека для вычисления хеш-сигнатур файловhttps://github.com/codingsince1985/checksum
pdfcpuPDF процессорhttps://github.com/pdfcpu/pdfcpu
uniofficeБиблиотека обработки Officehttps://github.com/unidoc/unioffice
gooxmlБиблиотека обработки Officehttps://github.com/carmel/gooxml
pdfcpuБиблиотека обработки PDFhttps://github.com/pdfcpu/pdfcpu
excelizeБиблиотека обработки Excelhttps://github.com/360EntSecGroup-Skylar/excelize

Общие инструменты

НазваниеОписаниеРепозиторий
lancetМногофункциональная библиотека инструментов, аналогично пакету common в javahttps://github.com/duke-git/lancet
bytebufferpoolПул байтовых буферовhttps://github.com/valyala/bytebufferpool

Фреймворки разработки

НазваниеОписаниеРепозиторий
goframeСовременный корпоративный фреймворк разработки gohttps://github.com/gogf/gf

Протоколы консенсуса

НазваниеОписаниеРепозиторий
hashicorp/raftБиблиотека raft с открытым исходным кодом от consulhttps://github.com/hashicorp/raft
hashicorp/memberlistБиблиотека gossip с открытым исходным кодом от consulhttps://github.com/hashicorp/memberlist
etcd-io/raftБиблиотека raft с открытым исходным кодом от etcdhttps://github.com/etcd-io/raft

OCR

НазваниеОписаниеРепозиторий
gosseractБиблиотека OCR с использованием Tesseract C++https://github.com/otiai10/gosseract

Golang by www.golangdev.cn edit