Skip to content

Grande collection de bibliothèques open-source Go

Collecte et organisation de bibliothèques tierces et frameworks go open-source pour faciliter la navigation ultérieure, les PR pour ajouter de nouveaux projets sont également les bienvenues.

TIP

L'ordre n'indique pas le classement, la qualité d'utilisation doit être jugée en fonction de l'expérience réelle.

Frameworks Web

NomDescriptionDépôt
ginLe framework web le plus classiquehttps://github.com/gin-gonic/gin
beegoFramework web développé par des Chinoishttps://github.com/beego/beego
irisPrétendu être le framework web le plus rapidehttps://github.com/kataras/iris
echoFramework web minimaliste et haute performancehttps://github.com/labstack/echo
gojiFramework web concishttps://github.com/zenazn/goji
revelFramework web full-stack hautement disponiblehttps://github.com/revel/revel
buffaloFramework web permettant de construire facilement des projets full-stackhttps://github.com/gobuffalo/buffalo
hertzFramework HTTP microservice haute performance et forte extensibilité (open-source par ByteDance)https://github.com/cloudwego/hertz
dotwebUn micro framework web simplehttps://github.com/devfeel/dotweb
fiberFramework Web style Node.js Expresshttps://github.com/gofiber/fiber

ORM

NomDescriptionDépôt
gormBibliothèque ORM conviviale pour les développeurshttps://github.com/go-gorm/gorm
xormORM simple et puissanthttps://gitea.com/xorm/xorm
entORM open-source par FaceBookhttps://github.com/ent/ent
sqlxExtension puissante pour la bibliothèque sqlhttps://github.com/jmoiron/sqlx
beego/ormORM intégré de beegohttps://github.com/astaxie/beego/tree/master/orm
relORM moderne extensiblehttps://github.com/go-rel/rel
bunORM axé sur SQLhttps://github.com/uptrace/bun

Frameworks Microservices

NomDescriptionDépôt
kratosFramework microservices cloud-native (open-source par Bilibili)https://github.com/go-kratos/kratos
go-kitUne bibliothèque d'outils de développement de microserviceshttps://github.com/go-kit/kit
kitexFramework microservices haute performance et haute extensibilité (open-source par ByteDance)https://github.com/cloudwego/kitex
go-zeroFramework microservices cloud-native (open-source par Qiniu Cloud)https://github.com/zeromicro/go-zero
go-microUn framework microservices étrangerhttps://github.com/go-micro/go-micro
kiteFramework microservices (pas mis à jour depuis longtemps)https://github.com/koding/kite
dubbo-goImplémentation go de java dubbo (open-source par Alibaba)https://github.com/apache/dubbo-go
tarsgoImplémentation go de tars (open-source par Tencent)https://github.com/TarsCloud/TarsGo
juptiersFramework microservices orienté gouvernance (open-source par Douyu)https://github.com/douyu/jupiter
redsyncVerrou distribué redishttps://github.com/go-redsync/redsync

Easter Egg

jupiter de Douyu est le nom de Zeus, le roi des dieux, et kratos de Bilibili est le nom de Kratos le dieu de la guerre, qui a plus tard tué Zeus le roi des dieux.

Composants de Journalisation

NomDescriptionDépôt
logrusBibliothèque de journaux structuréshttps://github.com/sirupsen/logrus
zapBibliothèque de journaux haute performance open-source par uberhttps://github.com/uber-go/zap
glogJournaux d'exécution par niveauhttps://github.com/golang/glog
zerologJournaux json sans allocation mémoirehttps://github.com/rs/zerolog
apex/logBibliothèque de journaux structuréshttps://github.com/apex/log
lumberjackBibliothèque de rotation de journaux, prend en charge la rotation par taille, par date, la compression de fichiershttps://github.com/natefinch/lumberjack

Composants de Test

NomDescriptionDépôt
testifyLe package d'outils de test le plus populairehttps://github.com/stretchr/testify
ginkgoFramework de test modernehttps://github.com/onsi/ginkgo
ramsqlMoteur SQL en mémoire, principalement utilisé pour les tests unitaires SQLhttps://github.com/proullon/ramsql
go-sqlmockSQL Mock pour les testshttps://github.com/DATA-DOG/go-sqlmock
goconveyTests visualisés dans le navigateurhttps://github.com/smartystreets/goconvey
go-stress-testingOutil de test de pressionhttps://github.com/link1st/go-stress-testing
xgoFramework de test de simulation go, réalisé par réécriture de code pendant la compilationhttps://github.com/xhd2015/xgo
gomonkeyFramework de test de simulation go, réalisé par modification d'adresse de fonctionhttps://github.com/agiledragon/gomonkey

