Skip to content

Go 오픈소스 라이브러리大全

일부 오픈소스 Go 서드파티 라이브러리와 프레임워크를 수집하여 분류 및 정리함으로써 이후에 쉽게 찾아볼 수 있도록 하며, 새로운 프로젝트를 추가하는 PR 제출도 환영합니다.

TIP

순서는 순위를 나타내지 않으며, 실제 사용 경험을 바탕으로 판단하시기 바랍니다.

Web 프레임워크

이름설명저장소
gin가장 클래식한 web 프레임워크https://github.com/gin-gonic/gin
beego중국인이 개발한 web 프레임워크https://github.com/beego/beego
iris가장 빠르다고 주장하는 web 프레임워크https://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간단하게 풀스택 프로젝트를 구축할 수 있는 web 프레임워크https://github.com/gobuffalo/buffalo
hertz고성능과 높은 확장성을 갖춘 마이크로서비스 HTTP 프레임워크 (바이트댄스 오픈소스)https://github.com/cloudwego/hertz
dotweb간단하고 경량인 web 프레임워크https://github.com/devfeel/dotweb
fiberNode.js Express 스타일의 Web 프레임워크https://github.com/gofiber/fiber

ORM

이름설명저장소
gorm개발자 친화적인 ORM 라이브러리https://github.com/go-gorm/gorm
xorm간단하고 강력한 ORMhttps://gitea.com/xorm/xorm
entFacebook 오픈소스 ORMhttps://github.com/ent/ent
sqlxsql 라이브러리의 강력한 확장https://github.com/jmoiron/sqlx
beego/ormbeego 내장 ormhttps://github.com/astaxie/beego/tree/master/orm
rel확장 가능한 현대적 ORMhttps://github.com/go-rel/rel
bunSQL 우선의 ORMhttps://github.com/uptrace/bun

마이크로서비스 프레임워크

이름설명저장소
kratos클라우드 네이티브 마이크로서비스 프레임워크 (Bilibili 오픈소스)https://github.com/go-kratos/kratos
go-kit마이크로서비스 개발을 위한 도구 라이브러리https://github.com/go-kit/kit
kitex고성능과 높은 확장성을 갖춘 마이크로서비스 프레임워크 (바이트댄스 오픈소스)https://github.com/cloudwego/kitex
go-zero클라우드 네이티브 마이크로서비스 프레임워크 (Qiniu Cloud 오픈소스)https://github.com/zeromicro/go-zero
go-micro해외의 마이크로서비스 프레임워크https://github.com/go-micro/go-micro
kite마이크로서비스 프레임워크 (오래 업데이트되지 않음)https://github.com/koding/kite
dubbo-goJava dubbo 의 Go 구현 (알리바바 오픈소스)https://github.com/apache/dubbo-go
tarsgotars 의 Go 구현 (텐센트 오픈소스)https://github.com/TarsCloud/TarsGo
juptiers거버넌스 지향 마이크로서비스 프레임워크 (Douyu 오픈소스)https://github.com/douyu/jupiter
redsyncredis 분산 락https://github.com/go-redsync/redsync

이스터에그

Douyu 의 jupiter 는 제우스의 이름으로, 신들의 신이며, Bilibili 의 kratos 는 전신 크라토스의 이름으로, 크라토스는 나중에 신들의 신 제우스를 죽였습니다.

로그 컴포넌트

이름설명저장소
logrus구조화된 로그 라이브러리https://github.com/sirupsen/logrus
zapuber 오픈소스 고성능 로그 라이브러리https://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 엔진, 주로 SQL 단위 테스트용https://github.com/proullon/ramsql
go-sqlmock테스트용 SQL Mockhttps://github.com/DATA-DOG/go-sqlmock
goconvey브라우저에서 시각화 테스트https://github.com/smartystreets/goconvey
go-stress-testing부하 테스트 도구https://github.com/link1st/go-stress-testing
xgoGo 스터빙 테스트 프레임워크, 컴파일 시점 코드 재작성을 통해 구현https://github.com/xhd2015/xgo
gomonkeyGo 스터빙 테스트 프레임워크, 함수 주소 수정을 통해 구현https://github.com/agiledragon/gomonkey

