Skip to content

Grande Coleção de Bibliotecas Open Source Go

Coleção de algumas bibliotecas e frameworks open source de terceiros em Go, organizados e classificados para facilitar navegação posterior. Também aceitamos PRs para adicionar novos projetos.

TIP

A ordem de aparição não representa classificação. A utilidade deve ser julgada com base na experiência real.

Frameworks Web

NomeDescriçãoRepositório
ginFramework web mais clássicohttps://github.com/gin-gonic/gin
beegoFramework web desenvolvido por desenvolvedor chinêshttps://github.com/beego/beego
irisAlega ser o framework web mais rápidohttps://github.com/kataras/iris
echoFramework web minimalista de alto desempenhohttps://github.com/labstack/echo
gojiFramework web concisohttps://github.com/zenazn/goji
revelFramework web full-stack de alta disponibilidadehttps://github.com/revel/revel
buffaloFramework web que permite construir projetos full-stack facilmentehttps://github.com/gobuffalo/buffalo
hertzFramework HTTP de microsserviços com alto desempenho e forte escalabilidade (open source pela ByteDance)https://github.com/cloudwego/hertz
dotwebFramework web micro simpleshttps://github.com/devfeel/dotweb
fiberFramework Web no estilo Node.js Expresshttps://github.com/gofiber/fiber

ORM

NomeDescriçãoRepositório
gormBiblioteca ORM amigável para desenvolvedoreshttps://github.com/go-gorm/gorm
xormORM simples e poderosohttps://gitea.com/xorm/xorm
entORM open source pelo Facebookhttps://github.com/ent/ent
sqlxExtensões poderosas para biblioteca sqlhttps://github.com/jmoiron/sqlx
beego/ormORM nativo do beegohttps://github.com/astaxie/beego/tree/master/orm
relORM moderno e extensívelhttps://github.com/go-rel/rel
bunORM com foco em SQLhttps://github.com/uptrace/bun

Frameworks de Microsserviços

NomeDescriçãoRepositório
kratosFramework de microsserviços cloud native (open source pelo Bilibili)https://github.com/go-kratos/kratos
go-kitBiblioteca de ferramentas para desenvolvimento de microsserviçoshttps://github.com/go-kit/kit
kitexFramework de microsserviços de alto desempenho e alta extensibilidade (open source pela ByteDance)https://github.com/cloudwego/kitex
go-zeroFramework de microsserviços cloud native (open source pela Qiniu Cloud)https://github.com/zeromicro/go-zero
go-microUm framework de microsserviços estrangeirohttps://github.com/go-micro/go-micro
kiteFramework de microsserviços (não atualizado há muito tempo)https://github.com/koding/kite
dubbo-goImplementação em Go do Java Dubbo (open source pela Alibaba)https://github.com/apache/dubbo-go
tarsgoImplementação em Go do Tars (open source pela Tencent)https://github.com/TarsCloud/TarsGo
juptiersFramework de microsserviços orientado à governança (open source pelo Douyu)https://github.com/douyu/jupiter
redsyncLock distribuído Redishttps://github.com/go-redsync/redsync

Easter Egg

O jupiter do Douyu leva o nome de Zeus, o rei dos deuses, enquanto o kratos do Bilibili leva o nome de Kratos, o deus da guerra, que mais tarde matou Zeus.

Componentes de Log

NomeDescriçãoRepositório
logrusBiblioteca de logs estruturadoshttps://github.com/sirupsen/logrus
zapBiblioteca de logs de alto desempenho open source pela Uberhttps://github.com/uber-go/zap
glogLogs com execução por nívelhttps://github.com/golang/glog
zerologLogs JSON com zero alocação de memóriahttps://github.com/rs/zerolog
apex/logBiblioteca de logs estruturadoshttps://github.com/apex/log
lumberjackBiblioteca de rotação de logs, suporta rotação por tamanho, data e compressão de arquivoshttps://github.com/natefinch/lumberjack

Componentes de Teste

NomeDescriçãoRepositório
testifyPacote de ferramentas de teste mais popularhttps://github.com/stretchr/testify
ginkgoFramework de teste modernohttps://github.com/onsi/ginkgo
ramsqlMotor SQL baseado em memória, usado principalmente para testes unitários de SQLhttps://github.com/proullon/ramsql
go-sqlmockSQL Mock para testeshttps://github.com/DATA-DOG/go-sqlmock
goconveyTestes visualizados no navegadorhttps://github.com/smartystreets/goconvey
go-stress-testingFerramenta de teste de pressãohttps://github.com/link1st/go-stress-testing
xgoFramework de teste de stub em Go, implementado através de reescrita de código em tempo de compilaçãohttps://github.com/xhd2015/xgo
gomonkeyFramework de teste de stub em Go, implementado modificando endereços de funçãohttps://github.com/agiledragon/gomonkey

