Skip to content

Colección de Bibliotecas de Código Abierto de Go

Recopilamos y organizamos bibliotecas y frameworks de código abierto de Go para facilitar su navegación. También se aceptan PR para agregar nuevos proyectos.

TIP

El orden no representa ranking, la utilidad debe evaluarse según la experiencia real.

Frameworks Web

NombreDescripciónRepositorio
ginEl framework web más clásicohttps://github.com/gin-gonic/gin
beegoFramework web desarrollado por desarrolladores chinoshttps://github.com/beego/beego
irisConocido como el framework web más rápidohttps://github.com/kataras/iris
echoFramework web minimalista de alto rendimientohttps://github.com/labstack/echo
gojiFramework web simplehttps://github.com/zenazn/goji
revelFramework web full-stack de alta disponibilidadhttps://github.com/revel/revel
buffaloFramework web para construir proyectos full-stack fácilmentehttps://github.com/gobuffalo/buffalo
hertzFramework HTTP de microservicios de alto rendimiento y escalabilidad (código abierto por ByteDance)https://github.com/cloudwego/hertz
dotwebUn framework web miniatura simplehttps://github.com/devfeel/dotweb
fiberFramework web estilo Express de Node.jshttps://github.com/gofiber/fiber

ORM

NombreDescripciónRepositorio
gormBiblioteca ORM amigable para desarrolladoreshttps://github.com/go-gorm/gorm
xormORM simple y potentehttps://gitea.com/xorm/xorm
entORM de código abierto por Facebookhttps://github.com/ent/ent
sqlxExtensión potente para la biblioteca sqlhttps://github.com/jmoiron/sqlx
beego/ormORM incluido en beegohttps://github.com/astaxie/beego/tree/master/orm
relORM moderno y extensiblehttps://github.com/go-rel/rel
bunORM con enfoque en SQLhttps://github.com/uptrace/bun

Frameworks de Microservicios

NombreDescripciónRepositorio
kratosFramework de microservicios cloud-native (código abierto por Bilibili)https://github.com/go-kratos/kratos
go-kitBiblioteca de herramientas para desarrollo de microservicioshttps://github.com/go-kit/kit
kitexFramework de microservicios de alto rendimiento y extensibilidad (código abierto por ByteDance)https://github.com/cloudwego/kitex
go-zeroFramework de microservicios cloud-native (código abierto por Qiniu Cloud)https://github.com/zeromicro/go-zero
go-microUn framework de microservicios extranjerohttps://github.com/go-micro/go-micro
kiteFramework de microservicios (sin actualizaciones desde hace mucho)https://github.com/koding/kite
dubbo-goImplementación de Java Dubbo en Go (código abierto por Alibaba)https://github.com/apache/dubbo-go
tarsgoImplementación de Tars en Go (código abierto por Tencent)https://github.com/TarsCloud/TarsGo
juptiersFramework de microservicios orientado a la gobernanza (código abierto por Douyu)https://github.com/douyu/jupiter
redsyncBloqueo distribuido con Redishttps://github.com/go-redsync/redsync

Easter Egg

El jupiter de Douyu lleva el nombre de Zeus, el rey de los dioses, mientras que el kratos de Bilibili lleva el nombre de Kratos, el dios de la guerra, quien más tarde mató a Zeus, el rey de los dioses.

Componentes de Registro

NombreDescripciónRepositorio
logrusBiblioteca de registro estructuradohttps://github.com/sirupsen/logrus
zapBiblioteca de registro de alto rendimiento de código abierto por Uberhttps://github.com/uber-go/zap
glogRegistro de ejecución por niveleshttps://github.com/golang/glog
zerologRegistro JSON sin asignación de memoriahttps://github.com/rs/zerolog
apex/logBiblioteca de registro estructuradohttps://github.com/apex/log
lumberjackBiblioteca de rotación de registros, soporta rotación por tamaño, fecha y compresión de archivoshttps://github.com/natefinch/lumberjack

Componentes de Prueba

NombreDescripciónRepositorio
testifyEl paquete de herramientas de prueba más popularhttps://github.com/stretchr/testify
ginkgoFramework de pruebas modernohttps://github.com/onsi/ginkgo
ramsqlMotor SQL en memoria, principalmente para pruebas unitarias de SQLhttps://github.com/proullon/ramsql
go-sqlmockSQL Mock para pruebashttps://github.com/DATA-DOG/go-sqlmock
goconveyPruebas visualizadas en el navegadorhttps://github.com/smartystreets/goconvey
go-stress-testingHerramienta de prueba de presiónhttps://github.com/link1st/go-stress-testing
xgoFramework de pruebas de stub en Go, implementado mediante reescritura de código en tiempo de compilaciónhttps://github.com/xhd2015/xgo
gomonkeyFramework de pruebas de stub en Go, implementado mediante modificación de direcciones de funciónhttps://github.com/agiledragon/gomonkey