데이터 처리

이름설명저장소
mapstructuremap 과 구조체 상호 변환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
unisegGo 에서 Unicode 텍스트 분할, 단어 래핑 및 문자열 너비 계산https://github.com/rivo/uniseg

데이터 검증

이름설명저장소
go-playground/validator/v10데이터 검증기https://github.com/go-playground/validator
go-cmp구글 오픈소스 값 비교 라이브러리https://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
bisetGo 에서 bitsets 구현https://github.com/bits-and-blooms/bitset
bloomGo 에서 bloom filters 구현https://github.com/bits-and-blooms/bloom
deque고성능 양방향 큐 구현https://github.com/edwingeng/deque
concurrent-map동시성 안전 분할 map 구현https://github.com/orcaman/concurrent-map
samber/loLodash 스타일 데이터 처리 라이브러리, 제네릭 지원https://github.com/samber/lo
google/btree구글 구현 BTree 라이브러리, 제네릭 지원https://github.com/google/btree
gostlC++ STL 과 유사한 데이터 구조 라이브러리https://github.com/liyue201/gostl

수학 계산

이름설명저장소
gonumnumpy 와 유사https://github.com/gonum/gonum
decimal고정밀 부동소수점 연산 라이브러리https://github.com/shopspring/decimal
crunch바이트 및 비트 연산을 단순화하는 라이브러리https://github.com/superwhiskers/crunch
math-engine수학 식 파싱 계산 엔진 라이브러리https://github.com/dengsgo/math-engine

템플릿 엔진

이름설명저장소
pongo2Django 스타일 템플릿 엔진https://github.com/flosch/pongo2
acehtml 템플릿 엔진https://github.com/yosssi/ace
mustachemustache 의 Go 구현https://github.com/hoisie/mustache
hero기능이 강력하고 빠른 템플릿 엔진https://github.com/shiyanhui/hero
quictemplate이름에서 알 수 있듯이, 고성능 템플릿 엔진https://github.com/valyala/quicktemplate
amberHAML 과 Jade 에서 유래한 템플릿 엔진https://github.com/eknkc/amber

캐시 컴포넌트

이름설명저장소
golang-lru스레드 안전 LRU 및 LRU 2Q 캐시https://github.com/hashicorp/golang-lru
ttlcache메모리 기반 캐시, TTL, 제네릭 지원https://github.com/jellydator/ttlcache
gocache캐시 미들웨어 관리자https://github.com/eko/gocache
go-cache메모리 기반 캐시, 단일 서버 애플리케이션용, TTL 지원https://github.com/patrickmn/go-cache
ristretto고성능 메모리 캐시https://github.com/dgraph-io/ristretto
bigcache메모리 기반 고효율 대용량 key 캐시https://github.com/allegro/bigcache

데이터베이스&드라이버

