Daftar Library Open Source Go
Mengumpulkan beberapa library dan framework open source pihak ketiga go untuk pengorganisasian dan klasifikasi, memudahkan untuk browsing selanjutnya, juga menyambut untuk mengirimkan pr untuk menambahkan proyek baru.
TIP
Urutan sebelum dan sesudah tidak mewakili peringkat, apakah bagus atau tidak harus dilihat berdasarkan pengalaman aktual.
Framework Web
| Nama | Deskripsi | Repositori |
|---|---|---|
| gin | Framework web paling klasik | https://github.com/gin-gonic/gin |
| beego | Framework web yang dikembangkan oleh orang Tiongkok | https://github.com/beego/beego |
| iris | Dikenal sebagai framework web tercepat | https://github.com/kataras/iris |
| echo | Framework web berkinerja tinggi dan minimalis | https://github.com/labstack/echo |
| goji | Framework web yang sederhana | https://github.com/zenazn/goji |
| revel | Framework web full-stack yang tersedia tinggi | https://github.com/revel/revel |
| buffalo | Framework web yang dapat dengan mudah membangun proyek full-stack | https://github.com/gobuffalo/buffalo |
| hertz | Framework HTTP mikro dengan kinerja tinggi dan skalabilitas kuat (open source oleh ByteDance) | https://github.com/cloudwego/hertz |
| dotweb | Framework web mini yang sederhana | https://github.com/devfeel/dotweb |
| fiber | Framework Web bergaya Node.js Express | https://github.com/gofiber/fiber |
ORM
| Nama | Deskripsi | Repositori |
|---|---|---|
| gorm | Library ORM yang ramah pengembang | https://github.com/go-gorm/gorm |
| xorm | ORM yang sederhana dan kuat | https://gitea.com/xorm/xorm |
| ent | ORM open source oleh FaceBook | https://github.com/ent/ent |
| sqlx | Ekstensi powerful untuk sql | https://github.com/jmoiron/sqlx |
| beego/orm | orm bawaan beego | https://github.com/astaxie/beego/tree/master/orm |
| rel | ORM modern yang dapat diperluas | https://github.com/go-rel/rel |
| bun | ORM yang mengutamakan SQL | https://github.com/uptrace/bun |
Framework Microservice
| Nama | Deskripsi | Repositori |
|---|---|---|
| kratos | Framework microservice cloud native (open source oleh Bilibili) | https://github.com/go-kratos/kratos |
| go-kit | Library toolkit untuk pengembangan microservice | https://github.com/go-kit/kit |
| kitex | Framework microservice dengan kinerja tinggi dan skalabilitas (open source oleh ByteDance) | https://github.com/cloudwego/kitex |
| go-zero | Framework microservice cloud native (open source oleh Qiniu Cloud) | https://github.com/zeromicro/go-zero |
| go-micro | Sebuah framework microservice dari luar negeri | https://github.com/go-micro/go-micro |
| kite | Framework microservice (sudah lama tidak diperbarui) | https://github.com/koding/kite |
| dubbo-go | Implementasi go dari java dubbo (open source oleh Alibaba) | https://github.com/apache/dubbo-go |
| tarsgo | Implementasi go dari tars (open source oleh Tencent) | https://github.com/TarsCloud/TarsGo |
| juptiers | Framework microservice yang berorientasi pada governance (open source oleh Douyu) | https://github.com/douyu/jupiter |
| redsync | Distributed lock redis | https://github.com/go-redsync/redsync |
Easter Egg
jupiter dari Douyu adalah nama dewa Zeus, adalah raja para dewa, sedangkan kratos dari Bilibili adalah nama dewa perang Kratos, Kratos kemudian membunuh raja para dewa Zeus.
Komponen Log
| Nama | Deskripsi | Repositori |
|---|---|---|
| logrus | Library log terstruktur | https://github.com/sirupsen/logrus |
| zap | Library log berkinerja tinggi open source oleh uber | https://github.com/uber-go/zap |
| glog | Log eksekusi berjenjang | https://github.com/golang/glog |
| zerolog | Log json tanpa alokasi memori | https://github.com/rs/zerolog |
| apex/log | Library log terstruktur | https://github.com/apex/log |
| lumberjack | Library pemisahan log, mendukung pemisahan ukuran, pemisahan tanggal, kompresi file | https://github.com/natefinch/lumberjack |
Komponen Testing
| Nama | Deskripsi | Repositori |
|---|---|---|
| testify | Paket testing paling populer | https://github.com/stretchr/testify |
| ginkgo | Framework testing modern | https://github.com/onsi/ginkgo |
| ramsql | Engine SQL berbasis memori, terutama digunakan untuk testing unit SQL | https://github.com/proullon/ramsql |
| go-sqlmock | SQL Mock untuk testing | https://github.com/DATA-DOG/go-sqlmock |
| goconvey | Testing visualisasi di browser | https://github.com/smartystreets/goconvey |
| go-stress-testing | Alat pressure testing | https://github.com/link1st/go-stress-testing |
| xgo | Framework testing stub go, dicapai melalui penulisan ulang kode pada waktu kompilasi | https://github.com/xhd2015/xgo |
| gomonkey | Framework testing stub go, dicapai melalui modifikasi alamat fungsi | https://github.com/agiledragon/gomonkey |
Pemrosesan Data
| Nama | Deskripsi | Repositori |
|---|---|---|
| mapstructure | Konversi timbal balik antara map dan struct | https://github.com/mitchellh/mapstructure |
| cast | Konversi tipe data yang sangat mudah | https://github.com/spf13/cast |
| deepcopy | Salinan mendalam | https://github.com/mohae/deepcopy |
| copier | Dapat menyalin nilai field dengan nama yang sama antar struct | https://github.com/jinzhu/copier |
| go-pinyin | Konversi karakter Han ke pinyin | https://github.com/mozillazg/go-pinyin |
| go-streams | Pemrosesan data streaming | https://github.com/reugn/go-streams |
| stream | Pemrosesan streaming | https://github.com/xyctruth/stream |
| go-humanize | Mengonversi data ke format yang dapat dibaca manusia | https://github.com/dustin/go-humanize |
| uniseg | Pemisahan teks Unicode, pembungkus kata, dan perhitungan lebar string di Go | https://github.com/rivo/uniseg |
Validasi Data
| Nama | Deskripsi | Repositori |
|---|---|---|
| go-playground/validator/v10 | Validator data | https://github.com/go-playground/validator |
| go-cmp | Library untuk membandingkan nilai open source oleh Google | https://github.com/google/go-cmp |
| ozzo-validation | Library validasi data berbasis aturan | https://github.com/go-ozzo/ozzo-validation |
| go-tagexpr | Library validasi tag struct | https://github.com/bytedance/go-tagexpr |
Struktur Data
| Nama | Deskripsi | Repositori |
|---|---|---|
| gods | Implementasi struktur data umum | https://github.com/emirpasic/gods |
| go-datastructures | Implementasi struktur data umum | https://github.com/Workiva/go-datastructures |
| biset | Implementasi bitsets di Go | https://github.com/bits-and-blooms/bitset |
| bloom | Implementasi bloom filters di Go | https://github.com/bits-and-blooms/bloom |
| deque | Implementasi antrian double-ended berkinerja tinggi | https://github.com/edwingeng/deque |
| concurrent-map | Implementasi map terfragmentasi yang aman untuk konkurensi | https://github.com/orcaman/concurrent-map |
| samber/lo | Library pemrosesan data bergaya Lodash, mendukung generik | https://github.com/samber/lo |
| google/btree | Library BTree yang diimplementasikan oleh Google, mendukung generik | https://github.com/google/btree |
| gostl | Library struktur data seperti C++STL | https://github.com/liyue201/gostl |
Perhitungan Matematika
| Nama | Deskripsi | Repositori |
|---|---|---|
| gonum | Sebanding dengan numpy | https://github.com/gonum/gonum |
| decimal | Library operasi floating point presisi tinggi | https://github.com/shopspring/decimal |
| crunch | Library yang menyederhanakan operasi byte dan bit | https://github.com/superwhiskers/crunch |
| math-engine | Library engine parsing dan perhitungan ekspresi matematika | https://github.com/dengsgo/math-engine |
Engine Template
| Nama | Deskripsi | Repositori |
|---|---|---|
| pongo2 | Engine template bergaya Django | https://github.com/flosch/pongo2 |
| ace | Engine template html | https://github.com/yosssi/ace |
| mustache | Implementasi mustache di go | https://github.com/hoisie/mustache |
| hero | Engine template yang powerful dan cepat | https://github.com/shiyanhui/hero |
| quicktemplate | Engine template berkinerja tinggi, sesuai namanya | https://github.com/valyala/quicktemplate |
| amber | Engine template yang berasal dari HAML dan Jade | https://github.com/eknkc/amber |
Komponen Cache
| Nama | Deskripsi | Repositori |
|---|---|---|
| golang-lru | LRU yang aman untuk thread, dan cache LRU 2Q | https://github.com/hashicorp/golang-lru |
| ttlcache | Cache berbasis memori, mendukung TTL, generik | https://github.com/jellydator/ttlcache |
| gocache | Manajer middleware cache | https://github.com/eko/gocache |
| go-cache | Cache berbasis memori, cocok untuk aplikasi single machine, mendukung TTL | https://github.com/patrickmn/go-cache |
| ristretto | Cache memori berkinerja tinggi | https://github.com/dgraph-io/ristretto |
| bigcache | Cache key besar yang efisien berbasis memori | https://github.com/allegro/bigcache |
Database & Driver
| Nama | Deskripsi | Repositori |
|---|---|---|
| modernc.org/sqlite | Driver sqlite, ditulis murni dengan go, tidak memerlukan cgo | https://gitlab.com/cznic/sqlite |
| mattn/go-sqlite3 | Driver sqlite, memerlukan cgo | https://github.com/mattn/go-sqlite3 |
| denisenkom/go-mssqldb | Driver sqlserver, jarang diperbarui, direkomendasikan versi Microsoft | https://github.com/denisenkom/go-mssqldb |
| microsoft/go-mssqldb | Driver sqlserver, branch baru yang di-fork dan dipelihara oleh Microsoft | https://github.com/microsoft/go-mssqldb |
| pgx | Driver postgreSQL | https://github.com/jackc/pgx/ |
| mysql | Driver mysql | https://github.com/go-sql-driver/mysql |
| oci-go-sdk | Driver resmi oracle | https://github.com/oracle/oci-go-sdk |
| go-ora | Driver oracle, ditulis murni dengan go | https://github.com/sijms/go-ora |
| badger | Database kv embedded, berbasis LSM | https://github.com/dgraph-io/badger |
| boltdb | Database kv embedded, berbasis B+Tree | https://github.com/boltdb/bolt |
| goleveldb | Implementasi leveldb dalam bahasa go | https://github.com/syndtr/goleveldb |
| qmgo | Library operasi mongodb open source oleh Qiniu Cloud | https://github.com/qiniu/qmgo |
| mongo-go-driver | Driver resmi mongodb go | https://github.com/mongodb/mongo-go-driver |
| rqlite | Database relasional terdistribusi ringan berbasis sqlite | https://github.com/rqlite/rqlite/ |
| go-mysql | Kumpulan alat MySQL yang powerful | https://github.com/go-mysql-org/go-mysql |
| go-mysql-elasticsearch | Alat untuk sinkronisasi data MySQL ke Elasticsearch | https://github.com/go-mysql-org/go-mysql-elasticsearch |
| gofound | Mesin pencarian teks penuh single machine tingkat miliaran, | https://github.com/sea-team/gofound |
| bleve | Library pencarian teks penuh | https://github.com/blevesearch/bleve |
Serialisasi
| Nama | Deskripsi | Repositori |
|---|---|---|
| go-ini | Library serialisasi file ini | https://github.com/go-ini/ini |
| sonic | Library serialisasi json berkinerja tinggi open source oleh ByteDance | https://github.com/bytedance/sonic |
| easyjson | Library serialisasi json cepat | https://github.com/mailru/easyjson |
| gjson | Mendapatkan nilai key json dengan cepat, bukan library serialisasi tradisional | https://github.com/tidwall/gjson |
| go-yaml | Library serialisasi yaml | https://github.com/go-yaml/yaml |
| go-toml | Library serialisasi toml | https://github.com/pelletier/go-toml |
| properties | Library serialisasi properties | https://github.com/magiconair/properties |
| viper | Mendukung serialisasi berbagai format data, juga merupakan manajer konfigurasi | https://github.com/spf13/viper |
| configor | Serialisator berbagai format data yang ditulis oleh penulis gorm, manajer konfigurasi | https://github.com/jinzhu/configor |
Baris Perintah
| Nama | Deskripsi | Repositori |
|---|---|---|
| pflag | Paket flag bergaya POSIX/GUN | https://github.com/spf13/pflag |
| go-flags | Parser argumen perintah | https://github.com/jessevdk/go-flags |
| cobra | Scaffolding program baris perintah modern | https://github.com/spf13/cobra |
| dimiro1/banner | Library pembuatan banner yang estetis | https://github.com/dimiro1/banner |
| go-pretty | Output tabel, teks, progress bar baris perintah yang estetis | https://github.com/jedib0t/go-pretty |
| progressbar | Progress bar baris perintah yang aman untuk thread | https://github.com/schollz/progressbar |
| go-ansi | Utilitas urutan escape ANSI portabel Windows untuk bahasa Go | https://github.com/k0kubun/go-ansi |
| go-isatty | Library untuk menentukan tty | https://github.com/mattn/go-isatty |
Kompresi & Dekompresi
| Nama | Deskripsi | Repositori |
|---|---|---|
| klauspost/compress | Optimasi dan transformasi dari library compress standar | https://github.com/klauspost/compress |
| alexmullins/zip | Branch fork dari library standar archive/zip, mendukung kata sandi | https://github.com/alexmullins/zip |
| mholt/archiver | Library alat kompresi dan dekompresi yang mendukung banyak format (sangat direkomendasikan secara pribadi) | https://github.com/mholt/archiver |
| go-car | Implementasi file arsip CAR di go | https://github.com/ipld/go-car |
| go-unarr | Library kompresi dan dekompresi | https://github.com/gen2brain/go-unarr |
| xz | Library Golang murni untuk membaca dan menulis file kompresi xz | https://github.com/ulikunitz/xz |
Tanggal & Waktu
| Nama | Deskripsi | Repositori |
|---|---|---|
| carbon | Library penanganan tanggal waktu | https://github.com/golang-module/carbon |
| robfig/cron | Library tugas terjadwal | https://pkg.go.dev/github.com/robfig/cron/v3 |
| gron | Library tugas terjadwal | https://github.com/roylee0704/gron |
| jobrunner | Framework tugas terjadwal asinkron | https://github.com/bamzi/jobrunner |
| dateparse | Dapat mengurai string waktu tanpa mengetahui format | https://github.com/araddon/dateparse |
| jinzhu/now | Library alat tanggal | https://github.com/jinzhu/now |
Dependency Injection
| Nama | Deskripsi | Repositori |
|---|---|---|
| dig | Library dependency injection open source oleh uber, berbasis refleksi | https://darjun.github.io/2020/02/22/godailylib/dig/ |
| wire | Library dependency injection open source oleh Google, berbasis pembuatan kode | https://github.com/google/wire |
| inject | Alat dependency injection | https://github.com/codegangsta/inject |
| di | Wadah dependency injection | https://github.com/sarulabs/di |
Lokasi Geografis
| Nama | Deskripsi | Repositori |
|---|---|---|
| geoip2-golang | Konversi IP ke informasi geografis | https://github.com/oschwald/geoip2-golang |
| ip2location-go | Konversi IP ke informasi geografis | https://github.com/ip2location/ip2location-go |
Framework Crawling
| Nama | Deskripsi | Repositori |
|---|---|---|
| colly | Framework crawling yang sederhana dan kuat | https://github.com/gocolly/colly |
| goquery | Mirip dengan jQuery | https://github.com/PuerkitoBio/goquery |
Alat Jaringan
| Nama | Deskripsi | Repositori |
|---|---|---|
| gentleman | Klien http yang digerakkan oleh plugin, dapat diperluas | https://github.com/h2non/gentleman |
| resty | Klien http restful | https://pkg.go.dev/github.com/go-resty/resty/v2 |
| gopeed | Manajer unduhan modern yang mendukung semua platform, berbasis go dan flutter | https://github.com/GopeedLab/gopeed |
Email
| Nama | Deskripsi | Repositori |
|---|---|---|
| jordan-wright/email | Library pengiriman email yang kuat dan fleksibel | https://github.com/jordan-wright/email |
| gomail | Library pengiriman email | https://github.com/go-gomail/gomail |
| go-simple-mail | Library pengiriman email yang sederhana | https://github.com/xhit/go-simple-mail |
| go-mail | Library pengiriman email yang mudah digunakan dan komprehensif | https://github.com/wneessen/go-mail |
| email-verifier | Memverifikasi apakah email valid, tanpa perlu mengirim email | https://github.com/AfterShip/email-verifier |
| maddy | Server email modular | https://github.com/foxcpp/maddy |
| mox | Server email self-hosted yang komprehensif, open source, dan dapat dipelihara tinggi | https://github.com/mjl-/mox |
| hermes | Library pembuatan template email | https://github.com/matcornic/hermes |
| listmonk | Manajemen daftar email berkinerja tinggi, self-hosted, dan visual | https://github.com/knadh/listmonk |
| go-smtp | Klien dan Server SMTP yang ditulis dengan go | https://github.com/emersion/go-smtp |
| go-imap | Klien dan Server IMAP yang ditulis dengan go | https://github.com/emersion/go-imap |
Pengembangan Game
| Nama | Deskripsi | Repositori |
|---|---|---|
| ebitengine | Engine game 2d yang sangat sederhana | https://github.com/hajimehoshi/ebiten |
| Azul3D | Engine game 3d yang ditulis dengan go | https://github.com/azul3d/engine |
| engo | Engine game 2d open source yang ditulis dengan go | https://github.com/EngoEngine/engo |
| g3n/engine | Engine game go3d | https://github.com/g3n/engine |
| gonet | Sebuah framework server game | https://github.com/xtaci/gonet |
| leaf | Framework server game | https://github.com/name5566/leaf |
| cloud-game | Layanan game cloud berbasis web | https://github.com/giongto35/cloud-game |
GUI
| Nama | Deskripsi | Repositori |
|---|---|---|
| fyne | Toolkit pengembangan GUI lintas platform (benar-benar ada sesuatu) | https://github.com/fyne-io/fyne |
| go-flutter | Menulis flutter dengan go | https://github.com/go-flutter-desktop/go-flutter |
| Wails | Dapat dianggap sebagai替代品 Electron yang cepat dan ringan untuk Go | https://github.com/wailsapp/wails |
Interaksi Sistem
| Nama | Deskripsi | Repositori |
|---|---|---|
| gopsutil | Mendapatkan informasi sistem operasi, kompatibel dengan sistem utama | https://github.com/shirou/gopsutil |
| flock | File lock berbasis panggilan sistem operasi | https://github.com/gofrs/flock |
| sys | Library interaksi sistem operasi resmi | https://cs.opensource.google/go/x/sys |
Interaksi Lintas Bahasa
| Nama | Deskripsi | Repositori |
|---|---|---|
| gopher-lua | Mesin lua yang ditulis dengan go | https://github.com/yuin/gopher-lua |
| go-lua | Mesin lua yang ditulis dengan go | https://github.com/Shopify/go-lua |
| goja | Mendukung es5.1+ | https://github.com/dop251/goja |
| tengo | Tengo adalah bahasa skrip Go yang kecil, dinamis, cepat, dan aman | https://github.com/d5/tengo |
| goby | Bahasa skrip interpretatif yang terinspirasi dari ruby, diimplementasikan oleh go | https://github.com/goby-lang/goby |
| go+ | Bahasa skrip open source oleh Qiniu Cloud, dapat berinteraksi tanpa hambatan dengan go, juga disebut bahasa Q | https://github.com/goplus/gop |
| go-python | Memanggil cpython2 dengan go | https://github.com/sbinet/go-python |
| go-python3 | Memanggil cpython3 dengan go | https://github.com/DataDog/go-python3 |
Pemrosesan Gambar
| Nama | Deskripsi | Repositori |
|---|---|---|
| plot | Library plotting, banyak digunakan untuk visualisasi data | https://github.com/gonum/plot |
| gg | Library plotting 2d | https://github.com/fogleman/gg |
| gocv | Mendukung opencv4+ | https://github.com/hybridgroup/gocv |
| imaging | Library pemrosesan gambar yang sederhana | https://github.com/disintegration/imaging |
Pemrosesan Teks
| Nama | Deskripsi | Repositori |
|---|---|---|
| vale | Alat proofreading teks dengan kesadaran tata bahasa | https://github.com/errata-ai/vale |
Autentikasi & Otorisasi
| Nama | Deskripsi | Repositori |
|---|---|---|
| casbin | Library manajemen otorisasi yang fleksibel dan powerful | https://github.com/casbin/casbin |
| openfga | Library otorisasi/otorisasi berkinerja tinggi, berasal dari Google Zanzibar | https://github.com/openfga/openfga |
Pembuatan Kode
| Nama | Deskripsi | Repositori |
|---|---|---|
| jennifer | Library pembuatan kode | https://github.com/dave/jennifer |
Pemrosesan Regex
| Nama | Deskripsi | Repositori |
|---|---|---|
| commonregx | Library yang mengumpulkan ekspresi regex yang umum digunakan | https://github.com/mingrammer/commonregex |
Pemrosesan File
| Nama | Deskripsi | Repositori |
|---|---|---|
| filebox | Library alat operasi file | https://github.com/dstgo/filebox |
| size | Cepat menyelesaikan konversi antara ukuran file dan string | https://github.com/dstgo/size |
| checksum | Library yang menghitung tanda tangan hash file | https://github.com/codingsince1985/checksum |
| pdfcpu | Pemroses pdf | https://github.com/pdfcpu/pdfcpu |
| unioffice | Library pemrosesan office | https://github.com/unidoc/unioffice |
| gooxml | Library pemrosesan office | https://github.com/carmel/gooxml |
| pdfcpu | Library pemrosesan PDF | https://github.com/pdfcpu/pdfcpu |
| excelize | Library pemrosesan Excel | https://github.com/360EntSecGroup-Skylar/excelize |
Alat Umum
| Nama | Deskripsi | Repositori |
|---|---|---|
| lancet | Library alat multifungsi, sebanding dengan paket common di java | https://github.com/duke-git/lancet |
| bytebufferpool | Kolam buffer byte | https://github.com/valyala/bytebufferpool |
Framework Pengembangan
| Nama | Deskripsi | Repositori |
|---|---|---|
| goframe | Framework pengembangan go enterprise modern | https://github.com/gogf/gf |
Protokol Konsensus
| Nama | Deskripsi | Repositori |
|---|---|---|
| hashicorp/raft | Library raft open source oleh consul | https://github.com/hashicorp/raft |
| hashicorp/memberlist | Library gossip open source oleh consul | https://github.com/hashicorp/memberlist |
| etcd-io/raft | Library raft open source oleh etcd | https://github.com/etcd-io/raft |
OCR
| Nama | Deskripsi | Repositori |
|---|---|---|
| gosseract | Library OCR yang menggunakan library Tesseract C++ | https://github.com/otiai10/gosseract |