Procesamiento de Datos

NombreDescripciónRepositorio
mapstructureConversión bidireccional entre map y structhttps://github.com/mitchellh/mapstructure
castConversión de tipos de datos convenientehttps://github.com/spf13/cast
deepcopyCopia profundahttps://github.com/mohae/deepcopy
copierCopia de valores entre campos con el mismo nombre en structshttps://github.com/jinzhu/copier
go-pinyinConversión de caracteres chinos a pinyinhttps://github.com/mozillazg/go-pinyin
go-streamsProcesamiento de datos en flujohttps://github.com/reugn/go-streams
streamProcesamiento en flujohttps://github.com/xyctruth/stream
go-humanizeConvierte datos a formatos legibles para humanoshttps://github.com/dustin/go-humanize
unisegSegmentación de texto Unicode, ajuste de palabras y cálculo de ancho de cadena en Gohttps://github.com/rivo/uniseg

Validación de Datos

NombreDescripciónRepositorio
go-playground/validator/v10Validador de datoshttps://github.com/go-playground/validator
go-cmpBiblioteca de comparación de valores de código abierto por Googlehttps://github.com/google/go-cmp
ozzo-validationBiblioteca de validación de datos basada en reglashttps://github.com/go-ozzo/ozzo-validation
go-tagexprBiblioteca de validación de tags de structhttps://github.com/bytedance/go-tagexpr

Estructuras de Datos

NombreDescripciónRepositorio
godsImplementación de estructuras de datos comuneshttps://github.com/emirpasic/gods
go-datastructuresImplementación de estructuras de datos comuneshttps://github.com/Workiva/go-datastructures
bisetImplementación de bitsets en Gohttps://github.com/bits-and-blooms/bitset
bloomImplementación de bloom filters en Gohttps://github.com/bits-and-blooms/bloom
dequeImplementación de cola de doble extremo de alto rendimientohttps://github.com/edwingeng/deque
concurrent-mapImplementación de map segmentado seguro para concurrenciahttps://github.com/orcaman/concurrent-map
samber/loBiblioteca de procesamiento de datos estilo Lodash, soporta genéricoshttps://github.com/samber/lo
google/btreeBiblioteca BTree implementada por Google, soporta genéricoshttps://github.com/google/btree
gostlBiblioteca de estructuras de datos similar a C++ STLhttps://github.com/liyue201/gostl

Cálculo Matemático

NombreDescripciónRepositorio
gonumSimilar a numpyhttps://github.com/gonum/gonum
decimalBiblioteca de operaciones de punto flotante de alta precisiónhttps://github.com/shopspring/decimal
crunchBiblioteca que simplifica operaciones de bytes y bitshttps://github.com/superwhiskers/crunch
math-engineBiblioteca de motor de análisis y cálculo de expresiones matemáticashttps://github.com/dengsgo/math-engine

Motor de Plantillas

NombreDescripciónRepositorio
pongo2Motor de plantillas estilo Djangohttps://github.com/flosch/pongo2
aceMotor de plantillas HTMLhttps://github.com/yosssi/ace
mustacheImplementación de mustache en Gohttps://github.com/hoisie/mustache
heroMotor de plantillas potente y rápidohttps://github.com/shiyanhui/hero
quictemplateMotor de plantillas de alto rendimientohttps://github.com/valyala/quicktemplate
amberMotor de plantillas originado de HAML y Jadehttps://github.com/eknkc/amber

Componentes de Caché

NombreDescripciónRepositorio
golang-lruLRU seguro para hilos, y caché LRU 2Qhttps://github.com/hashicorp/golang-lru
ttlcacheCaché en memoria, soporta TTL, genéricoshttps://github.com/jellydator/ttlcache
gocacheGestor de middleware de cachéhttps://github.com/eko/gocache
go-cacheCaché en memoria, adecuado para aplicaciones de una sola máquina, soporta TTLhttps://github.com/patrickmn/go-cache
ristrettoCaché en memoria de alto rendimientohttps://github.com/dgraph-io/ristretto
bigcacheCaché de keys grandes de alta eficiencia en memoriahttps://github.com/allegro/bigcache