이름설명저장소
modernc.org/sqlitesqlite 드라이버, 순수 Go 작성, cgo 불필요https://gitlab.com/cznic/sqlite
mattn/go-sqlite3sqlite 드라이버, cgo 필요https://github.com/mattn/go-sqlite3
denisenkom/go-mssqldbsqlserver 드라이버, 업데이트가 많지 않음, 마이크로소프트 버전 권장https://github.com/denisenkom/go-mssqldb
microsoft/go-mssqldbsqlserver 드라이버, 마이크로소프트가 포크하여 유지 관리하는 새 브랜치https://github.com/microsoft/go-mssqldb
pgxpostgreSQL 드라이버https://github.com/jackc/pgx/
mysqlmysql 드라이버https://github.com/go-sql-driver/mysql
oci-go-sdkoracle 공식 드라이버https://github.com/oracle/oci-go-sdk
go-oraoracle 드라이버, 순수 Go 작성https://github.com/sijms/go-ora
badger임베디드 kv 데이터베이스, LSM 기반https://github.com/dgraph-io/badger
boltdb임베디드 kv 데이터베이스, B+Tree 기반https://github.com/boltdb/bolt
goleveldbGo 언어로 구현된 leveldbhttps://github.com/syndtr/goleveldb
qmgoQiniu Cloud 오픈소스 mongodb 조작 라이브러리https://github.com/qiniu/qmgo
mongo-go-drivermongodb 공식 Go 드라이버https://github.com/mongodb/mongo-go-driver
rqlitesqlite 기반 경량 분산 관계형 데이터베이스https://github.com/rqlite/rqlite/
go-mysql강력한 MySQL 도구 모음https://github.com/go-mysql-org/go-mysql
go-mysql-elasticsearchMySQL 데이터를 Elasticsearch 로 동기화하는 도구https://github.com/go-mysql-org/go-mysql-elasticsearch
gofound단일 서버 억 단위 전체 텍스트 검색 엔진https://github.com/sea-team/gofound
bleve전체 텍스트 검색 라이브러리https://github.com/blevesearch/bleve

직렬화

이름설명저장소
go-iniini 파일 직렬화 라이브러리https://github.com/go-ini/ini
sonic바이트댄스 오픈소스 고성능 json 직렬화 라이브러리https://github.com/bytedance/sonic
easyjsonjson 고속 직렬화 라이브러리https://github.com/mailru/easyjson
gjsonjson 키 - 값 빠르게 가져오기, 비전통적 직렬화 라이브러리https://github.com/tidwall/gjson
go-yamlyaml 직렬화 라이브러리https://github.com/go-yaml/yaml
go-tomltoml 직렬화 라이브러리https://github.com/pelletier/go-toml
propertiesproperties 직렬화 라이브러리https://github.com/magiconair/properties
viper여러 데이터 형식 직렬화 지원, 구성 관리자 역할도 함https://github.com/spf13/viper
configorgorm 작성자가 작성한 여러 데이터 형식 직렬화기, 구성 관리자https://github.com/jinzhu/configor

명령줄

이름설명저장소
pflagPOSIX/GUN 스타일 flag 패키지https://github.com/spf13/pflag
go-flags명령 파라미터 파서https://github.com/jessevdk/go-flags
cobra현대적 명령줄 프로그램 구축 스캐폴딩https://github.com/spf13/cobra
dimiro1/banner미려한 banner 구축 라이브러리https://github.com/dimiro1/banner
go-pretty미려한 명령줄 테이블, 텍스트, 진행률 표시줄 출력https://github.com/jedib0t/go-pretty
progressbar스레드 안전 명령줄 진행률 표시줄https://github.com/schollz/progressbar
go-ansiGo 언어용 Windows 휴대용 ANSI 이스케이프 시퀀스 유틸리티https://github.com/k0kubun/go-ansi
go-isattytty 판단 라이브러리https://github.com/mattn/go-isatty

압축/압축 해제

이름설명저장소
klauspost/compresscompress 표준 라이브러리 최적화 및 개선https://github.com/klauspost/compress
alexmullins/ziparchive/zip 표준 라이브러리 포크 브랜치, 비밀번호 지원https://github.com/alexmullins/zip
mholt/archiver많은 형식의 압축/압축 해제 도구 라이브러리 (개인적으로 매우 추천)https://github.com/mholt/archiver
go-carCAR 아카이브 파일의 Go 구현https://github.com/ipld/go-car
go-unarr압축/압축 해제 라이브러리https://github.com/gen2brain/go-unarr
xzxz 압축 파일 읽기/쓰기를 위한 순수 Golang 라이브러리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

의존성 주입