Processamento de Dados

NomeDescriçãoRepositório
mapstructureConversão entre map e structhttps://github.com/mitchellh/mapstructure
castConversão de tipos de dados convenientehttps://github.com/spf13/cast
deepcopyCópia profundahttps://github.com/mohae/deepcopy
copierCopia valores entre campos de mesmo nome em structshttps://github.com/jinzhu/copier
go-pinyinConversão de caracteres chineses para pinyinhttps://github.com/mozillazg/go-pinyin
go-streamsProcessamento de dados em fluxohttps://github.com/reugn/go-streams
streamProcessamento em fluxohttps://github.com/xyctruth/stream
go-humanizeConverte dados para formatos legíveis por humanoshttps://github.com/dustin/go-humanize
unisegSegmentação de texto Unicode, quebra de palavras e cálculo de largura de string em Gohttps://github.com/rivo/uniseg

Validação de Dados

NomeDescriçãoRepositório
go-playground/validator/v10Validador de dadoshttps://github.com/go-playground/validator
go-cmpBiblioteca para comparação de valores open source pelo Googlehttps://github.com/google/go-cmp
ozzo-validationBiblioteca de validação de dados baseada em regrashttps://github.com/go-ozzo/ozzo-validation
go-tagexprBiblioteca de validação de tags de structhttps://github.com/bytedance/go-tagexpr

Estruturas de Dados

NomeDescriçãoRepositório
godsImplementação de estruturas de dados comunshttps://github.com/emirpasic/gods
go-datastructuresImplementação de estruturas de dados comunshttps://github.com/Workiva/go-datastructures
bisetImplementação de bitsets em Gohttps://github.com/bits-and-blooms/bitset
bloomImplementação de filtros Bloom em Gohttps://github.com/bits-and-blooms/bloom
dequeImplementação de fila duplamente terminada de alto desempenhohttps://github.com/edwingeng/deque
concurrent-mapImplementação de map segmentado seguro para concorrênciahttps://github.com/orcaman/concurrent-map
samber/loBiblioteca de processamento de dados no estilo Lodash, suporta genéricoshttps://github.com/samber/lo
google/btreeBiblioteca BTree implementada pelo Google, suporta genéricoshttps://github.com/google/btree
gostlBiblioteca de estruturas de dados como STL do C++https://github.com/liyue201/gostl

Cálculo Matemático

NomeDescriçãoRepositório
gonumComparável ao numpyhttps://github.com/gonum/gonum
decimalBiblioteca de operações de ponto flutuante de alta precisãohttps://github.com/shopspring/decimal
crunchBiblioteca que simplifica operações com bytes e bitshttps://github.com/superwhiskers/crunch
math-engineBiblioteca de motor de análise e cálculo de expressões matemáticashttps://github.com/dengsgo/math-engine

Motor de Template

NomeDescriçãoRepositório
pongo2Motor de template no estilo Djangohttps://github.com/flosch/pongo2
aceMotor de template htmlhttps://github.com/yosssi/ace
mustacheImplementação do mustache em Gohttps://github.com/hoisie/mustache
heroMotor de template poderoso e rápidohttps://github.com/shiyanhui/hero
quicktemplateMotor de template de alto desempenhohttps://github.com/valyala/quicktemplate
amberMotor de template originado do HAML e Jadehttps://github.com/eknkc/amber

Componentes de Cache

NomeDescriçãoRepositório
golang-lruLRU seguro para threads e LRU 2Q cachehttps://github.com/hashicorp/golang-lru
ttlcacheCache baseado em memória, suporta TTL e genéricoshttps://github.com/jellydator/ttlcache
gocacheGerenciador de middleware de cachehttps://github.com/eko/gocache
go-cacheCache baseado em memória, adequado para aplicações single-node, suporta TTLhttps://github.com/patrickmn/go-cache
ristrettoCache de memória de alto desempenhohttps://github.com/dgraph-io/ristretto
bigcacheCache de chaves grandes eficiente baseado em memóriahttps://github.com/allegro/bigcache