Bases de Datos y Controladores

NombreDescripciónRepositorio
modernc.org/sqliteControlador sqlite, escrito puramente en Go, no requiere cgohttps://gitlab.com/cznic/sqlite
mattn/go-sqlite3Controlador sqlite, requiere cgohttps://github.com/mattn/go-sqlite3
denisenkom/go-mssqldbControlador sqlserver, sin muchas actualizaciones, se recomienda la versión de Microsofthttps://github.com/denisenkom/go-mssqldb
microsoft/go-mssqldbControlador sqlserver, nueva rama mantenida por Microsofthttps://github.com/microsoft/go-mssqldb
pgxControlador PostgreSQLhttps://github.com/jackc/pgx/
mysqlControlador MySQLhttps://github.com/go-sql-driver/mysql
oci-go-sdkControlador oficial de Oraclehttps://github.com/oracle/oci-go-sdk
go-oraControlador de Oracle, escrito puramente en Gohttps://github.com/sijms/go-ora
badgerBase de datos kv embebida, basada en LSMhttps://github.com/dgraph-io/badger
boltdbBase de datos kv embebida, basada en B+Treehttps://github.com/boltdb/bolt
goleveldbImplementación de leveldb en Gohttps://github.com/syndtr/goleveldb
qmgoBiblioteca de operación de MongoDB de código abierto por Qiniu Cloudhttps://github.com/qiniu/qmgo
mongo-go-driverControlador oficial de MongoDBhttps://github.com/mongodb/mongo-go-driver
rqliteBase de datos relacional distribuida ligera basada en sqlitehttps://github.com/rqlite/rqlite/
go-mysqlUn conjunto de herramientas potente para MySQLhttps://github.com/go-mysql-org/go-mysql
go-mysql-elasticsearchHerramienta para sincronizar datos de MySQL a Elasticsearchhttps://github.com/go-mysql-org/go-mysql-elasticsearch
gofoundMotor de búsqueda de texto completo de nivel empresarial para una sola máquinahttps://github.com/sea-team/gofound
bleveBiblioteca de búsqueda de texto completohttps://github.com/blevesearch/bleve

Serialización

NombreDescripciónRepositorio
go-iniBiblioteca de serialización de archivos inihttps://github.com/go-ini/ini
sonicBiblioteca de serialización JSON de alto rendimiento de código abierto por ByteDancehttps://github.com/bytedance/sonic
easyjsonBiblioteca de serialización JSON rápidahttps://github.com/mailru/easyjson
gjsonObtención rápida de valores JSON por clave, no es una biblioteca de serialización tradicionalhttps://github.com/tidwall/gjson
go-yamlBiblioteca de serialización YAMLhttps://github.com/go-yaml/yaml
go-tomlBiblioteca de serialización TOMLhttps://github.com/pelletier/go-toml
propertiesBiblioteca de serialización de propertieshttps://github.com/magiconair/properties
viperSoporta serialización de múltiples formatos de datos, también es un gestor de configuraciónhttps://github.com/spf13/viper
configorSerializador de múltiples formatos de datos escrito por el autor de gorm, gestor de configuraciónhttps://github.com/jinzhu/configor

Línea de Comandos

NombreDescripciónRepositorio
pflagPaquete de flags estilo POSIX/GNUhttps://github.com/spf13/pflag
go-flagsAnalizador de parámetros de línea de comandoshttps://github.com/jessevdk/go-flags
cobraAndamio moderno para construir programas de línea de comandoshttps://github.com/spf13/cobra
dimiro1/bannerBiblioteca para construir banners estéticoshttps://github.com/dimiro1/banner
go-prettyTablas, texto y barras de progreso estéticos para línea de comandoshttps://github.com/jedib0t/go-pretty
progressbarBarra de progreso segura para hilos en línea de comandoshttps://github.com/schollz/progressbar
go-ansiUtilidades de secuencias de escape ANSI portátiles para Windows en Gohttps://github.com/k0kubun/go-ansi
go-isattyBiblioteca para determinar si es una ttyhttps://github.com/mattn/go-isatty

Compresión y Descompresión

