Skip to content

دليل مكتبات Go مفتوحة المصدر

جمع بعض مكتبات وأطر Go مفتوحة المصدر وتنظيمها وتصنيفها، لتسهيل التصفح اللاحق، ومرحب بتقديم pr لإضافة مشاريع جديدة.

TIP

الترتيب لا يعني الترتيب، الجودة تعتمد على التجربة الفعلية.

أطر عمل Web

الاسمالوصفالمستودع
ginإطار work الأكثر كلاسيكيةhttps://github.com/gin-gonic/gin
beegoإطار عمل web طورته الصينhttps://github.com/beego/beego
irisيُزعم أنه أسرع إطار عمل webhttps://github.com/kataras/iris
echoإطار عمل web بسيط وعالي الأداءhttps://github.com/labstack/echo
gojiإطار عمل web بسيطhttps://github.com/zenazn/goji
revelإطار عمل web متكامل عالي التوافرhttps://github.com/revel/revel
buffaloيمكن بناء مشاريع متكاملة بسهولةhttps://github.com/gobuffalo/buffalo
hertzإطار عمل HTTP للخدمات الدقيقة عالي الأداء وقابل للتوسعة (مفتوح المصدر من ByteDance)https://github.com/cloudwego/hertz
dotwebإطار عمل web مصغر بسيطhttps://github.com/devfeel/dotweb
fiberإطار عمل Web بأسلوب Node.js Expresshttps://github.com/gofiber/fiber

ORM

الاسمالوصفالمستودع
gormمكتبة ORM صديقة للمطورينhttps://github.com/go-gorm/gorm
xormORM بسيط وقويhttps://gitea.com/xorm/xorm
entORM مفتوح المصدر من FaceBookhttps://github.com/ent/ent
sqlxامتداد قوي لمكتبة sqlhttps://github.com/jmoiron/sqlx
beego/ormorm المدمج في beegohttps://github.com/astaxie/beego/tree/master/orm
relORM حديث قابل للتوسعةhttps://github.com/go-rel/rel
bunORM يركز على SQLhttps://github.com/uptrace/bun

أطر عمل الخدمات الدقيقة

الاسمالوصفالمستودع
kratosإطار عمل خدمات دقيقة سحابي (مفتوح المصدر من Bilibili)https://github.com/go-kratos/kratos
go-kitمكتبة أدوات لتطوير الخدمات الدقيقةhttps://github.com/go-kit/kit
kitexإطار عمل خدمات دقيقة عالي الأداء وقابل للتوسعة (مفتوح المصدر من ByteDance)https://github.com/cloudwego/kitex
go-zeroإطار عمل خدمات دقيقة سحابي (مفتوح المصدر من Qiniu)https://github.com/zeromicro/go-zero
go-microإطار عمل خدمات دقيقة أجنبيhttps://github.com/go-micro/go-micro
kiteإطار عمل خدمات دقيقة (لم يُحدّث منذ فترة طويلة)https://github.com/koding/kite
dubbo-goتطبيق dubbo في go (مفتوح المصدر من Alibaba)https://github.com/apache/dubbo-go
tarsgoتطبيق tars في go (مفتوح المصدر من Tencent)https://github.com/TarsCloud/TarsGo
juptiersإطار عمل خدمات دقيقة موجه للحوكمة (مفتوح المصدر من Douyu)https://github.com/douyu/jupiter
redsyncقفل موزع لـ redishttps://github.com/go-redsync/redsync

تلميح

jupiter من Douyu هو اسم زيوس، وهو إله الآلهة، بينما kratos من Bilibili هو اسم إله الحرب كريتوس، الذي قتل زيوس إله الآلهة لاحقاً.

مكونات التسجيل

الاسمالوصفالمستودع
logrusمكتبة تسجيل هيكليةhttps://github.com/sirupsen/logrus
zapمكتبة تسجيل عالية الأداء مفتوحة المصدر من Uberhttps://github.com/uber-go/zap
glogتسجيل متدرجhttps://github.com/golang/glog
zerologتسجيل json بدون تخصيص ذاكرةhttps://github.com/rs/zerolog
apex/logمكتبة تسجيل هيكليةhttps://github.com/apex/log
lumberjackمكتبة تقسيم السجلات، تدعم التقسيم بالحجم، التقسيم بالتاريخ، ضغط الملفاتhttps://github.com/natefinch/lumberjack

