Skip to content

Grande Raccolta di Librerie Open Source Go

Raccogliamo alcune librerie e framework open source di terze parti per Go e li organizziamo per facilitare la navigazione. Siamo anche lieti di accettare PR per aggiungere nuovi progetti.

TIP

L'ordine di presentazione non rappresenta una classifica. La qualità d'uso deve essere valutata in base all'esperienza effettiva.

Framework Web

NomeDescrizioneRepository
ginIl framework web più classicohttps://github.com/gin-gonic/gin
beegoFramework web sviluppato da sviluppatori cinesihttps://github.com/beego/beego
irisNoto come il framework web più velocehttps://github.com/kataras/iris
echoFramework web minimalista ad alte prestazionihttps://github.com/labstack/echo
gojiFramework web concisohttps://github.com/zenazn/goji
revelFramework web full-stack ad alta disponibilitàhttps://github.com/revel/revel
buffaloFramework web che consente di costruire facilmente progetti full-stackhttps://github.com/gobuffalo/buffalo
hertzFramework HTTP per microservizi con alte prestazioni e forte scalabilità (open source di ByteDance)https://github.com/cloudwego/hertz
dotwebUn semplice micro framework webhttps://github.com/devfeel/dotweb
fiberFramework Web in stile Node.js Expresshttps://github.com/gofiber/fiber

ORM

NomeDescrizioneRepository
gormLibreria ORM user-friendly per sviluppatorihttps://github.com/go-gorm/gorm
xormORM semplice e potentehttps://gitea.com/xorm/xorm
entORM open source di Facebookhttps://github.com/ent/ent
sqlxPotente estensione per la libreria sqlhttps://github.com/jmoiron/sqlx
beego/ormORM integrato in beegohttps://github.com/astaxie/beego/tree/master/orm
relORM moderno ed estensibilehttps://github.com/go-rel/rel
bunORM con priorità SQLhttps://github.com/uptrace/bun

Framework per Microservizi

NomeDescrizioneRepository
kratosFramework per microservizi cloud-native (open source di Bilibili)https://github.com/go-kratos/kratos
go-kitUna libreria di strumenti per lo sviluppo di microservizihttps://github.com/go-kit/kit
kitexFramework per microservizi ad alte prestazioni e altamente estensibile (open source di ByteDance)https://github.com/cloudwego/kitex
go-zeroFramework per microservizi cloud-native (open source di Qiniu Cloud)https://github.com/zeromicro/go-zero
go-microUn framework per microservizi stranierohttps://github.com/go-micro/go-micro
kiteFramework per microservizi (non aggiornato da molto tempo)https://github.com/koding/kite
dubbo-goImplementazione Go di Java Dubbo (open source di Alibaba)https://github.com/apache/dubbo-go
tarsgoImplementazione Go di Tars (open source di Tencent)https://github.com/TarsCloud/TarsGo
juptiersFramework per microservizi orientato alla governance (open source di Douyu)https://github.com/douyu/jupiter
redsyncLock distribuito Redishttps://github.com/go-redsync/redsync

Easter Egg

Jupiter di Douyu prende il nome da Zeus, il re degli dei, mentre Kratos di Bilibili prende il nome da Kratos, il dio della guerra, che in seguito uccise Zeus, il re degli dei.

Componenti di Logging

NomeDescrizioneRepository
logrusLibreria di logging strutturatohttps://github.com/sirupsen/logrus
zapLibreria di logging ad alte prestazioni open source di Uberhttps://github.com/uber-go/zap
glogLogging con livelli gerarchicihttps://github.com/golang/glog
zerologLogging JSON con allocazione di memoria zerohttps://github.com/rs/zerolog
apex/logLibreria di logging strutturatohttps://github.com/apex/log
lumberjackLibreria per la rotazione dei log, supporta rotazione per dimensione, data e compressione filehttps://github.com/natefinch/lumberjack

Componenti di Testing

NomeDescrizioneRepository
testifyIl pacchetto di strumenti di testing più popolarehttps://github.com/stretchr/testify
ginkgoFramework di testing modernohttps://github.com/onsi/ginkgo
ramsqlMotore SQL in memoria, utilizzato principalmente per test unitari SQLhttps://github.com/proullon/ramsql
go-sqlmockSQL Mock per testinghttps://github.com/DATA-DOG/go-sqlmock
goconveyTesting con visualizzazione nel browserhttps://github.com/smartystreets/goconvey
go-stress-testingStrumento di stress testinghttps://github.com/link1st/go-stress-testing
xgoFramework di stub testing per Go, implementato riscrivendo il codice durante la compilazionehttps://github.com/xhd2015/xgo
gomonkeyFramework di stub testing per Go, implementato modificando l'indirizzo della funzionehttps://github.com/agiledragon/gomonkey