Banco de Dados & Drivers

NomeDescriçãoRepositório
modernc.org/sqliteDriver sqlite, escrito puramente em Go, não requer cgohttps://gitlab.com/cznic/sqlite
mattn/go-sqlite3Driver sqlite, requer cgohttps://github.com/mattn/go-sqlite3
denisenkom/go-mssqldbDriver sqlserver, não é muito atualizado, recomenda-se usar versão da Microsofthttps://github.com/denisenkom/go-mssqldb
microsoft/go-mssqldbDriver sqlserver, novo branch mantido pela Microsofthttps://github.com/microsoft/go-mssqldb
pgxDriver postgreSQLhttps://github.com/jackc/pgx/
mysqlDriver mysqlhttps://github.com/go-sql-driver/mysql
oci-go-sdkDriver oficial oraclehttps://github.com/oracle/oci-go-sdk
go-oraDriver oracle, escrito puramente em Gohttps://github.com/sijms/go-ora
badgerBanco de dados kv embutido, baseado em LSMhttps://github.com/dgraph-io/badger
boltdbBanco de dados kv embutido, baseado em B+Treehttps://github.com/boltdb/bolt
goleveldbImplementação de leveldb em linguagem Gohttps://github.com/syndtr/goleveldb
qmgoBiblioteca de operação mongodb open source pela Qiniu Cloudhttps://github.com/qiniu/qmgo
mongo-go-driverDriver oficial mongodb do Gohttps://github.com/mongodb/mongo-go-driver
rqliteBanco de dados relacional distribuído leve baseado em sqlitehttps://github.com/rqlite/rqlite/
go-mysqlConjunto de ferramentas MySQL poderosashttps://github.com/go-mysql-org/go-mysql
go-mysql-elasticsearchFerramenta de sincronização de dados MySQL para Elasticsearchhttps://github.com/go-mysql-org/go-mysql-elasticsearch
gofoundMotor de busca de texto completo single-node de nível bilhãohttps://github.com/sea-team/gofound
bleveBiblioteca de busca de texto completohttps://github.com/blevesearch/bleve

Serialização

NomeDescriçãoRepositório
go-iniBiblioteca de serialização de arquivos inihttps://github.com/go-ini/ini
sonicBiblioteca de serialização json de alto desempenho open source pela ByteDancehttps://github.com/bytedance/sonic
easyjsonBiblioteca de serialização rápida de jsonhttps://github.com/mailru/easyjson
gjsonAcesso rápido a valores de chaves json, não é biblioteca de serialização tradicionalhttps://github.com/tidwall/gjson
go-yamlBiblioteca de serialização yamlhttps://github.com/go-yaml/yaml
go-tomlBiblioteca de serialização tomlhttps://github.com/pelletier/go-toml
propertiesBiblioteca de serialização propertieshttps://github.com/magiconair/properties
viperSuporta serialização de múltiplos formatos de dados, também é gerenciador de configuraçãohttps://github.com/spf13/viper
configorSerializador de múltiplos formatos de dados escrito pelo autor do gorm, gerenciador de configuraçãohttps://github.com/jinzhu/configor

Linha de Comando

NomeDescriçãoRepositório
pflagPacote de flag no estilo POSIX/GUNhttps://github.com/spf13/pflag
go-flagsAnalisador de parâmetros de comandohttps://github.com/jessevdk/go-flags
cobraScaffolding moderno para programas de linha de comandohttps://github.com/spf13/cobra
dimiro1/bannerBiblioteca de construção de banners estéticoshttps://github.com/dimiro1/banner
go-prettySaída estética de tabelas, texto e barras de progresso na linha de comandohttps://github.com/jedib0t/go-pretty
progressbarBarra de progresso segura para threads na linha de comandohttps://github.com/schollz/progressbar
go-ansiUtilitários de sequências de escape ANSI portáteis para Windows em Gohttps://github.com/k0kubun/go-ansi
go-isattyBiblioteca para判断 ttyhttps://github.com/mattn/go-isatty

Compressão e Descompressão

NomeDescriçãoRepositório
klauspost/compressOtimização e melhoria da biblioteca padrão compresshttps://github.com/klauspost/compress
alexmullins/zipBranch do archive/zip da biblioteca padrão, suporta senhashttps://github.com/alexmullins/zip
mholt/archiverBiblioteca de compressão e descompressão que suporta muitos formatos (altamente recomendado)https://github.com/mholt/archiver
go-carImplementação de arquivos de arquivo CAR em Gohttps://github.com/ipld/go-car
go-unarrBiblioteca de compressão e descompressãohttps://github.com/gen2brain/go-unarr
xzBiblioteca Go pura para leitura e escrita de arquivos compactados xzhttps://github.com/ulikunitz/xz