مكونات الاختبار

الاسمالوصفالمستودع
testifyحزمة أدوات الاختبار الأكثر شعبيةhttps://github.com/stretchr/testify
ginkgoإطار عمل اختبار حديثhttps://github.com/onsi/ginkgo
ramsqlمحرك SQL قائم على الذاكرة، يستخدم بشكل رئيسي لاختبار وحدات SQLhttps://github.com/proullon/ramsql
go-sqlmockSQL Mock للاختبارhttps://github.com/DATA-DOG/go-sqlmock
goconveyاختبار مرئي في المتصفحhttps://github.com/smartystreets/goconvey
go-stress-testingأداة اختبار الضغطhttps://github.com/link1st/go-stress-testing
xgoإطار عمل اختبار بالكعب لـ go، يُنفذ من خلال إعادة كتابة الكود أثناء التجميعhttps://github.com/xhd2015/xgo
gomonkeyإطار عمل اختبار بالكعب لـ go، يُنفذ من خلال تعديل عنوان الدالةhttps://github.com/agiledragon/gomonkey

معالجة البيانات

الاسمالوصفالمستودع
mapstructureتحويل بين map والهياكلhttps://github.com/mitchellh/mapstructure
castتحويل أنواع البيانات بسهولةhttps://github.com/spf13/cast
deepcopyنسخ عميقhttps://github.com/mohae/deepcopy
copierنسخ القيم بين الحقول ذات الأسماء المتطابقة بين الهياكلhttps://github.com/jinzhu/copier
go-pinyinتحويل الحروف الصينية إلى بينيينhttps://github.com/mozillazg/go-pinyin
go-streamsمعالجة بيانات انسيابيةhttps://github.com/reugn/go-streams
streamمعالجة انسيابيةhttps://github.com/xyctruth/stream
go-humanizeتحويل البيانات إلى صيغة يمكن للبشر قراءتهاhttps://github.com/dustin/go-humanize
unisegتقسيم نص Unicode، التفاف الكلمات وحساب عرض السلسلة في Gohttps://github.com/rivo/uniseg

التحقق من البيانات

الاسمالوصفالمستودع
go-playground/validator/v10مدقق بياناتhttps://github.com/go-playground/validator
go-cmpمكتبة لمقارنة القيم مفتوحة المصدر من Googlehttps://github.com/google/go-cmp
ozzo-validationمكتبة تحقق من البيانات قائمة على القواعدhttps://github.com/go-ozzo/ozzo-validation
go-tagexprمكتبة تحقق من tag الهياكلhttps://github.com/bytedance/go-tagexpr

هياكل البيانات

الاسمالوصفالمستودع
godsتطبيق هياكل البيانات الشائعةhttps://github.com/emirpasic/gods
go-datastructuresتطبيق هياكل البيانات الشائعةhttps://github.com/Workiva/go-datastructures
bisetتطبيق bitsets في gohttps://github.com/bits-and-blooms/bitset
bloomتطبيق bloom filters في gohttps://github.com/bits-and-blooms/bloom
dequeتطبيق طابور ثنائي الأطراف عالي الأداءhttps://github.com/edwingeng/deque
concurrent-mapتطبيق map مقسم آمن للتزامنhttps://github.com/orcaman/concurrent-map
samber/loمكتبة معالجة بيانات بأسلوب Lodash، تدعم الأنماطhttps://github.com/samber/lo
google/btreeمكتبة BTree من Google، تدعم الأنماطhttps://github.com/google/btree
gostlمكتبة هياكل بيانات مثل C++STLhttps://github.com/liyue201/gostl

الحسابات الرياضية