Elaborazione Dati

NomeDescrizioneRepository
mapstructureConversione reciproca tra map e structhttps://github.com/mitchellh/mapstructure
castConversione di tipi di dati semplice e convenientehttps://github.com/spf13/cast
deepcopyCopia profondahttps://github.com/mohae/deepcopy
copierCopia valori tra struct con campi con lo stesso nomehttps://github.com/jinzhu/copier
go-pinyinConversione da caratteri cinesi a pinyinhttps://github.com/mozillazg/go-pinyin
go-streamsElaborazione dati in streaminghttps://github.com/reugn/go-streams
streamElaborazione in streaminghttps://github.com/xyctruth/stream
go-humanizeConverte i dati in formati leggibili dall'uomohttps://github.com/dustin/go-humanize
unisegSegmentazione testo Unicode, word wrap e calcolo larghezza stringhe in Gohttps://github.com/rivo/uniseg

Validazione Dati

NomeDescrizioneRepository
go-playground/validator/v10Validatore di datihttps://github.com/go-playground/validator
go-cmpLibreria open source di Google per confrontare valorihttps://github.com/google/go-cmp
ozzo-validationLibreria di validazione dati basata su regolehttps://github.com/go-ozzo/ozzo-validation
go-tagexprLibreria di validazione tag structhttps://github.com/bytedance/go-tagexpr

Strutture Dati

NomeDescrizioneRepository
godsImplementazione di strutture dati comunihttps://github.com/emirpasic/gods
go-datastructuresImplementazione di strutture dati comunihttps://github.com/Workiva/go-datastructures
bisetImplementazione di bitset in Gohttps://github.com/bits-and-blooms/bitset
bloomImplementazione di bloom filter in Gohttps://github.com/bits-and-blooms/bloom
dequeImplementazione di coda double-ended ad alte prestazionihttps://github.com/edwingeng/deque
concurrent-mapImplementazione di map segmentate thread-safehttps://github.com/orcaman/concurrent-map
samber/loLibreria di elaborazione dati in stile Lodash, supporta genericshttps://github.com/samber/lo
google/btreeLibreria BTree implementata da Google, supporta genericshttps://github.com/google/btree
gostlLibreria di strutture dati simile a C++ STLhttps://github.com/liyue201/gostl

Calcolo Matematico

NomeDescrizioneRepository
gonumAnalogo a numpyhttps://github.com/gonum/gonum
decimalLibreria per operazioni con numeri in virgola mobile ad alta precisionehttps://github.com/shopspring/decimal
crunchUna libreria che semplifica le operazioni su byte e bithttps://github.com/superwhiskers/crunch
math-engineLibreria motore per l'analisi e il calcolo di espressioni matematichehttps://github.com/dengsgo/math-engine

Motori di Template

NomeDescrizioneRepository
pongo2Motore di template in stile Djangohttps://github.com/flosch/pongo2
aceMotore di template htmlhttps://github.com/yosssi/ace
mustacheImplementazione Go di mustachehttps://github.com/hoisie/mustache
heroMotore di template potente e velocehttps://github.com/shiyanhui/hero
quictemplateCome suggerisce il nome, motore di template ad alte prestazionihttps://github.com/valyala/quicktemplate
amberMotore di template derivato da HAML e Jadehttps://github.com/eknkc/amber

Componenti di Caching

NomeDescrizioneRepository
golang-lruLRU thread-safe e cache LRU 2Qhttps://github.com/hashicorp/golang-lru
ttlcacheCache in memoria, supporta TTL e genericshttps://github.com/jellydator/ttlcache
gocacheGestore middleware per cachehttps://github.com/eko/gocache
go-cacheCache in memoria, adatta per applicazioni single-node, supporta TTLhttps://github.com/patrickmn/go-cache
ristrettoCache in memoria ad alte prestazionihttps://github.com/dgraph-io/ristretto
bigcacheCache efficiente per chiavi di grandi dimensioni basata su memoriahttps://github.com/allegro/bigcache