NombreDescripciónRepositorio
klauspost/compressOptimización y mejora de la biblioteca estándar compresshttps://github.com/klauspost/compress
alexmullins/zipRama fork de la biblioteca estándar archive/zip, soporta contraseñashttps://github.com/alexmullins/zip
mholt/archiverBiblioteca de compresión y descompresión que soporta muchos formatos (muy recomendada personalmente)https://github.com/mholt/archiver
go-carImplementación de archivos de archivo CAR en Gohttps://github.com/ipld/go-car
go-unarrUna biblioteca de compresión y descompresiónhttps://github.com/gen2brain/go-unarr
xzBiblioteca pura en Golang para leer y escribir archivos comprimidos xzhttps://github.com/ulikunitz/xz

Fecha y Hora

NombreDescripciónRepositorio
carbonBiblioteca de procesamiento de fecha y horahttps://github.com/golang-module/carbon
robfig/cronBiblioteca de tareas programadashttps://pkg.go.dev/github.com/robfig/cron/v3
gronBiblioteca de tareas programadashttps://github.com/roylee0704/gron
jobrunnerFramework de tareas programadas asíncronashttps://github.com/bamzi/jobrunner
dataparsePuede analizar cadenas de tiempo sin conocer el formatohttps://github.com/araddon/dateparse
jinzhu/nowBiblioteca de herramientas de fechahttps://github.com/jinzhu/now

Inyección de Dependencias

NombreDescripciónRepositorio
digBiblioteca de inyección de dependencias de código abierto por Uber, basada en reflexiónhttps://darjun.github.io/2020/02/22/godailylib/dig/
wireBiblioteca de inyección de dependencias de código abierto por Google, basada en generación de códigohttps://github.com/google/wire
injectHerramienta de inyección de dependenciashttps://github.com/codegangsta/inject
diContenedor de inyección de dependenciashttps://github.com/sarulabs/di

Geolocalización

NombreDescripciónRepositorio
geoip2-golangConversión de IP a información geográficahttps://github.com/oschwald/geoip2-golang
ip2location-goConversión de IP a información geográficahttps://github.com/ip2location/ip2location-go

Frameworks de Web Scraping

NombreDescripciónRepositorio
collyFramework de scraping simple y potentehttps://github.com/gocolly/colly
goquerySimilar a jQueryhttps://github.com/PuerkitoBio/goquery

Herramientas de Red

NombreDescripciónRepositorio
gentlemanCliente HTTP impulsado por plugins y extensiblehttps://github.com/h2non/gentleman
restyCliente HTTP RESTfulhttps://pkg.go.dev/github.com/go-resty/resty/v2
gopeedGestor de descargas moderno que soporta todas las plataformas, basado en Go y Flutterhttps://github.com/GopeedLab/gopeed

Correo Electrónico

NombreDescripciónRepositorio
jordan-wright/emailBiblioteca de envío de correo robusta y flexiblehttps://github.com/jordan-wright/email
gomailBiblioteca de envío de correohttps://github.com/go-gomail/gomail
go-simple-mailBiblioteca de envío de correo simplehttps://github.com/xhit/go-simple-mail
go-mailBiblioteca de envío de correo fácil de usar y completahttps://github.com/wneessen/go-mail
email-verifierVerifica si un correo es válido sin necesidad de enviar correoshttps://github.com/AfterShip/email-verifier
maddyServidor de correo modularhttps://github.com/foxcpp/maddy
moxServidor de correo auto-alojado de código abierto, completo y de alto mantenimientohttps://github.com/mjl-/mox
hermesBiblioteca de generación de plantillas de correohttps://github.com/matcornic/hermes
listmonkGestión de listas de correo de alto rendimiento, auto-alojada y visualhttps://github.com/knadh/listmonk
go-smtpCliente y servidor SMTP escrito en Gohttps://github.com/emersion/go-smtp
go-imapCliente y servidor IMAP escrito en Gohttps://github.com/emersion/go-imap

Desarrollo de Juegos

NombreDescripciónRepositorio
ebitengineUn motor de juegos 2D súper simplehttps://github.com/hajimehoshi/ebiten
Azul3DUn motor de juegos 3D escrito en Gohttps://github.com/azul3d/engine
engoMotor de juegos 2D de código abierto escrito en Gohttps://github.com/EngoEngine/engo
g3n/engineMotor de juegos 3D en Gohttps://github.com/g3n/engine
gonetUn framework de servidor de juegoshttps://github.com/xtaci/gonet
leafFramework de servidor de juegoshttps://github.com/name5566/leaf
cloud-gameServicio de juegos en la nube basado en webhttps://github.com/giongto35/cloud-game

GUI