Traitement de Données

NomDescriptionDépôt
mapstructureConversion mutuelle entre map et structhttps://github.com/mitchellh/mapstructure
castConversion de type de données facilehttps://github.com/spf13/cast
deepcopyCopie profondehttps://github.com/mohae/deepcopy
copierCopie de valeurs entre structs avec des champs de même nomhttps://github.com/jinzhu/copier
go-pinyinConversion de caractères chinois en pinyinhttps://github.com/mozillazg/go-pinyin
go-streamsTraitement de données en fluxhttps://github.com/reugn/go-streams
streamTraitement en fluxhttps://github.com/xyctruth/stream
go-humanizeConvertit les données en format lisible par l'hommehttps://github.com/dustin/go-humanize
unisegSegmentation de texte Unicode, habillage de mots et calcul de largeur de chaîne en Gohttps://github.com/rivo/uniseg

Validation de Données

NomDescriptionDépôt
go-playground/validator/v10Validateur de donnéeshttps://github.com/go-playground/validator
go-cmpBibliothèque de comparaison de valeurs open-source par Googlehttps://github.com/google/go-cmp
ozzo-validationBibliothèque de validation de données basée sur des règleshttps://github.com/go-ozzo/ozzo-validation
go-tagexprBibliothèque de validation de tags de structhttps://github.com/bytedance/go-tagexpr

Structures de Données

NomDescriptionDépôt
godsImplémentation de structures de données couranteshttps://github.com/emirpasic/gods
go-datastructuresImplémentation de structures de données couranteshttps://github.com/Workiva/go-datastructures
bisetImplémentation de bitsets en gohttps://github.com/bits-and-blooms/bitset
bloomImplémentation de bloom filters en gohttps://github.com/bits-and-blooms/bloom
dequeImplémentation de file double haute performancehttps://github.com/edwingeng/deque
concurrent-mapImplémentation de map segmentée thread-safehttps://github.com/orcaman/concurrent-map
samber/loBibliothèque de traitement de données style Lodash, prend en charge les génériqueshttps://github.com/samber/lo
google/btreeBibliothèque BTree implémentée par Google, prend en charge les génériqueshttps://github.com/google/btree
gostlBibliothèque de structures de données comme C++STLhttps://github.com/liyue201/gostl

Calcul Mathématique

NomDescriptionDépôt
gonumComparable à numpyhttps://github.com/gonum/gonum
decimalBibliothèque d'opérations flottantes haute précisionhttps://github.com/shopspring/decimal
crunchUne bibliothèque simplifiant les opérations d'octets et de bitshttps://github.com/superwhiskers/crunch
math-engineBibliothèque moteur d'analyse et calcul d'expressions mathématiqueshttps://github.com/dengsgo/math-engine

Moteurs de Template

NomDescriptionDépôt
pongo2Moteur de template style Djangohttps://github.com/flosch/pongo2
aceMoteur de template htmlhttps://github.com/yosssi/ace
mustacheImplémentation de mustache en gohttps://github.com/hoisie/mustache
heroMoteur de template puissant et rapidehttps://github.com/shiyanhui/hero
quictemplateMoteur de template haute performancehttps://github.com/valyala/quicktemplate
amberMoteur de template issu de HAML et Jadehttps://github.com/eknkc/amber

Composants de Cache

NomDescriptionDépôt
golang-lruLRU thread-safe, et cache LRU 2Qhttps://github.com/hashicorp/golang-lru
ttlcacheCache en mémoire, prend en charge TTL, génériqueshttps://github.com/jellydator/ttlcache
gocacheGestionnaire de middleware de cachehttps://github.com/eko/gocache
go-cacheCache en mémoire, adapté aux applications monoposte, prend en charge TTLhttps://github.com/patrickmn/go-cache
ristrettoCache mémoire haute performancehttps://github.com/dgraph-io/ristretto
bigcacheCache de grandes clés efficace en mémoirehttps://github.com/allegro/bigcache

Bases de Données & Pilotes