Database e Driver

NomeDescrizioneRepository
modernc.org/sqliteDriver sqlite, scritto in puro go, non richiede cgohttps://gitlab.com/cznic/sqlite
mattn/go-sqlite3Driver sqlite, richiede cgohttps://github.com/mattn/go-sqlite3
denisenkom/go-mssqldbDriver sqlserver, non molto aggiornato, si consiglia di usare la versione Microsofthttps://github.com/denisenkom/go-mssqldb
microsoft/go-mssqldbDriver sqlserver, nuovo branch fork e mantenuto da Microsofthttps://github.com/microsoft/go-mssqldb
pgxDriver postgreSQLhttps://github.com/jackc/pgx/
mysqlDriver mysqlhttps://github.com/go-sql-driver/mysql
oci-go-sdkDriver ufficiale oraclehttps://github.com/oracle/oci-go-sdk
go-oraDriver oracle, scritto in puro gohttps://github.com/sijms/go-ora
badgerDatabase kv embedded, basato su LSMhttps://github.com/dgraph-io/badger
boltdbDatabase kv embedded, basato su B+Treehttps://github.com/boltdb/bolt
goleveldbImplementazione Go di leveldbhttps://github.com/syndtr/goleveldb
qmgoLibreria per operazioni mongodb open source di Qiniu Cloudhttps://github.com/qiniu/qmgo
mongo-go-driverDriver ufficiale Go per mongodbhttps://github.com/mongodb/mongo-go-driver
rqliteDatabase relazionale distribuito leggero basato su sqlitehttps://github.com/rqlite/rqlite/
go-mysqlUna potente raccolta di strumenti MySQLhttps://github.com/go-mysql-org/go-mysql
go-mysql-elasticsearchStrumento per sincronizzare dati MySQL su Elasticsearchhttps://github.com/go-mysql-org/go-mysql-elasticsearch
gofoundMotore di indicizzazione full-text single-node per miliardi di documentihttps://github.com/sea-team/gofound
bleveLibreria di ricerca full-texthttps://github.com/blevesearch/bleve

Serializzazione

NomeDescrizioneRepository
go-iniLibreria di serializzazione per file inihttps://github.com/go-ini/ini
sonicLibreria di serializzazione json ad alte prestazioni open source di ByteDancehttps://github.com/bytedance/sonic
easyjsonLibreria di serializzazione json velocehttps://github.com/mailru/easyjson
gjsonRecupero rapido di valori da chiavi json, non una libreria di serializzazione tradizionalehttps://github.com/tidwall/gjson
go-yamlLibreria di serializzazione yamlhttps://github.com/go-yaml/yaml
go-tomlLibreria di serializzazione tomlhttps://github.com/pelletier/go-toml
propertiesLibreria di serializzazione propertieshttps://github.com/magiconair/properties
viperSupporta la serializzazione di più formati di dati, è anche un gestore di configurazionihttps://github.com/spf13/viper
configorSerializzatore di più formati di dati scritto dall'autore di gorm, gestore di configurazionihttps://github.com/jinzhu/configor

Riga di Comando

NomeDescrizioneRepository
pflagPacchetto flag in stile POSIX/GNUhttps://github.com/spf13/pflag
go-flagsAnalizzatore di parametri per riga di comandohttps://github.com/jessevdk/go-flags
cobraScaffold moderno per costruire programmi da riga di comandohttps://github.com/spf13/cobra
dimiro1/bannerLibreria per costruire banner esteticamente gradevolihttps://github.com/dimiro1/banner
go-prettyTabelle, testo e barre di progresso esteticamente gradevoli per riga di comandohttps://github.com/jedib0t/go-pretty
progressbarBarra di progresso per riga di comando thread-safehttps://github.com/schollz/progressbar
go-ansiUtility portabile per sequenze di escape ANSI per Windows per Gohttps://github.com/k0kubun/go-ansi
go-isattyLibreria per determinare se si tratta di un ttyhttps://github.com/mattn/go-isatty

Compressione e Decompressione