Data e Hora

NomeDescriçãoRepositório
carbonBiblioteca de processamento de data e horahttps://github.com/golang-module/carbon
robfig/cronBiblioteca de tarefas agendadashttps://pkg.go.dev/github.com/robfig/cron/v3
gronBiblioteca de tarefas agendadashttps://github.com/roylee0704/gron
jobrunnerFramework de tarefas agendadas assíncronashttps://github.com/bamzi/jobrunner
dateparsePode analisar strings de tempo sem conhecer o formatohttps://github.com/araddon/dateparse
jinzhu/nowBiblioteca de utilitários de datahttps://github.com/jinzhu/now

Injeção de Dependência

NomeDescriçãoRepositório
digBiblioteca de injeção de dependência open source pela Uber, baseada em reflexãohttps://darjun.github.io/2020/02/22/godailylib/dig/
wireBiblioteca de injeção de dependência open source pelo Google, baseada em geração de códigohttps://github.com/google/wire
injectFerramenta de injeção de dependênciahttps://github.com/codegangsta/inject
diContainer de injeção de dependênciahttps://github.com/sarulabs/di

Localização Geográfica

NomeDescriçãoRepositório
geoip2-golangConversão de IP para informações geográficashttps://github.com/oschwald/geoip2-golang
ip2location-goConversão de IP para informações geográficashttps://github.com/ip2location/ip2location-go

Frameworks de Web Scraping

NomeDescriçãoRepositório
collyFramework de scraping simples e poderosohttps://github.com/gocolly/colly
goquerySimilar ao jQueryhttps://github.com/PuerkitoBio/goquery

Ferramentas de Rede

NomeDescriçãoRepositório
gentlemanCliente http orientado a plugins e extensívelhttps://github.com/h2non/gentleman
restyCliente http restfulhttps://pkg.go.dev/github.com/go-resty/resty/v2
gopeedGerenciador de downloads moderno que suporta todas as plataformas, baseado em Go e Flutterhttps://github.com/GopeedLab/gopeed

E-mail

NomeDescriçãoRepositório
jordan-wright/emailBiblioteca de envio de e-mails robusta e flexívelhttps://github.com/jordan-wright/email
gomailBiblioteca de envio de e-mailshttps://github.com/go-gomail/gomail
go-simple-mailBiblioteca de envio de e-mails simpleshttps://github.com/xhit/go-simple-mail
go-mailBiblioteca de envio de e-mails fácil de usar e abrangentehttps://github.com/wneessen/go-mail
email-verifierVerifica se o e-mail é válido sem precisar enviar e-mailhttps://github.com/AfterShip/email-verifier
maddyServidor de e-mail modularhttps://github.com/foxcpp/maddy
moxServidor de e-mail open source, altamente mantido e auto-hospedadohttps://github.com/mjl-/mox
hermesBiblioteca de geração de templates de e-mailhttps://github.com/matcornic/hermes
listmonkGerenciamento de lista de e-mails de alto desempenho, auto-hospedado e visualhttps://github.com/knadh/listmonk
go-smtpCliente e servidor SMTP escritos em Gohttps://github.com/emersion/go-smtp
go-imapCliente e servidor IMAP escritos em Gohttps://github.com/emersion/go-imap

Desenvolvimento de Jogos

NomeDescriçãoRepositório
ebitengineMotor de jogo 2D super simpleshttps://github.com/hajimehoshi/ebiten
Azul3DMotor de jogo 3D escrito em Gohttps://github.com/azul3d/engine
engoMotor de jogo 2D open source escrito em Gohttps://github.com/EngoEngine/engo
g3n/engineMotor de jogo 3D em Gohttps://github.com/g3n/engine
gonetFramework de servidor de jogohttps://github.com/xtaci/gonet
leafFramework de servidor de jogohttps://github.com/name5566/leaf
cloud-gameServiço de jogo em nuvem baseado na webhttps://github.com/giongto35/cloud-game

GUI