الاسمالوصفالمستودع
gonumمشابه لـ numpyhttps://github.com/gonum/gonum
decimalمكتبة عمليات أرقام الفاصلة العائمة عالية الدقةhttps://github.com/shopspring/decimal
crunchمكتبة لتبسيط العمليات على البايتات والبتاتhttps://github.com/superwhiskers/crunch
math-engineمكتبة محرك تحليل وحساب التعبيرات الرياضيةhttps://github.com/dengsgo/math-engine

محركات القوالب

الاسمالوصفالمستودع
pongo2محرك قوالب بأسلوب Djangohttps://github.com/flosch/pongo2
aceمحرك قوالب htmlhttps://github.com/yosssi/ace
mustacheتطبيق mustache في gohttps://github.com/hoisie/mustache
heroمحرك قوالب قوي وسريعhttps://github.com/shiyanhui/hero
quictemplateمحرك قوالب عالي الأداءhttps://github.com/valyala/quicktemplate
amberمحرك قوالب مستوحى من HAML و Jadehttps://github.com/eknkc/amber

مكونات التخزين المؤقت

الاسمالوصفالمستودع
golang-lruLRU آمن للخيوط، وذاكرة تخزين مؤقت LRU 2Qhttps://github.com/hashicorp/golang-lru
ttlcacheتخزين مؤقت قائم على الذاكرة، يدعم TTL، الأنماطhttps://github.com/jellydator/ttlcache
gocacheمدير برمجيات وسيطة للتخزين المؤقتhttps://github.com/eko/gocache
go-cacheتخزين مؤقت قائم على الذاكرة، مناسب للتطبيقات الفردية، يدعم TTLhttps://github.com/patrickmn/go-cache
ristrettoتخزين مؤقت في الذاكرة عالي الأداءhttps://github.com/dgraph-io/ristretto
bigcacheتخزين مؤقت للمفاتيح الكبيرة عالي الكفاءة قائم على الذاكرةhttps://github.com/allegro/bigcache

قواعد البيانات والمشغلات

الاسمالوصفالمستودع
modernc.org/sqliteمشغل sqlite، مكتوب بـ go بالكامل، لا يحتاج cgohttps://gitlab.com/cznic/sqlite
mattn/go-sqlite3مشغل sqlite، يحتاج cgohttps://github.com/mattn/go-sqlite3
denisenkom/go-mssqldbمشغل sqlserver، لم يعد يُحدّث كثيراً، يُنصح باستخدام إصدار Microsofthttps://github.com/denisenkom/go-mssqldb
microsoft/go-mssqldbمشغل sqlserver، فرع Microsoft الجديد ويتم صيانتهhttps://github.com/microsoft/go-mssqldb
pgxمشغل postgreSQLhttps://github.com/jackc/pgx/
mysqlمشغل mysqlhttps://github.com/go-sql-driver/mysql
oci-go-sdkمشغل Oracle الرسميhttps://github.com/oracle/oci-go-sdk
go-oraمشغل oracle، مكتوب بـ go بالكاملhttps://github.com/sijms/go-ora
badgerقاعدة بيانات kv مدمجة، قائمة على LSMhttps://github.com/dgraph-io/badger
boltdbقاعدة بيانات kv مدمجة، قائمة على B+Treehttps://github.com/boltdb/bolt
goleveldbتطبيق leveldb بلغة gohttps://github.com/syndtr/goleveldb
qmgoمكتبة تشغيل mongodb مفتوحة المصدر من Qiniuhttps://github.com/qiniu/qmgo
mongo-go-driverمشغل mongodb الرسمي لـ gohttps://github.com/mongodb/mongo-go-driver
rqliteقاعدة بيانات علائقية موزعة خفيفة الوزن قائمة على sqlitehttps://github.com/rqlite/rqlite/
go-mysqlمجموعة أدوات MySQL قويةhttps://github.com/go-mysql-org/go-mysql
go-mysql-elasticsearchأداة لمزامنة بيانات MySQL إلى Elasticsearchhttps://github.com/go-mysql-org/go-mysql-elasticsearch
gofoundمحرك بحث نصي كامل بسيط بمليارات المستندات،https://github.com/sea-team/gofound
bleveمكتبة البحث النصي الكاملhttps://github.com/blevesearch/bleve