NomDescriptionDépôt
modernc.org/sqlitePilote sqlite, écrit en pur go, sans besoin de cgohttps://gitlab.com/cznic/sqlite
mattn/go-sqlite3Pilote sqlite, nécessite cgohttps://github.com/mattn/go-sqlite3
denisenkom/go-mssqldbPilote sqlserver, peu mis à jour, version Microsoft recommandéehttps://github.com/denisenkom/go-mssqldb
microsoft/go-mssqldbPilote sqlserver, nouvelle branche forkée et maintenue par Microsofthttps://github.com/microsoft/go-mssqldb
pgxPilote postgreSQLhttps://github.com/jackc/pgx/
mysqlPilote mysqlhttps://github.com/go-sql-driver/mysql
oci-go-sdkPilote officiel oraclehttps://github.com/oracle/oci-go-sdk
go-oraPilote oracle, écrit en pur gohttps://github.com/sijms/go-ora
badgerBase de données kv embarquée, basée sur LSMhttps://github.com/dgraph-io/badger
boltdbBase de données kv embarquée, basée sur B+Treehttps://github.com/boltdb/bolt
goleveldbleveldb implémenté en langage gohttps://github.com/syndtr/goleveldb
qmgoBibliothèque de manipulation mongodb open-source par Qiniu Cloudhttps://github.com/qiniu/qmgo
mongo-go-driverPilote officiel mongodb pour gohttps://github.com/mongodb/mongo-go-driver
rqliteBase de données relationnelle distribuée légère basée sur sqlitehttps://github.com/rqlite/rqlite/
go-mysqlUn puissant ensemble d'outils MySQLhttps://github.com/go-mysql-org/go-mysql
go-mysql-elasticsearchOutil de synchronisation de données MySQL vers Elasticsearchhttps://github.com/go-mysql-org/go-mysql-elasticsearch
gofoundMoteur de recherche full-text单机亿级https://github.com/sea-team/gofound
bleveBibliothèque de recherche full-texthttps://github.com/blevesearch/bleve

Sérialisation

NomDescriptionDépôt
go-iniBibliothèque de sérialisation de fichiers inihttps://github.com/go-ini/ini
sonicBibliothèque de sérialisation json haute performance open-source par ByteDancehttps://github.com/bytedance/sonic
easyjsonBibliothèque de sérialisation json rapidehttps://github.com/mailru/easyjson
gjsonObtention rapide de valeurs de clés json, bibliothèque de sérialisation non traditionnellehttps://github.com/tidwall/gjson
go-yamlBibliothèque de sérialisation yamlhttps://github.com/go-yaml/yaml
go-tomlBibliothèque de sérialisation tomlhttps://github.com/pelletier/go-toml
propertiesBibliothèque de sérialisation propertieshttps://github.com/magiconair/properties
viperPrend en charge la sérialisation de multiples formats de données, également gestionnaire de configurationhttps://github.com/spf13/viper
configorSérialiseur de multiples formats de données écrit par l'auteur de gorm, gestionnaire de configurationhttps://github.com/jinzhu/configor

Ligne de Commande

NomDescriptionDépôt
pflagPackage de style de drapeau POSIX/GUNhttps://github.com/spf13/pflag
go-flagsAnalyseur de paramètres de commandehttps://github.com/jessevdk/go-flags
cobraÉchafaudage moderne de construction de programmes en ligne de commandehttps://github.com/spf13/cobra
dimiro1/bannerBibliothèque de construction de bannières esthétiqueshttps://github.com/dimiro1/banner
go-prettyTableaux, texte, barres de progression esthétiques pour ligne de commandehttps://github.com/jedib0t/go-pretty
progressbarBarre de progression en ligne de commande thread-safehttps://github.com/schollz/progressbar
go-ansiUtilitaire de séquences d'échappement ANSI portable Windows pour Gohttps://github.com/k0kubun/go-ansi
go-isattyBibliothèque pour juger ttyhttps://github.com/mattn/go-isatty

Compression & Décompression

NomDescriptionDépôt
klauspost/compressOptimisation et transformation de la bibliothèque standard compresshttps://github.com/klauspost/compress
alexmullins/zipBranche fork de la bibliothèque standard archive/zip, prend en charge les mots de passehttps://github.com/alexmullins/zip
mholt/archiverBibliothèque de compression/décompression prenant en charge de nombreux formats (personnellement très recommandé)https://github.com/mholt/archiver
go-carImplémentation go des fichiers d'archive CARhttps://github.com/ipld/go-car
go-unarrUne bibliothèque de compression/décompressionhttps://github.com/gen2brain/go-unarr
xzBibliothèque Golang pure pour lire et écrire des fichiers compressés xzhttps://github.com/ulikunitz/xz