이름설명저장소
diguber 오픈소스 의존성 주입 라이브러리, 리플렉션 기반https://darjun.github.io/2020/02/22/godailylib/dig/
wire구글 오픈소스 의존성 주입 라이브러리, 코드 생성 기반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
goqueryj-query 와 유사https://github.com/PuerkitoBio/goquery

네트워크 도구

이름설명저장소
gentleman플러그인 기반, 확장 가능한 http 클라이언트https://github.com/h2non/gentleman
restyrestful http 클라이언트https://pkg.go.dev/github.com/go-resty/resty/v2
gopeed모든 플랫폼을 지원하는 현대적 다운로드 관리자, Go 및 flutter 기반https://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-smtpGo 로 작성된 SMTP 클라이언트 및 서버https://github.com/emersion/go-smtp
go-imapGo 로 작성된 IMAP 클라이언트 및 서버https://github.com/emersion/go-imap

게임 개발

이름설명저장소
ebitengine매우 간단한 2d 게임 엔진https://github.com/hajimehoshi/ebiten
Azul3DGo 로 작성된 3d 게임 엔진https://github.com/azul3d/engine
engoGo 로 작성된 오픈소스 2d 게임 엔진https://github.com/EngoEngine/engo
g3n/enginego3d 게임 엔진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-flutterGo 로 flutter 작성https://github.com/go-flutter-desktop/go-flutter
WailsGo 의 빠르고 가벼운 Electron 대안으로 볼 수 있음https://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-luaGo 로 작성된 lua 가상머신https://github.com/yuin/gopher-lua
go-luaGo 로 작성된 lua 가상머신https://github.com/Shopify/go-lua
gojaes5.1+ 지원https://github.com/dop251/goja
tengoTengo 는 작고, 동적이며, 빠르고, 안전한 Go 스크립트 언어https://github.com/d5/tengo
gobyruby 에서 영감을 받아 Go 로 구현한 인터프리터 스크립트 언어https://github.com/goby-lang/goby
go+Qiniu Cloud 오픈소스 스크립트 언어, Go 와 원활하게 상호작용, Q 언어라고도 함https://github.com/goplus/gop
go-pythonGo 에서 cpython2 호출https://github.com/sbinet/go-python
go-pytyon3Go 에서 cpython3 호출https://github.com/DataDog/go-python3

이미지 처리

이름설명저장소
plot플롯 라이브러리, 주로 데이터 시각화용https://github.com/gonum/plot
gg2d 플롯 라이브러리https://github.com/fogleman/gg
gocvopencv4+ 지원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고성능 권한/인가 라이브러리, Google Zanzibar 에서 유래https://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
pdfcpupdf 처리기https://github.com/pdfcpu/pdfcpu
uniofficeoffice 처리 라이브러리https://github.com/unidoc/unioffice
gooxmloffice 처리 라이브러리https://github.com/carmel/gooxml
pdfcpuPDF 처리 라이브러리https://github.com/pdfcpu/pdfcpu
excelizeExcel 처리 라이브러리https://github.com/360EntSecGroup-Skylar/excelize

유틸리티

이름설명저장소
lancet다목적 도구 라이브러리, Java 의 common 패키지와 유사https://github.com/duke-git/lancet
bytebufferpool바이트 버퍼 풀https://github.com/valyala/bytebufferpool

개발 프레임워크

이름설명저장소
goframe현대 기업급 Go 개발 프레임워크https://github.com/gogf/gf

합의 프로토콜

이름설명저장소
hashicorp/raftconsul 오픈소스 raft 라이브러리https://github.com/hashicorp/raft
hashicorp/memberlistconsul 오픈소스 gossip 라이브러리https://github.com/hashicorp/memberlist
etcd-io/raftetcd 오픈소스 raft 라이브러리https://github.com/etcd-io/raft

OCR

이름설명저장소
gosseractTesseract C++ 라이브러리를 사용한 OCR 라이브러리https://github.com/otiai10/gosseract

Golang by www.golangdev.cn edit