التسلسل

الاسمالوصفالمستودع
go-iniمكتبة تسلسل ملفات inihttps://github.com/go-ini/ini
sonicمكتبة تسلسل json عالية الأداء مفتوحة المصدر من ByteDancehttps://github.com/bytedance/sonic
easyjsonمكتبة تسلسل json سريعةhttps://github.com/mailru/easyjson
gjsonالحصول السريع على قيم مفاتيح json، ليست مكتبة تسلسل تقليديةhttps://github.com/tidwall/gjson
go-yamlمكتبة تسلسل yamlhttps://github.com/go-yaml/yaml
go-tomlمكتبة تسلسل tomlhttps://github.com/pelletier/go-toml
propertiesمكتبة تسلسل propertieshttps://github.com/magiconair/properties
viperيدعم تسلسل صيغ بيانات متعددة، وهو أيضاً مدير تكوينhttps://github.com/spf13/viper
configorمسلسل صيغ بيانات متعددة من مؤلف gorm، مدير تكوينhttps://github.com/jinzhu/configor

سطر الأوامر

الاسمالوصفالمستودع
pflagحزمة flag بأسلوب POSIX/GUNhttps://github.com/spf13/pflag
go-flagsمحلل معاملات سطر الأوامرhttps://github.com/jessevdk/go-flags
cobraهيكل لبناء برامج سطر أوامر حديثةhttps://github.com/spf13/cobra
dimiro1/bannerمكتبة لبناء بانر جميلhttps://github.com/dimiro1/banner
go-prettyإخراج جداول سطر أوامر جميلة، نصوص، أشرطة تقدمhttps://github.com/jedib0t/go-pretty
progressbarشريط تقدم لسطر الأوامر آمن للخيوطhttps://github.com/schollz/progressbar
go-ansiأداة ANSI portable لنظام Windows بلغة Gohttps://github.com/k0kubun/go-ansi
go-isattyمكتبة لتحديد ttyhttps://github.com/mattn/go-isatty

الضغط وفك الضغط

الاسمالوصفالمستودع
klauspost/compressتحسين وتعديل لمكتبة compress القياسيةhttps://github.com/klauspost/compress
alexmullins/zipفرع fork من مكتبة archive/zip القياسية، يدعم كلمة المرورhttps://github.com/alexmullins/zip
mholt/archiverمكتبة أدوات ضغط وفك ضغط تدعم العديد من الصيغ (موصى بها جداً)https://github.com/mholt/archiver
go-carتطبيق ملفات CAR الأرشيفية في gohttps://github.com/ipld/go-car
go-unarrمكتبة ضغط وفك ضغطhttps://github.com/gen2brain/go-unarr
xzمكتبة Golang نقية لقراءة وكتابة ملفات xz المضغوطةhttps://github.com/ulikunitz/xz

التاريخ والوقت

الاسمالوصفالمستودع
carbonمكتبة معالجة التاريخ والوقتhttps://github.com/golang-module/carbon
robfig/cronمكتبة المهام المجدولةhttps://pkg.go.dev/github.com/robfig/cron/v3
gronمكتبة المهام المجدولةhttps://github.com/roylee0704/gron
jobrunnerإطار عمل مهام مجدولة غير متزامنhttps://github.com/bamzi/jobrunner
dataparseيمكن تحليل سلاسل الوقت دون معرفة الصيغةhttps://github.com/araddon/dateparse
jinzhu/nowمكتبة أدوات التاريخhttps://github.com/jinzhu/now

حقن التبعية

الاسمالوصفالمستودع
digمكتبة حقن تبعيات مفتوحة المصدر من Uber، قائمة على الانعكاسhttps://darjun.github.io/2020/02/22/godailylib/dig/
wireمكتبة حقن تبعيات مفتوحة المصدر من Google، قائمة على توليد الكودhttps://github.com/google/wire
injectأداة حقن التبعياتhttps://github.com/codegangsta/inject
diحاوية حقن التبعياتhttps://github.com/sarulabs/di

الموقع الجغرافي