Date et Heure

NomDescriptionDépôt
carbonBibliothèque de traitement de date et heurehttps://github.com/golang-module/carbon
robfig/cronBibliothèque de tâches planifiéeshttps://pkg.go.dev/github.com/robfig/cron/v3
gronBibliothèque de tâches planifiéeshttps://github.com/roylee0704/gron
jobrunnerFramework de tâches planifiées asynchroneshttps://github.com/bamzi/jobrunner
dataparsePeut analyser des chaînes de temps sans connaître le formathttps://github.com/araddon/dateparse
jinzhu/nowBibliothèque d'outils de datehttps://github.com/jinzhu/now

Injection de Dépendances

NomDescriptionDépôt
digBibliothèque d'injection de dépendances open-source par uber, basée sur la réflexionhttps://darjun.github.io/2020/02/22/godailylib/dig/
wireBibliothèque d'injection de dépendances open-source par Google, basée sur la génération de codehttps://github.com/google/wire
injectOutil d'injection de dépendanceshttps://github.com/codegangsta/inject
diConteneur d'injection de dépendanceshttps://github.com/sarulabs/di

Géolocalisation

NomDescriptionDépôt
geoip2-golangConversion IP en informations géographiqueshttps://github.com/oschwald/geoip2-golang
ip2location-goConversion IP en informations géographiqueshttps://github.com/ip2location/ip2location-go

Frameworks de Crawling

NomDescriptionDépôt
collyFramework de crawling simple et puissanthttps://github.com/gocolly/colly
goquerySimilaire à jqueryhttps://github.com/PuerkitoBio/goquery

Outils Réseau

NomDescriptionDépôt
gentlemanClient http piloté par plugins, extensiblehttps://github.com/h2non/gentleman
restyClient http restfulhttps://pkg.go.dev/github.com/go-resty/resty/v2
gopeedGestionnaire de téléchargement moderne supportant toutes les plateformes, basé sur go et flutterhttps://github.com/GopeedLab/gopeed

Courrier Électronique

NomDescriptionDépôt
jordan-wright/emailBibliothèque d'envoi de courrier robuste et flexiblehttps://github.com/jordan-wright/email
gomailBibliothèque d'envoi de courrierhttps://github.com/go-gomail/gomail
go-simple-mailBibliothèque d'envoi de courrier simplehttps://github.com/xhit/go-simple-mail
go-mailBibliothèque d'envoi de courrier facile à utiliser et complètehttps://github.com/wneessen/go-mail
email-verifierVérifie si une boîte mail est valide, sans envoyer de courrierhttps://github.com/AfterShip/email-verifier
maddyServeur de courrier modulairehttps://github.com/foxcpp/maddy
moxServeur de courrier auto-hébergé open-source complet, haute maintenabilitéhttps://github.com/mjl-/mox
hermesBibliothèque de génération de modèles de courrierhttps://github.com/matcornic/hermes
listmonkGestion de liste de courrier haute performance, auto-hébergée, visualiséehttps://github.com/knadh/listmonk
go-smtpClient et serveur SMTP écrit en gohttps://github.com/emersion/go-smtp
go-imapClient et serveur IMAP écrit en gohttps://github.com/emersion/go-imap

Développement de Jeux

NomDescriptionDépôt
ebitengineUn moteur de jeu 2d super simplehttps://github.com/hajimehoshi/ebiten
Azul3DUn moteur de jeu 3d écrit en gohttps://github.com/azul3d/engine
engoMoteur de jeu 2d open-source écrit en gohttps://github.com/EngoEngine/engo
g3n/engineMoteur de jeu go3dhttps://github.com/g3n/engine
gonetUn framework de serveur de jeuhttps://github.com/xtaci/gonet
leafFramework de serveur de jeuhttps://github.com/name5566/leaf
cloud-gameService de jeu cloud basé sur le webhttps://github.com/giongto35/cloud-game

GUI