NombreDescripciónRepositorio
fyneKit de desarrollo de GUI multiplataforma (realmente tiene algo)https://github.com/fyne-io/fyne
go-flutterEscribir Flutter con Gohttps://github.com/go-flutter-desktop/go-flutter
WailsPuede considerarse como una alternativa rápida y ligera a Electron para Gohttps://github.com/wailsapp/wails

Interacción con el Sistema

NombreDescripciónRepositorio
gopsutilObtención de información del sistema operativo, compatible con sistemas principaleshttps://github.com/shirou/gopsutil
flockBloqueo de archivos basado en llamadas del sistema operativohttps://github.com/gofrs/flock
sysBiblioteca oficial de interacción con el sistema operativohttps://cs.opensource.google/go/x/sys

Interacción entre Lenguajes

NombreDescripciónRepositorio
gopher-luaMáquina virtual Lua escrita en Gohttps://github.com/yuin/gopher-lua
go-luaMáquina virtual Lua escrita en Gohttps://github.com/Shopify/go-lua
gojaSoporta ES5.1+https://github.com/dop251/goja
tengoTengo es un lenguaje de scripting Go pequeño, dinámico, rápido y segurohttps://github.com/d5/tengo
gobyUn lenguaje de scripting interpretado inspirado en Ruby e implementado en Gohttps://github.com/goby-lang/goby
go+Lenguaje de scripting de código abierto por Qiniu Cloud, puede interactuar sin problemas con Go, también conocido como lenguaje Qhttps://github.com/goplus/gop
go-pythonGo llama a cpython2https://github.com/sbinet/go-python
go-python3Go llama a cpython3https://github.com/DataDog/go-python3

Procesamiento de Imágenes

NombreDescripciónRepositorio
plotUna biblioteca de gráficos, usada principalmente para visualización de datoshttps://github.com/gonum/plot
ggBiblioteca de gráficos 2Dhttps://github.com/fogleman/gg
gocvSoporta OpenCV 4+https://github.com/hybridgroup/gocv
imagingUna biblioteca de procesamiento de imágenes simplehttps://github.com/disintegration/imaging

Procesamiento de Texto

NombreDescripciónRepositorio
valeHerramienta de corrección de texto con conciencia gramaticalhttps://github.com/errata-ai/vale

Autenticación y Autorización

NombreDescripciónRepositorio
casbinBiblioteca de gestión de permisos flexible y potentehttps://github.com/casbin/casbin
openfgaBiblioteca de permisos/autorización de alto rendimiento, originada en Google Zanzibarhttps://github.com/openfga/openfga

Generación de Código

NombreDescripciónRepositorio
jenniferBiblioteca de generación de códigohttps://github.com/dave/jennifer

Procesamiento de Expresiones Regulares

NombreDescripciónRepositorio
commonregxUna biblioteca que recopila expresiones regulares comuneshttps://github.com/mingrammer/commonregex

Procesamiento de Archivos

NombreDescripciónRepositorio
fileboxBiblioteca de herramientas de operación de archivoshttps://github.com/dstgo/filebox
sizeConversión rápida entre tamaño de archivo y cadenahttps://github.com/dstgo/size
checksumUna biblioteca para calcular firmas hash de archivoshttps://github.com/codingsince1985/checksum
pdfcpuProcesador de PDFhttps://github.com/pdfcpu/pdfcpu
uniofficeBiblioteca de procesamiento de Officehttps://github.com/unidoc/unioffice
gooxmlBiblioteca de procesamiento de Officehttps://github.com/carmel/gooxml
excelizeBiblioteca de procesamiento de Excelhttps://github.com/360EntSecGroup-Skylar/excelize

Herramientas Generales

NombreDescripciónRepositorio
lancetBiblioteca de herramientas multifuncional, similar al paquete common de Javahttps://github.com/duke-git/lancet
bytebufferpoolPool de búfer de byteshttps://github.com/valyala/bytebufferpool

Frameworks de Desarrollo

NombreDescripciónRepositorio
goframeFramework de desarrollo Go empresarial modernohttps://github.com/gogf/gf

Protocolos de Consenso

NombreDescripciónRepositorio
hashicorp/raftBiblioteca raft de código abierto por Consulhttps://github.com/hashicorp/raft
hashicorp/memberlistBiblioteca gossip de código abierto por Consulhttps://github.com/hashicorp/memberlist
etcd-io/raftBiblioteca raft de código abierto por etcdhttps://github.com/etcd-io/raft

OCR

NombreDescripciónRepositorio
gosseractBiblioteca OCR que usa la biblioteca Tesseract C++https://github.com/otiai10/gosseract

Golang editado por www.golangdev.cn