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
| Nom | Description | Dépôt |
|---|---|---|
| gin | Le framework web le plus classique | https://github.com/gin-gonic/gin |
| beego | Framework web développé par des Chinois | https://github.com/beego/beego |
| iris | Prétendu être le framework web le plus rapide | https://github.com/kataras/iris |
| echo | Framework web minimaliste et haute performance | https://github.com/labstack/echo |
| goji | Framework web concis | https://github.com/zenazn/goji |
| revel | Framework web full-stack hautement disponible | https://github.com/revel/revel |
| buffalo | Framework web permettant de construire facilement des projets full-stack | https://github.com/gobuffalo/buffalo |
| hertz | Framework HTTP microservice haute performance et forte extensibilité (open-source par ByteDance) | https://github.com/cloudwego/hertz |
| dotweb | Un micro framework web simple | https://github.com/devfeel/dotweb |
| fiber | Framework Web style Node.js Express | https://github.com/gofiber/fiber |
ORM
| Nom | Description | Dépôt |
|---|---|---|
| gorm | Bibliothèque ORM conviviale pour les développeurs | https://github.com/go-gorm/gorm |
| xorm | ORM simple et puissant | https://gitea.com/xorm/xorm |
| ent | ORM open-source par FaceBook | https://github.com/ent/ent |
| sqlx | Extension puissante pour la bibliothèque sql | https://github.com/jmoiron/sqlx |
| beego/orm | ORM intégré de beego | https://github.com/astaxie/beego/tree/master/orm |
| rel | ORM moderne extensible | https://github.com/go-rel/rel |
| bun | ORM axé sur SQL | https://github.com/uptrace/bun |
Frameworks Microservices
| Nom | Description | Dépôt |
|---|---|---|
| kratos | Framework microservices cloud-native (open-source par Bilibili) | https://github.com/go-kratos/kratos |
| go-kit | Une bibliothèque d'outils de développement de microservices | https://github.com/go-kit/kit |
| kitex | Framework microservices haute performance et haute extensibilité (open-source par ByteDance) | https://github.com/cloudwego/kitex |
| go-zero | Framework microservices cloud-native (open-source par Qiniu Cloud) | https://github.com/zeromicro/go-zero |
| go-micro | Un framework microservices étranger | https://github.com/go-micro/go-micro |
| kite | Framework microservices (pas mis à jour depuis longtemps) | https://github.com/koding/kite |
| dubbo-go | Implémentation go de java dubbo (open-source par Alibaba) | https://github.com/apache/dubbo-go |
| tarsgo | Implémentation go de tars (open-source par Tencent) | https://github.com/TarsCloud/TarsGo |
| juptiers | Framework microservices orienté gouvernance (open-source par Douyu) | https://github.com/douyu/jupiter |
| redsync | Verrou distribué redis | https://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
| Nom | Description | Dépôt |
|---|---|---|
| logrus | Bibliothèque de journaux structurés | https://github.com/sirupsen/logrus |
| zap | Bibliothèque de journaux haute performance open-source par uber | https://github.com/uber-go/zap |
| glog | Journaux d'exécution par niveau | https://github.com/golang/glog |
| zerolog | Journaux json sans allocation mémoire | https://github.com/rs/zerolog |
| apex/log | Bibliothèque de journaux structurés | https://github.com/apex/log |
| lumberjack | Bibliothèque de rotation de journaux, prend en charge la rotation par taille, par date, la compression de fichiers | https://github.com/natefinch/lumberjack |
Composants de Test
| Nom | Description | Dépôt |
|---|---|---|
| testify | Le package d'outils de test le plus populaire | https://github.com/stretchr/testify |
| ginkgo | Framework de test moderne | https://github.com/onsi/ginkgo |
| ramsql | Moteur SQL en mémoire, principalement utilisé pour les tests unitaires SQL | https://github.com/proullon/ramsql |
| go-sqlmock | SQL Mock pour les tests | https://github.com/DATA-DOG/go-sqlmock |
| goconvey | Tests visualisés dans le navigateur | https://github.com/smartystreets/goconvey |
| go-stress-testing | Outil de test de pression | https://github.com/link1st/go-stress-testing |
| xgo | Framework de test de simulation go, réalisé par réécriture de code pendant la compilation | https://github.com/xhd2015/xgo |
| gomonkey | Framework de test de simulation go, réalisé par modification d'adresse de fonction | https://github.com/agiledragon/gomonkey |
Traitement de Données
| Nom | Description | Dépôt |
|---|---|---|
| mapstructure | Conversion mutuelle entre map et struct | https://github.com/mitchellh/mapstructure |
| cast | Conversion de type de données facile | https://github.com/spf13/cast |
| deepcopy | Copie profonde | https://github.com/mohae/deepcopy |
| copier | Copie de valeurs entre structs avec des champs de même nom | https://github.com/jinzhu/copier |
| go-pinyin | Conversion de caractères chinois en pinyin | https://github.com/mozillazg/go-pinyin |
| go-streams | Traitement de données en flux | https://github.com/reugn/go-streams |
| stream | Traitement en flux | https://github.com/xyctruth/stream |
| go-humanize | Convertit les données en format lisible par l'homme | https://github.com/dustin/go-humanize |
| uniseg | Segmentation de texte Unicode, habillage de mots et calcul de largeur de chaîne en Go | https://github.com/rivo/uniseg |
Validation de Données
| Nom | Description | Dépôt |
|---|---|---|
| go-playground/validator/v10 | Validateur de données | https://github.com/go-playground/validator |
| go-cmp | Bibliothèque de comparaison de valeurs open-source par Google | https://github.com/google/go-cmp |
| ozzo-validation | Bibliothèque de validation de données basée sur des règles | https://github.com/go-ozzo/ozzo-validation |
| go-tagexpr | Bibliothèque de validation de tags de struct | https://github.com/bytedance/go-tagexpr |
Structures de Données
| Nom | Description | Dépôt |
|---|---|---|
| gods | Implémentation de structures de données courantes | https://github.com/emirpasic/gods |
| go-datastructures | Implémentation de structures de données courantes | https://github.com/Workiva/go-datastructures |
| biset | Implémentation de bitsets en go | https://github.com/bits-and-blooms/bitset |
| bloom | Implémentation de bloom filters en go | https://github.com/bits-and-blooms/bloom |
| deque | Implémentation de file double haute performance | https://github.com/edwingeng/deque |
| concurrent-map | Implémentation de map segmentée thread-safe | https://github.com/orcaman/concurrent-map |
| samber/lo | Bibliothèque de traitement de données style Lodash, prend en charge les génériques | https://github.com/samber/lo |
| google/btree | Bibliothèque BTree implémentée par Google, prend en charge les génériques | https://github.com/google/btree |
| gostl | Bibliothèque de structures de données comme C++STL | https://github.com/liyue201/gostl |
Calcul Mathématique
| Nom | Description | Dépôt |
|---|---|---|
| gonum | Comparable à numpy | https://github.com/gonum/gonum |
| decimal | Bibliothèque d'opérations flottantes haute précision | https://github.com/shopspring/decimal |
| crunch | Une bibliothèque simplifiant les opérations d'octets et de bits | https://github.com/superwhiskers/crunch |
| math-engine | Bibliothèque moteur d'analyse et calcul d'expressions mathématiques | https://github.com/dengsgo/math-engine |
Moteurs de Template
| Nom | Description | Dépôt |
|---|---|---|
| pongo2 | Moteur de template style Django | https://github.com/flosch/pongo2 |
| ace | Moteur de template html | https://github.com/yosssi/ace |
| mustache | Implémentation de mustache en go | https://github.com/hoisie/mustache |
| hero | Moteur de template puissant et rapide | https://github.com/shiyanhui/hero |
| quictemplate | Moteur de template haute performance | https://github.com/valyala/quicktemplate |
| amber | Moteur de template issu de HAML et Jade | https://github.com/eknkc/amber |
Composants de Cache
| Nom | Description | Dépôt |
|---|---|---|
| golang-lru | LRU thread-safe, et cache LRU 2Q | https://github.com/hashicorp/golang-lru |
| ttlcache | Cache en mémoire, prend en charge TTL, génériques | https://github.com/jellydator/ttlcache |
| gocache | Gestionnaire de middleware de cache | https://github.com/eko/gocache |
| go-cache | Cache en mémoire, adapté aux applications monoposte, prend en charge TTL | https://github.com/patrickmn/go-cache |
| ristretto | Cache mémoire haute performance | https://github.com/dgraph-io/ristretto |
| bigcache | Cache de grandes clés efficace en mémoire | https://github.com/allegro/bigcache |
Bases de Données & Pilotes
| Nom | Description | Dépôt |
|---|---|---|
| modernc.org/sqlite | Pilote sqlite, écrit en pur go, sans besoin de cgo | https://gitlab.com/cznic/sqlite |
| mattn/go-sqlite3 | Pilote sqlite, nécessite cgo | https://github.com/mattn/go-sqlite3 |
| denisenkom/go-mssqldb | Pilote sqlserver, peu mis à jour, version Microsoft recommandée | https://github.com/denisenkom/go-mssqldb |
| microsoft/go-mssqldb | Pilote sqlserver, nouvelle branche forkée et maintenue par Microsoft | https://github.com/microsoft/go-mssqldb |
| pgx | Pilote postgreSQL | https://github.com/jackc/pgx/ |
| mysql | Pilote mysql | https://github.com/go-sql-driver/mysql |
| oci-go-sdk | Pilote officiel oracle | https://github.com/oracle/oci-go-sdk |
| go-ora | Pilote oracle, écrit en pur go | https://github.com/sijms/go-ora |
| badger | Base de données kv embarquée, basée sur LSM | https://github.com/dgraph-io/badger |
| boltdb | Base de données kv embarquée, basée sur B+Tree | https://github.com/boltdb/bolt |
| goleveldb | leveldb implémenté en langage go | https://github.com/syndtr/goleveldb |
| qmgo | Bibliothèque de manipulation mongodb open-source par Qiniu Cloud | https://github.com/qiniu/qmgo |
| mongo-go-driver | Pilote officiel mongodb pour go | https://github.com/mongodb/mongo-go-driver |
| rqlite | Base de données relationnelle distribuée légère basée sur sqlite | https://github.com/rqlite/rqlite/ |
| go-mysql | Un puissant ensemble d'outils MySQL | https://github.com/go-mysql-org/go-mysql |
| go-mysql-elasticsearch | Outil de synchronisation de données MySQL vers Elasticsearch | https://github.com/go-mysql-org/go-mysql-elasticsearch |
| gofound | Moteur de recherche full-text单机亿级 | https://github.com/sea-team/gofound |
| bleve | Bibliothèque de recherche full-text | https://github.com/blevesearch/bleve |
Sérialisation
| Nom | Description | Dépôt |
|---|---|---|
| go-ini | Bibliothèque de sérialisation de fichiers ini | https://github.com/go-ini/ini |
| sonic | Bibliothèque de sérialisation json haute performance open-source par ByteDance | https://github.com/bytedance/sonic |
| easyjson | Bibliothèque de sérialisation json rapide | https://github.com/mailru/easyjson |
| gjson | Obtention rapide de valeurs de clés json, bibliothèque de sérialisation non traditionnelle | https://github.com/tidwall/gjson |
| go-yaml | Bibliothèque de sérialisation yaml | https://github.com/go-yaml/yaml |
| go-toml | Bibliothèque de sérialisation toml | https://github.com/pelletier/go-toml |
| properties | Bibliothèque de sérialisation properties | https://github.com/magiconair/properties |
| viper | Prend en charge la sérialisation de multiples formats de données, également gestionnaire de configuration | https://github.com/spf13/viper |
| configor | Sérialiseur de multiples formats de données écrit par l'auteur de gorm, gestionnaire de configuration | https://github.com/jinzhu/configor |
Ligne de Commande
| Nom | Description | Dépôt |
|---|---|---|
| pflag | Package de style de drapeau POSIX/GUN | https://github.com/spf13/pflag |
| go-flags | Analyseur de paramètres de commande | https://github.com/jessevdk/go-flags |
| cobra | Échafaudage moderne de construction de programmes en ligne de commande | https://github.com/spf13/cobra |
| dimiro1/banner | Bibliothèque de construction de bannières esthétiques | https://github.com/dimiro1/banner |
| go-pretty | Tableaux, texte, barres de progression esthétiques pour ligne de commande | https://github.com/jedib0t/go-pretty |
| progressbar | Barre de progression en ligne de commande thread-safe | https://github.com/schollz/progressbar |
| go-ansi | Utilitaire de séquences d'échappement ANSI portable Windows pour Go | https://github.com/k0kubun/go-ansi |
| go-isatty | Bibliothèque pour juger tty | https://github.com/mattn/go-isatty |
Compression & Décompression
| Nom | Description | Dépôt |
|---|---|---|
| klauspost/compress | Optimisation et transformation de la bibliothèque standard compress | https://github.com/klauspost/compress |
| alexmullins/zip | Branche fork de la bibliothèque standard archive/zip, prend en charge les mots de passe | https://github.com/alexmullins/zip |
| mholt/archiver | Bibliothèque de compression/décompression prenant en charge de nombreux formats (personnellement très recommandé) | https://github.com/mholt/archiver |
| go-car | Implémentation go des fichiers d'archive CAR | https://github.com/ipld/go-car |
| go-unarr | Une bibliothèque de compression/décompression | https://github.com/gen2brain/go-unarr |
| xz | Bibliothèque Golang pure pour lire et écrire des fichiers compressés xz | https://github.com/ulikunitz/xz |
Date et Heure
| Nom | Description | Dépôt |
|---|---|---|
| carbon | Bibliothèque de traitement de date et heure | https://github.com/golang-module/carbon |
| robfig/cron | Bibliothèque de tâches planifiées | https://pkg.go.dev/github.com/robfig/cron/v3 |
| gron | Bibliothèque de tâches planifiées | https://github.com/roylee0704/gron |
| jobrunner | Framework de tâches planifiées asynchrones | https://github.com/bamzi/jobrunner |
| dataparse | Peut analyser des chaînes de temps sans connaître le format | https://github.com/araddon/dateparse |
| jinzhu/now | Bibliothèque d'outils de date | https://github.com/jinzhu/now |
Injection de Dépendances
| Nom | Description | Dépôt |
|---|---|---|
| dig | Bibliothèque d'injection de dépendances open-source par uber, basée sur la réflexion | https://darjun.github.io/2020/02/22/godailylib/dig/ |
| wire | Bibliothèque d'injection de dépendances open-source par Google, basée sur la génération de code | https://github.com/google/wire |
| inject | Outil d'injection de dépendances | https://github.com/codegangsta/inject |
| di | Conteneur d'injection de dépendances | https://github.com/sarulabs/di |
Géolocalisation
| Nom | Description | Dépôt |
|---|---|---|
| geoip2-golang | Conversion IP en informations géographiques | https://github.com/oschwald/geoip2-golang |
| ip2location-go | Conversion IP en informations géographiques | https://github.com/ip2location/ip2location-go |
Frameworks de Crawling
| Nom | Description | Dépôt |
|---|---|---|
| colly | Framework de crawling simple et puissant | https://github.com/gocolly/colly |
| goquery | Similaire à jquery | https://github.com/PuerkitoBio/goquery |
Outils Réseau
| Nom | Description | Dépôt |
|---|---|---|
| gentleman | Client http piloté par plugins, extensible | https://github.com/h2non/gentleman |
| resty | Client http restful | https://pkg.go.dev/github.com/go-resty/resty/v2 |
| gopeed | Gestionnaire de téléchargement moderne supportant toutes les plateformes, basé sur go et flutter | https://github.com/GopeedLab/gopeed |
Courrier Électronique
| Nom | Description | Dépôt |
|---|---|---|
| jordan-wright/email | Bibliothèque d'envoi de courrier robuste et flexible | https://github.com/jordan-wright/email |
| gomail | Bibliothèque d'envoi de courrier | https://github.com/go-gomail/gomail |
| go-simple-mail | Bibliothèque d'envoi de courrier simple | https://github.com/xhit/go-simple-mail |
| go-mail | Bibliothèque d'envoi de courrier facile à utiliser et complète | https://github.com/wneessen/go-mail |
| email-verifier | Vérifie si une boîte mail est valide, sans envoyer de courrier | https://github.com/AfterShip/email-verifier |
| maddy | Serveur de courrier modulaire | https://github.com/foxcpp/maddy |
| mox | Serveur de courrier auto-hébergé open-source complet, haute maintenabilité | https://github.com/mjl-/mox |
| hermes | Bibliothèque de génération de modèles de courrier | https://github.com/matcornic/hermes |
| listmonk | Gestion de liste de courrier haute performance, auto-hébergée, visualisée | https://github.com/knadh/listmonk |
| go-smtp | Client et serveur SMTP écrit en go | https://github.com/emersion/go-smtp |
| go-imap | Client et serveur IMAP écrit en go | https://github.com/emersion/go-imap |
Développement de Jeux
| Nom | Description | Dépôt |
|---|---|---|
| ebitengine | Un moteur de jeu 2d super simple | https://github.com/hajimehoshi/ebiten |
| Azul3D | Un moteur de jeu 3d écrit en go | https://github.com/azul3d/engine |
| engo | Moteur de jeu 2d open-source écrit en go | https://github.com/EngoEngine/engo |
| g3n/engine | Moteur de jeu go3d | https://github.com/g3n/engine |
| gonet | Un framework de serveur de jeu | https://github.com/xtaci/gonet |
| leaf | Framework de serveur de jeu | https://github.com/name5566/leaf |
| cloud-game | Service de jeu cloud basé sur le web | https://github.com/giongto35/cloud-game |
GUI
| Nom | Description | Dépôt |
|---|---|---|
| fyne | Boîte à outils de développement GUI multiplateforme (vraiment quelque chose) | https://github.com/fyne-io/fyne |
| go-flutter | Écrire flutter avec go | https://github.com/go-flutter-desktop/go-flutter |
| Wails | Peut être considéré comme une alternative Electron rapide et légère pour Go | https://github.com/wailsapp/wails |
Interaction Système
| Nom | Description | Dépôt |
|---|---|---|
| gopsutil | Obtention d'informations système, compatible avec les systèmes principaux | https://github.com/shirou/gopsutil |
| flock | Verrou de fichier basé sur les appels système | https://github.com/gofrs/flock |
| sys | Bibliothèque d'interaction système officielle | https://cs.opensource.google/go/x/sys |
Interaction Inter-langages
| Nom | Description | Dépôt |
|---|---|---|
| gopher-lua | Machine virtuelle lua écrite en go | https://github.com/yuin/gopher-lua |
| go-lua | Machine virtuelle lua écrite en go | https://github.com/Shopify/go-lua |
| goja | Prend en charge es5.1+ | https://github.com/dop251/goja |
| tengo | Tengo est un langage de script Go petit, dynamique, rapide et sûr | https://github.com/d5/tengo |
| goby | Un langage de script interprété inspiré de ruby, implémenté en go | https://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 Q | https://github.com/goplus/gop |
| go-python | go appelle cpython2 | https://github.com/sbinet/go-python |
| go-pytyon3 | go appelle cpython3 | https://github.com/DataDog/go-python3 |
Traitement d'Images
| Nom | Description | Dépôt |
|---|---|---|
| plot | Une bibliothèque de dessin, souvent utilisée pour la visualisation de données | https://github.com/gonum/plot |
| gg | Bibliothèque de dessin 2d | https://github.com/fogleman/gg |
| gocv | Prend en charge opencv4+ | https://github.com/hybridgroup/gocv |
| imaging | Une bibliothèque de traitement d'images simple | https://github.com/disintegration/imaging |
Traitement de Texte
| Nom | Description | Dépôt |
|---|---|---|
| vale | Outil de correction de texte avec conscience grammaticale | https://github.com/errata-ai/vale |
Authentification & Autorisation
| Nom | Description | Dépôt |
|---|---|---|
| casbin | Bibliothèque de gestion de permissions flexible et puissante | https://github.com/casbin/casbin |
| openfga | Bibliothèque de permissions/autorisation haute performance, issue de Google Zanzibar | https://github.com/openfga/openfga |
Génération de Code
| Nom | Description | Dépôt |
|---|---|---|
| jennifer | Bibliothèque de génération de code | https://github.com/dave/jennifer |
Traitement d'Expressions Régulières
| Nom | Description | Dépôt |
|---|---|---|
| commonregx | Une bibliothèque collectant des expressions régulières couramment utilisées | https://github.com/mingrammer/commonregex |
Traitement de Fichiers
| Nom | Description | Dépôt |
|---|---|---|
| filebox | Bibliothèque d'outils de manipulation de fichiers | https://github.com/dstgo/filebox |
| size | Conversion rapide entre taille de fichier et chaîne | https://github.com/dstgo/size |
| checksum | Une bibliothèque de calcul de signature de hachage de fichiers | https://github.com/codingsince1985/checksum |
| pdfcpu | Processeur pdf | https://github.com/pdfcpu/pdfcpu |
| unioffice | Bibliothèque de traitement office | https://github.com/unidoc/unioffice |
| gooxml | Bibliothèque de traitement office | https://github.com/carmel/gooxml |
| pdfcpu | Bibliothèque de traitement PDF | https://github.com/pdfcpu/pdfcpu |
| excelize | Bibliothèque de traitement Excel | https://github.com/360EntSecGroup-Skylar/excelize |
Outils Généraux
| Nom | Description | Dépôt |
|---|---|---|
| lancet | Bibliothèque d'outils multifonctionnels, comparable au package common de java | https://github.com/duke-git/lancet |
| bytebufferpool | Pool de tampons d'octets | https://github.com/valyala/bytebufferpool |
Frameworks de Développement
| Nom | Description | Dépôt |
|---|---|---|
| goframe | Framework de développement go moderne de niveau entreprise | https://github.com/gogf/gf |
Protocoles de Consensus
| Nom | Description | Dépôt |
|---|---|---|
| hashicorp/raft | Bibliothèque raft open-source par consul | https://github.com/hashicorp/raft |
| hashicorp/memberlist | Bibliothèque gossip open-source par consul | https://github.com/hashicorp/memberlist |
| etcd-io/raft | Bibliothèque raft open-source par etcd | https://github.com/etcd-io/raft |
OCR
| Nom | Description | Dépôt |
|---|---|---|
| gosseract | Bibliothèque OCR utilisant la bibliothèque Tesseract C++ | https://github.com/otiai10/gosseract |