NomeDescrizioneRepository
klauspost/compressOttimizzazione e miglioramento della libreria standard compresshttps://github.com/klauspost/compress
alexmullins/zipFork della libreria standard archive/zip, supporta passwordhttps://github.com/alexmullins/zip
mholt/archiverLibreria di compressione e decompressione che supporta molti formati (altamente raccomandata personalmente)https://github.com/mholt/archiver
go-carImplementazione Go di file di archivio CARhttps://github.com/ipld/go-car
go-unarrUna libreria di compressione e decompressionehttps://github.com/gen2brain/go-unarr
xzLibreria Go pura per leggere e scrivere file compressi xzhttps://github.com/ulikunitz/xz

Data e Ora

NomeDescrizioneRepository
carbonLibreria per la gestione di date e orarihttps://github.com/golang-module/carbon
robfig/cronLibreria per attività pianificatehttps://pkg.go.dev/github.com/robfig/cron/v3
gronLibreria per attività pianificatehttps://github.com/roylee0704/gron
jobrunnerFramework per attività pianificate asincronehttps://github.com/bamzi/jobrunner
dataparseAnalizza stringhe di tempo senza conoscere il formatohttps://github.com/araddon/dateparse
jinzhu/nowLibreria di utility per datehttps://github.com/jinzhu/now

Dependency Injection

NomeDescrizioneRepository
digLibreria di dependency injection open source di Uber, basata su reflectionhttps://darjun.github.io/2020/02/22/godailylib/dig/
wireLibreria di dependency injection open source di Google, basata su code generationhttps://github.com/google/wire
injectStrumento di dependency injectionhttps://github.com/codegangsta/inject
diContainer di dependency injectionhttps://github.com/sarulabs/di

Geolocalizzazione

NomeDescrizioneRepository
geoip2-golangConversione IP in informazioni geografichehttps://github.com/oschwald/geoip2-golang
ip2location-goConversione IP in informazioni geografichehttps://github.com/ip2location/ip2location-go

Framework per Web Scraping

NomeDescrizioneRepository
collyFramework per web scraping semplice e potentehttps://github.com/gocolly/colly
goquerySimile a jQueryhttps://github.com/PuerkitoBio/goquery

Strumenti di Rete

NomeDescrizioneRepository
gentlemanClient http plugin-driven ed estensibilehttps://github.com/h2non/gentleman
restyClient http restfulhttps://pkg.go.dev/github.com/go-resty/resty/v2
gopeedModerno download manager che supporta tutte le piattaforme, basato su go e flutterhttps://github.com/GopeedLab/gopeed

Email

NomeDescrizioneRepository
jordan-wright/emailLibreria per l'invio di email robusta e flessibilehttps://github.com/jordan-wright/email
gomailLibreria per l'invio di emailhttps://github.com/go-gomail/gomail
go-simple-mailLibreria semplice per l'invio di emailhttps://github.com/xhit/go-simple-mail
go-mailLibreria completa e facile da usare per l'invio di emailhttps://github.com/wneessen/go-mail
email-verifierVerifica se un'email è valida senza inviare emailhttps://github.com/AfterShip/email-verifier
maddyServer di email modularehttps://github.com/foxcpp/maddy
moxServer di email open source completo, altamente manutenibile e self-hostedhttps://github.com/mjl-/mox
hermesLibreria per generare template di emailhttps://github.com/matcornic/hermes
listmonkGestione di mailing list ad alte prestazioni, self-hosted e con interfaccia visivahttps://github.com/knadh/listmonk
go-smtpClient e server SMTP scritti in Gohttps://github.com/emersion/go-smtp
go-imapClient e server IMAP scritti in Gohttps://github.com/emersion/go-imap

Sviluppo di Giochi

NomeDescrizioneRepository
ebitengineUn motore per giochi 2d super semplicehttps://github.com/hajimehoshi/ebiten
Azul3DUn motore per giochi 3d scritto in Gohttps://github.com/azul3d/engine
engoMotore per giochi 2d open source scritto in Gohttps://github.com/EngoEngine/engo
g3n/engineMotore per giochi 3d in Gohttps://github.com/g3n/engine
gonetUn framework per server di giochihttps://github.com/xtaci/gonet
leafFramework per server di giochihttps://github.com/name5566/leaf
cloud-gameServizio di cloud gaming basato su webhttps://github.com/giongto35/cloud-game

GUI

NomeDescrizioneRepository
fyneToolkit per sviluppo GUI cross-platform (davvero valido)https://github.com/fyne-io/fyne
go-flutterScrivi Flutter con Gohttps://github.com/go-flutter-desktop/go-flutter
WailsPuò essere considerato come un'alternativa Electron veloce e leggera per Gohttps://github.com/wailsapp/wails