NomDescriptionDépôt
fyneBoîte à outils de développement GUI multiplateforme (vraiment quelque chose)https://github.com/fyne-io/fyne
go-flutterÉcrire flutter avec gohttps://github.com/go-flutter-desktop/go-flutter
WailsPeut être considéré comme une alternative Electron rapide et légère pour Gohttps://github.com/wailsapp/wails

Interaction Système

NomDescriptionDépôt
gopsutilObtention d'informations système, compatible avec les systèmes principauxhttps://github.com/shirou/gopsutil
flockVerrou de fichier basé sur les appels systèmehttps://github.com/gofrs/flock
sysBibliothèque d'interaction système officiellehttps://cs.opensource.google/go/x/sys

Interaction Inter-langages

NomDescriptionDépôt
gopher-luaMachine virtuelle lua écrite en gohttps://github.com/yuin/gopher-lua
go-luaMachine virtuelle lua écrite en gohttps://github.com/Shopify/go-lua
gojaPrend en charge es5.1+https://github.com/dop251/goja
tengoTengo est un langage de script Go petit, dynamique, rapide et sûrhttps://github.com/d5/tengo
gobyUn langage de script interprété inspiré de ruby, implémenté en gohttps://github.com/goby-lang/goby
go+Langage de script open-source par Qiniu Cloud, peut interagir de manière transparente avec go, également appelé langage Qhttps://github.com/goplus/gop
go-pythongo appelle cpython2https://github.com/sbinet/go-python
go-pytyon3go appelle cpython3https://github.com/DataDog/go-python3

Traitement d'Images

NomDescriptionDépôt
plotUne bibliothèque de dessin, souvent utilisée pour la visualisation de donnéeshttps://github.com/gonum/plot
ggBibliothèque de dessin 2dhttps://github.com/fogleman/gg
gocvPrend en charge opencv4+https://github.com/hybridgroup/gocv
imagingUne bibliothèque de traitement d'images simplehttps://github.com/disintegration/imaging

Traitement de Texte

NomDescriptionDépôt
valeOutil de correction de texte avec conscience grammaticalehttps://github.com/errata-ai/vale

Authentification & Autorisation

NomDescriptionDépôt
casbinBibliothèque de gestion de permissions flexible et puissantehttps://github.com/casbin/casbin
openfgaBibliothèque de permissions/autorisation haute performance, issue de Google Zanzibarhttps://github.com/openfga/openfga

Génération de Code

NomDescriptionDépôt
jenniferBibliothèque de génération de codehttps://github.com/dave/jennifer

Traitement d'Expressions Régulières

NomDescriptionDépôt
commonregxUne bibliothèque collectant des expressions régulières couramment utiliséeshttps://github.com/mingrammer/commonregex

Traitement de Fichiers

NomDescriptionDépôt
fileboxBibliothèque d'outils de manipulation de fichiershttps://github.com/dstgo/filebox
sizeConversion rapide entre taille de fichier et chaînehttps://github.com/dstgo/size
checksumUne bibliothèque de calcul de signature de hachage de fichiershttps://github.com/codingsince1985/checksum
pdfcpuProcesseur pdfhttps://github.com/pdfcpu/pdfcpu
uniofficeBibliothèque de traitement officehttps://github.com/unidoc/unioffice
gooxmlBibliothèque de traitement officehttps://github.com/carmel/gooxml
pdfcpuBibliothèque de traitement PDFhttps://github.com/pdfcpu/pdfcpu
excelizeBibliothèque de traitement Excelhttps://github.com/360EntSecGroup-Skylar/excelize

Outils Généraux

NomDescriptionDépôt
lancetBibliothèque d'outils multifonctionnels, comparable au package common de javahttps://github.com/duke-git/lancet
bytebufferpoolPool de tampons d'octetshttps://github.com/valyala/bytebufferpool

Frameworks de Développement

NomDescriptionDépôt
goframeFramework de développement go moderne de niveau entreprisehttps://github.com/gogf/gf

Protocoles de Consensus

NomDescriptionDépôt
hashicorp/raftBibliothèque raft open-source par consulhttps://github.com/hashicorp/raft
hashicorp/memberlistBibliothèque gossip open-source par consulhttps://github.com/hashicorp/memberlist
etcd-io/raftBibliothèque raft open-source par etcdhttps://github.com/etcd-io/raft

OCR

NomDescriptionDépôt
gosseractBibliothèque OCR utilisant la bibliothèque Tesseract C++https://github.com/otiai10/gosseract

Golang by www.golangdev.cn edit