الاسمالوصفالمستودع
geoip2-golangIP إلى معلومات جغرافيةhttps://github.com/oschwald/geoip2-golang
ip2location-goIP إلى معلومات جغرافيةhttps://github.com/ip2location/ip2location-go

أطر عمل الزحف

الاسمالوصفالمستودع
collyإطار عمل زحف بسيط وقويhttps://github.com/gocolly/colly
goqueryمشابه لـ j-thinghttps://github.com/PuerkitoBio/goquery

أدوات الشبكة

الاسمالوصفالمستودع
gentlemanعميل http قابل للتوسعة ومحرك بالإضافاتhttps://github.com/h2non/gentleman
restyعميل http restfulhttps://pkg.go.dev/github.com/go-resty/resty/v2
gopeedمدير تنزيلات حديث يدعم جميع المنصات، قائم على go و flutterhttps://github.com/GopeedLab/gopeed

البريد الإلكتروني

الاسمالوصفالمستودع
jordan-wright/emailمكتبة إرسال بريد قوية ومرنةhttps://github.com/jordan-wright/email
gomailمكتبة إرسال بريدhttps://github.com/go-gomail/gomail
go-simple-mailمكتبة إرسال بريد بسيطةhttps://github.com/xhit/go-simple-mail
go-mailمكتبة إرسال بريد شاملة وسهلة الاستخدامhttps://github.com/wneessen/go-mail
email-verifierالتحقق من صحة البريد الإلكتروني دون إرسال بريدhttps://github.com/AfterShip/email-verifier
maddyخادم بريد تركيبيhttps://github.com/foxcpp/maddy
moxخادم بريد مفتوح المصدر بالكامل، قابل للصيانة، مستضاف ذاتياًhttps://github.com/mjl-/mox
hermesمكتبة توليد قوالب البريدhttps://github.com/matcornic/hermes
listmonkإدارة قوائم بريدية عالية الأداء، مستضافة ذاتياً، مرئيةhttps://github.com/knadh/listmonk
go-smtpعميل وخادم SMTP مكتوب بـ gohttps://github.com/emersion/go-smtp
go-imapعميل وخادم IMAP مكتوب بـ gohttps://github.com/emersion/go-imap

تطوير الألعاب

الاسمالوصفالمستودع
ebitengineمحرك ألعاب ثنائي الأبعاد بسيط جداًhttps://github.com/hajimehoshi/ebiten
Azul3Dمحرك ألعاب ثلاثي الأبعاد مكتوب بـ gohttps://github.com/azul3d/engine
engoمحرك ألعاب ثنائي الأبعاد مفتوح المصدر مكتوب بـ gohttps://github.com/EngoEngine/engo
g3n/engineمحرك ألعاب go ثلاثي الأبعادhttps://github.com/g3n/engine
gonetإطار عمل خادم ألعابhttps://github.com/xtaci/gonet
leafإطار عمل خادم ألعابhttps://github.com/name5566/leaf
cloud-gameخدمة ألعاب سحابية قائمة على الويبhttps://github.com/giongto35/cloud-game

واجهات المستخدم الرسومية (GUI)

الاسمالوصفالمستودع
fyneمجموعة أدوات تطوير GUI عبر المنصات (لها مميزات حقيقية)https://github.com/fyne-io/fyne
go-flutterكتابة flutter بـ gohttps://github.com/go-flutter-desktop/go-flutter
Wailsيمكن اعتباره بديلاً لـ Electron سريعاً وخفيف الوزن لـ Gohttps://github.com/wailsapp/wails

تفاعل النظام

الاسمالوصفالمستودع
gopsutilالحصول على معلومات نظام التشغيل، متوافق مع الأنظمة الرئيسيةhttps://github.com/shirou/gopsutil
flockقفل ملفات قائم على استدعاءات نظام التشغيلhttps://github.com/gofrs/flock
sysمكتبة تفاعل النظام الرسميةhttps://cs.opensource.google/go/x/sys

التفاعل بين اللغات