NomeDescriçãoRepositório
fyneKit de ferramentas de desenvolvimento GUI multiplataforma (realmente impressionante)https://github.com/fyne-io/fyne
go-flutterEscreva Flutter em Gohttps://github.com/go-flutter-desktop/go-flutter
WailsPode ser visto como alternativa Electron rápida e leve para Gohttps://github.com/wailsapp/wails

Interação com Sistema

NomeDescriçãoRepositório
gopsutilObtém informações do sistema operacional, compatível com sistemas principaishttps://github.com/shirou/gopsutil
flockLock de arquivo baseado em chamadas de sistema operacionalhttps://github.com/gofrs/flock
sysBiblioteca oficial de interação com sistema operacionalhttps://cs.opensource.google/go/x/sys

Interação entre Linguagens

NomeDescriçãoRepositório
gopher-luaMáquina virtual Lua escrita em Gohttps://github.com/yuin/gopher-lua
go-luaMáquina virtual Lua escrita em Gohttps://github.com/Shopify/go-lua
gojaSuporta es5.1+https://github.com/dop251/goja
tengoTengo é uma linguagem de script Go pequena, dinâmica, rápida e segurahttps://github.com/d5/tengo
gobyLinguagem de script interpretada inspirada em Ruby, implementada em Gohttps://github.com/goby-lang/goby
go+Linguagem de script open source pela Qiniu Cloud, pode interagir com Go sem problemas, também conhecida como linguagem Qhttps://github.com/goplus/gop
go-pythonGo chama cpython2https://github.com/sbinet/go-python
go-python3Go chama cpython3https://github.com/DataDog/go-python3

Processamento de Imagem

NomeDescriçãoRepositório
plotBiblioteca de desenho, usada principalmente para visualização de dadoshttps://github.com/gonum/plot
ggBiblioteca de desenho 2Dhttps://github.com/fogleman/gg
gocvSuporta opencv4+https://github.com/hybridgroup/gocv
imagingBiblioteca simples de processamento de imagemhttps://github.com/disintegration/imaging

Processamento de Texto

NomeDescriçãoRepositório
valeFerramenta de correção de texto com percepção gramaticalhttps://github.com/errata-ai/vale

Autenticação e Autorização

NomeDescriçãoRepositório
casbinBiblioteca de gerenciamento de permissões flexível e poderosahttps://github.com/casbin/casbin
openfgaBiblioteca de permissões/autorização de alto desempenho, originada do Google Zanzibarhttps://github.com/openfga/openfga

Geração de Código

NomeDescriçãoRepositório
jenniferBiblioteca de geração de códigohttps://github.com/dave/jennifer

Processamento de Expressões Regulares

NomeDescriçãoRepositório
commonregxBiblioteca que coleta expressões regulares comumente usadashttps://github.com/mingrammer/commonregex

Processamento de Arquivos

NomeDescriçãoRepositório
fileboxBiblioteca de ferramentas de operação com arquivoshttps://github.com/dstgo/filebox
sizeConversão rápida entre tamanho de arquivo e stringhttps://github.com/dstgo/size
checksumBiblioteca de cálculo de assinatura hash de arquivoshttps://github.com/codingsince1985/checksum
pdfcpuProcessador de PDFhttps://github.com/pdfcpu/pdfcpu
uniofficeBiblioteca de processamento do Officehttps://github.com/unidoc/unioffice
gooxmlBiblioteca de processamento do Officehttps://github.com/carmel/gooxml
excelizeBiblioteca de processamento de Excelhttps://github.com/360EntSecGroup-Skylar/excelize

Ferramentas de Uso Geral

NomeDescriçãoRepositório
lancetBiblioteca de ferramentas multifuncional, comparável ao pacote common do Javahttps://github.com/duke-git/lancet
bytebufferpoolPool de buffer de byteshttps://github.com/valyala/bytebufferpool

Frameworks de Desenvolvimento

NomeDescriçãoRepositório
goframeFramework de desenvolvimento Go empresarial modernohttps://github.com/gogf/gf

Protocolos de Consenso

NomeDescriçãoRepositório
hashicorp/raftBiblioteca raft open source pelo Consulhttps://github.com/hashicorp/raft
hashicorp/memberlistBiblioteca gossip open source pelo Consulhttps://github.com/hashicorp/memberlist
etcd-io/raftBiblioteca raft open source pelo etcdhttps://github.com/etcd-io/raft

OCR

NomeDescriçãoRepositório
gosseractBiblioteca OCR que usa biblioteca Tesseract C++https://github.com/otiai10/gosseract

Golang por www.golangdev.cn edit