Interazione con il Sistema

NomeDescrizioneRepository
gopsutilOttieni informazioni sul sistema operativo, compatibile con i sistemi principalihttps://github.com/shirou/gopsutil
flockLock su file basata su chiamate di sistema operativohttps://github.com/gofrs/flock
sysLibreria ufficiale per l'interazione con il sistema operativohttps://cs.opensource.google/go/x/sys

Interazione tra Linguaggi

NomeDescrizioneRepository
gopher-luaMacchina virtuale Lua scritta in Gohttps://github.com/yuin/gopher-lua
go-luaMacchina virtuale Lua scritta in Gohttps://github.com/Shopify/go-lua
gojaSupporta ES5.1+https://github.com/dop251/goja
tengoTengo è un linguaggio di scripting Go piccolo, dinamico, veloce e sicurohttps://github.com/d5/tengo
gobyUn linguaggio di scripting interpretato ispirato a Ruby e implementato in Gohttps://github.com/goby-lang/goby
go+Linguaggio di scripting open source di Qiniu Cloud, può interagire senza soluzione di continuità con Go, noto anche come linguaggio Qhttps://github.com/goplus/gop
go-pythonGo chiama CPython2https://github.com/sbinet/go-python
go-python3Go chiama CPython3https://github.com/DataDog/go-python3

Elaborazione di Immagini

NomeDescrizioneRepository
plotUna libreria di plotting, utilizzata principalmente per la visualizzazione di datihttps://github.com/gonum/plot
ggLibreria di disegno 2dhttps://github.com/fogleman/gg
gocvSupporta OpenCV 4+https://github.com/hybridgroup/gocv
imagingUna semplice libreria di elaborazione immaginihttps://github.com/disintegration/imaging

Elaborazione di Testo

NomeDescrizioneRepository
valeStrumento di correzione testo con consapevolezza grammaticalehttps://github.com/errata-ai/vale

Autenticazione e Autorizzazione

NomeDescrizioneRepository
casbinLibreria di gestione permessi flessibile e potentehttps://github.com/casbin/casbin
openfgaLibreria di permessi/autorizzazione ad alte prestazioni, derivata da Google Zanzibarhttps://github.com/openfga/openfga

Generazione di Codice

NomeDescrizioneRepository
jenniferLibreria di generazione codicehttps://github.com/dave/jennifer

Elaborazione di Espressioni Regolari

NomeDescrizioneRepository
commonregxUna libreria che raccoglie espressioni regolari comunemente utilizzatehttps://github.com/mingrammer/commonregex

Elaborazione di File

NomeDescrizioneRepository
fileboxLibreria di utility per operazioni su filehttps://github.com/dstgo/filebox
sizeConversione rapida tra dimensioni file e stringhehttps://github.com/dstgo/size
checksumUna libreria per calcolare firme hash di filehttps://github.com/codingsince1985/checksum
pdfcpuProcessore PDFhttps://github.com/pdfcpu/pdfcpu
uniofficeLibreria per elaborazione Officehttps://github.com/unidoc/unioffice
gooxmlLibreria per elaborazione Officehttps://github.com/carmel/gooxml
pdfcpuLibreria per elaborazione PDFhttps://github.com/pdfcpu/pdfcpu
excelizeLibreria per elaborazione Excelhttps://github.com/360EntSecGroup-Skylar/excelize

Strumenti Generici

NomeDescrizioneRepository
lancetLibreria di utility multifunzionale, analoga al pacchetto common di Javahttps://github.com/duke-git/lancet
bytebufferpoolPool di buffer di bytehttps://github.com/valyala/bytebufferpool

Framework di Sviluppo

NomeDescrizioneRepository
goframeModerno framework di sviluppo enterprise per Gohttps://github.com/gogf/gf

Protocolli di Consenso

NomeDescrizioneRepository
hashicorp/raftLibreria raft open source di Consulhttps://github.com/hashicorp/raft
hashicorp/memberlistLibreria gossip open source di Consulhttps://github.com/hashicorp/memberlist
etcd-io/raftLibreria raft open source di Etcdhttps://github.com/etcd-io/raft

OCR

NomeDescrizioneRepository
gosseractLibreria OCR che utilizza la libreria C++ Tesseracthttps://github.com/otiai10/gosseract

Golang by www.golangdev.cn edit