الاسمالوصفالمستودع
gopher-luaآلة افتراضية lua مكتوبة بـ gohttps://github.com/yuin/gopher-lua
go-luaآلة افتراضية lua مكتوبة بـ gohttps://github.com/Shopify/go-lua
gojaيدعم es5.1+https://github.com/dop251/goja
tengoTengo هي لغة برمجة Go نصية صغيرة وديناميكية وسريعة وآمنةhttps://github.com/d5/tengo
gobyلغة برمجة نصية تفسيرية مستوحاة من ruby ومُنفذة بـ gohttps://github.com/goby-lang/goby
go+لغة برمجة نصية مفتوحة المصدر من Qiniu، يمكنها التفاعل بسلاسة مع go، تُعرف أيضاً بلغة Qhttps://github.com/goplus/gop
go-pythonاستدعاء cpython2 بـ gohttps://github.com/sbinet/go-python
go-pytyon3استدعاء cpython3 بـ gohttps://github.com/DataDog/go-python3

معالجة الصور

الاسمالوصفالمستودع
plotمكتبة رسم، تُستخدم غالباً لتصور البياناتhttps://github.com/gonum/plot
ggمكتبة رسم ثنائي الأبعادhttps://github.com/fogleman/gg
gocvيدعم opencv4+https://github.com/hybridgroup/gocv
imagingمكتبة معالجة صور بسيطةhttps://github.com/disintegration/imaging

معالجة النصوص

الاسمالوصفالمستودع
valeأداة تدقيق نصي مدركة للنحوhttps://github.com/errata-ai/vale

المصادقة والتفويض

الاسمالوصفالمستودع
casbinمكتبة إدارة صلاحيات مرنة وقويةhttps://github.com/casbin/casbin
openfgaمكتبة صلاحيات/تفويض عالية الأداء، مستوحاة من oogle Zanzibarhttps://github.com/openfga/openfga

توليد الكود

الاسمالوصفالمستودع
jenniferمكتبة توليد الكودhttps://github.com/dave/jennifer

معالجة التعبيرات النمطية

الاسمالوصفالمستودع
commonregxمكتبة تجمع التعبيرات النمطية الشائعةhttps://github.com/mingrammer/commonregex

معالجة الملفات

الاسمالوصفالمستودع
fileboxمكتبة أدوات تشغيل الملفاتhttps://github.com/dstgo/filebox
sizeتحويل سريع بين حجم الملف والسلسلةhttps://github.com/dstgo/size
checksumمكتبة لحساب توقيع الهاش للملفاتhttps://github.com/codingsince1985/checksum
pdfcpuمعالج pdfhttps://github.com/pdfcpu/pdfcpu
uniofficeمكتبة معالجة officehttps://github.com/unidoc/unioffice
gooxmlمكتبة معالجة officehttps://github.com/carmel/gooxml
pdfcpuمكتبة معالجة PDFhttps://github.com/pdfcpu/pdfcpu
excelizeمكتبة معالجة Excelhttps://github.com/360EntSecGroup-Skylar/excelize

أدوات عامة

الاسمالوصفالمستودع
lancetمكتبة أدوات متعددة الوظائف، مشابهة لحزمة common في javahttps://github.com/duke-git/lancet
bytebufferpoolتجمع مخازن البايتات المؤقتةhttps://github.com/valyala/bytebufferpool

أطر عمل التطوير

الاسمالوصفالمستودع
goframeإطار عمل تطوير go حديث للمؤسساتhttps://github.com/gogf/gf

بروتوكولات الإجماع

الاسمالوصفالمستودع
hashicorp/raftمكتبة raft مفتوحة المصدر من consulhttps://github.com/hashicorp/raft
hashicorp/memberlistمكتبة gossip مفتوحة المصدر من consulhttps://github.com/hashicorp/memberlist
etcd-io/raftمكتبة raft مفتوحة المصدر من etcdhttps://github.com/etcd-io/raft

التعرف الضوئي على الحروف (OCR)

الاسمالوصفالمستودع
gosseractمكتبة OCR تستخدم مكتبة Tesseract C++https://github.com/otiai10/gosseract

Golang تم تحريره بواسطة www.golangdev.cn