A%20curated%20list%20of%20awesome%20Go%20frameworks,%20libraries%20and%20software.%20Inspired%20by awesome-python.
Please%20take%20a%20quick%20gander%20at%20the contribution%20guidelines first.%20Thanks%20to%20all contributors;%20you%20rock!
Awesome%20Go
Audio%20&%20MusicAuthentication%20&%20OAuthCommand%20LineConfigurationContinuous%20IntegrationCSS%20PreprocessorsData%20StructuresDatabaseDatabase%20DriversDate%20&%20TimeDistributed%20SystemsEmailEmbeddable%20Scripting%20LanguagesFinancialFormsGame%20DevelopmentGeneration%20&%20GenericsGo%20CompilersGoroutinesGUIHardwareImagesLoggingMachine%20LearningMessagingMiscellaneousNatural%20Language%20ProcessingNetworkingOpenGLORMPackage%20ManagementQuery%20LanguageResource%20EmbeddingScience%20and%20Data%20AnalysisSecuritySerializationTemplate%20EnginesTestingText%20ProcessingThird-party%20APIsUtilitiesValidationVersion%20ControlVideoWeb%20FrameworksMiddlewaresActual%20middlewaresLibraries%20for%20creating%20HTTP%20middlewaresWindowsTools
Code%20AnalysisEditor%20PluginsGo%20ToolsSoftware%20PackagesDevOps%20ToolsOther%20SoftwareServer%20applications
Resources
BenchmarksConferencesE-BooksTwitterWebsitesTutorialsLibraries%20for%20manipulating%20audio.
flac -%20A%20native%20Go%20FLAC%20decoder.flac -%20A%20native%20Go%20FLAC%20decoder.gaad -%20A%20native%20Go%20AAC%20bitstream%20parsergo-sox -%20libsox%20bindings%20for%20go.go_mediainfo -%20libmediainfo%20bindings%20for%20go.gosamplerate -%20libsamplerate%20bindings%20for%20go.id3v2 -%20Fast%20and%20stable%20ID3%20parsing%20and%20writing%20library%20for%20Gomix -%20Sequence-based%20Go-native%20audio%20mixer%20for%20music%20apps.mp3 -%20A%20native%20Go%20MP3%20decoder.music-theory -%20Music%20theory%20models%20in%20Go.PortAudio -%20Go%20bindings%20for%20the%20PortAudio%20audio%20I/O%20library.portmidi -%20Go%20bindings%20for%20PortMidi.taglib -%20Go%20bindings%20for%20taglib.vorbis -%20A%20“native”%20Go%20Vorbis%20decoder%20(uses%20CGO,%20but%20has%20no%20dependencies).waveform -%20Go%20package%20capable%20of%20generating%20waveform%20images%20from%20audio%20streams.Libraries%20for%20implementing%20authentications%20schemes.
authboss -%20A%20modular%20authentication%20system%20for%20the%20web.%20It%20tries%20to%20remove%20as%20much%20boilerplate%20and%20“hard%20things”%20as%20possible%20so%20that%20each%20time%20you%20start%20a%20new%20web%20project%20in%20Go,%20you%20can%20plug%20it%20in,%20configure,%20and%20start%20building%20your%20app%20without%20having%20to%20build%20an%20authentication%20system%20each%20time.Go-AWS-Auth -%20AWS%20(Amazon%20Web%20Services)%20request%20signing%20library.go-jose -%20A%20fairly%20complete%20implementation%20of%20the%20JOSE%20working%20group’s%20JSON%20Web%20Token,%20JSON%20Web%20Signatures,%20and%20JSON%20Web%20Encryption%20specs.go-oauth2-server -%20A%20standalone,%20specification-compliant,%20OAuth2%20server%20written%20in%20Golang.go.auth -%20Authentication%20API%20for%20Go%20web%20applications.gologin -%20chainable%20handlers%20for%20login%20with%20OAuth1%20and%20OAuth2%20authentication%20providers.gorbac -%20provides%20a%20lightweight%20role-based%20access%20control%20(RBAC)%20implementation%20in%20Golang.goth -%20provides%20a%20simple,%20clean,%20and%20idiomatic%20way%20to%20use%20OAuth%20and%20OAuth2.%20Handles%20multiple%20provides%20out%20of%20the%20box.httpauth -%20HTTP%20Authentication%20middleware.jwt -%20A%20clean%20and%20easy%20to%20use%20implementation%20of%20JSON%20Web%20Tokens%20(JWT).jwt-auth -%20JWT%20middleware%20for%20goLang%20http%20servers%20with%20many%20configuration%20options.jwt-go -%20Golang%20implementation%20of%20JSON%20Web%20Tokens%20(JWT).oauth2 -%20Successor%20of%20goauth2.%20Generic%20OAuth%202.0%20package%20that%20comes%20with%20JWT,%20Google%20APIs,%20Compute%20Engine%20and%20App%20Engine%20support.osin -%20Golang%20OAuth2%20server%20library.permissions2 -%20Library%20for%20keeping%20track%20of%20users,%20login%20states%20and%20permissions.%20Uses%20secure%20cookies%20and%20bcrypt.traefik -%20A%20reverse%20proxy%20and%20load%20balancer%20with%20support%20for%20multiple%20backends.yubigo -%20a%20Yubikey%20client%20package%20that%20provides%20a%20simple%20API%20to%20integrate%20the%20Yubico%20Yubikey%20into%20a%20go%20application.Libraries%20for%20building%20standard%20or%20basic%20Command%20Line%20applications
cli -%20A%20feature-rich%20and%20easy%20to%20use%20command-line%20package%20based%20on%20golang%20tagcli-init -%20The%20easy%20way%20to%20start%20building%20Golang%20command%20line%20application.climax -%20An%20alternative%20CLI%20with%20“human%20face”,%20in%20spirit%20of%20Go%20commandcobra -%20A%20Commander%20for%20modern%20Go%20CLI%20interactionsdocopt.go -%20A%20command-line%20arguments%20parser%20that%20will%20make%20you%20smile.drive -%20Google%20Drive%20client%20for%20the%20commandlinego-arg -%20Struct-based%20argument%20parsing%20in%20Gogo-flags -%20go%20command%20line%20option%20parserkingpin -%20A%20command%20line%20and%20flag%20parser%20supporting%20sub%20commands.liner -%20A%20Go%20readline-like%20library%20for%20command-line%20interfaces.mitchellh/cli -%20A%20Go%20library%20for%20implementing%20command-line%20interfaces.mow.cli -%20A%20Go%20library%20for%20building%20CLI%20applications%20with%20sophisticated%20flag%20and%20argument%20parsing%20and%20validation.pflag -%20Drop-in%20replacement%20for%20Go’s%20flag%20package,%20implementing%20POSIX/GNU-style%20–flags.readline -%20A%20pure%20golang%20implementation%20that%20provide%20most%20of%20features%20in%20GNU-Readline%20under%20MIT%20license.sflags -%20Struct%20based%20flags%20generator%20for%20flag,%20urfave/cli,%20pflag,%20cobra,%20kingpin%20and%20other%20libraries.ukautz/clif -%20A%20small%20command%20line%20interface%20framework.urfave/cli -%20A%20simple,%20fast,%20and%20fun%20package%20for%20building%20command%20line%20apps%20in%20Go%20(formerly%20codegangsta/cli).wlog -%20A%20simple%20logging%20interface%20that%20supports%20cross-platform%20color%20and%20concurrency.wmenu -%20An%20easy%20to%20use%20menu%20structure%20for%20cli%20applications%20that%20prompts%20users%20to%20make%20choices.Libraries%20for%20building%20Console%20Applications%20and%20Console%20User%20Interfaces
aurora -%20ANSI%20terminal%20colors%20that%20supports%20fmt.Printf/Sprintfchalk -%20Intuitive%20package%20for%20prettifying%20terminal/console%20output.color -%20Versatile%20package%20for%20colored%20terminal%20output.colourize -%20Go%20library%20for%20ANSI%20colour%20text%20in%20terminals.go-colortext -%20Go%20library%20for%20color%20output%20in%20terminals.gocui -%20Minimalist%20Go%20library%20aimed%20at%20creating%20Console%20User%20Interfaces.gommon/color -%20Style%20terminal%20text.termbox-go -%20Termbox%20is%20a%20library%20for%20creating%20cross-platform%20text-based%20interfaces.termtables -%20A%20Go%20port%20of%20the%20Ruby%20library terminal-tables for%20simple%20ASCII%20table%20generation%20as%20well%20as%20providing%20markdown%20and%20HTML%20outputtermui -%20Go%20terminal%20dashboard%20based%20on termbox-go and%20inspired%20by blessed-contrib.uilive -%20A%20library%20for%20updating%20terminal%20output%20in%20realtime.uiprogress -%20A%20flexible%20library%20to%20render%20progress%20bars%20in%20terminal%20applications.uitable -%20A%20library%20to%20improve%20readability%20in%20terminal%20apps%20using%20tabular%20data.Libraries%20for%20configuration%20parsing
config -%20JSON%20or%20YAML%20configuration%20wrapper%20with%20environment%20variables%20and%20flags%20parsing.configure -%20Provides%20configuration%20through%20multiple%20sources,%20including%20JSON,%20flags%20and%20environment%20variables.env -%20Parse%20environment%20variables%20to%20Go%20structs%20(with%20defaults).envcfg -%20Un-marshaling%20environment%20variables%20to%20Go%20structs.envconf -%20Configuration%20from%20environmentenvconfig -%20Read%20your%20configuration%20from%20environment%20variables.gcfg -%20read%20INI-style%20configuration%20files%20into%20Go%20structs;%20supports%20user-defined%20types%20and%20subsectionsgoConfig -%20Parse%20a%20struct%20as%20input%20and%20populates%20the%20fields%20of%20this%20struct%20with%20parameters%20fom%20command%20line,%20environment%20variables%20and%20configuration%20file.gofigure -%20Go%20application%20configuration%20made%20easyhjson -%20Human%20JSON,%20a%20configuration%20file%20format%20for%20humans.%20Relaxed%20syntax,%20fewer%20mistakes,%20more%20comments.ingo -%20Flags%20persisted%20in%20an%20ini-like%20config%20fileini -%20Go%20package%20for%20read%20and%20write%20INI%20filesmini -%20A%20golang%20package%20for%20parsing%20ini-style%20configuration%20filesstore -%20A%20lightweight%20configuration%20manager%20for%20Goviper -%20Go%20configuration%20with%20fangsTools%20for%20help%20with%20continuous%20integration
drone -%20Drone%20is%20a%20Continuous%20Integration%20platform%20built%20on%20Docker,%20written%20in%20Gogoveralls -%20Go%20integration%20for%20Coveralls.io%20continuous%20code%20coverage%20tracking%20system.overalls -%20Multi-Package%20go%20project%20coverprofile%20for%20tools%20like%20goverallsLibraries%20for%20preprocessing%20CSS%20files
c6 -%20High%20performance%20SASS%20compatible-implementation%20compiler%20written%20in%20Gogcss -%20Pure%20Go%20CSS%20Preprocessor.go-libsass -%20Go%20wrapper%20to%20the%20100%%20Sass%20compatible%20libsass%20project.Generic%20datastructures%20and%20algorithms%20in%20Go.
binpacker -%20Binary%20packer%20and%20unpacker%20helps%20user%20build%20custom%20binary%20stream.bitset -%20Go%20package%20implementing%20bitsets.bloom -%20Bloom%20filters%20implemented%20in%20Go.boomfilters -%20Probabilistic%20data%20structures%20for%20processing%20continuous,%20unbounded%20streamscount-min-log -%20A%20Go%20implementation%20Count-Min-Log%20sketch:%20Approximately%20counting%20with%20approximate%20counters%20(Like%20Count-Min%20sketch%20but%20using%20less%20memory).cuckoofilter -%20Cuckoo%20filter:%20a%20good%20alternative%20to%20a%20counting%20bloom%20filter%20implemented%20in%20Go.encoding -%20Integer%20Compression%20Libraries%20for%20Go.go-adaptive-radix-tree -%20A%20Go%20implementation%20of%20Adaptive%20Radix%20Tree.go-datastructures -%20A%20collection%20of%20useful,%20performant,%20and%20thread-safe%20data%20structuresgo-geoindex -%20In-memory%20geo%20index.gods -%20Go%20Data%20Structures.%20Containers,%20Sets,%20Lists,%20Stacks,%20Maps,%20BidiMaps,%20Trees,%20HashSet%20etc.golang-set -%20Thread-Safe%20and%20Non-Thread-Safe%20high-performance%20sets%20for%20Go.goskiplist -%20A%20skip%20list%20implementation%20in%20Go.gota -%20An%20implementation%20of%20dataframes,%20series,%20and%20data%20wrangling%20methods%20for%20Go.hilbert -%20Go%20package%20for%20mapping%20values%20to%20and%20from%20space-filling%20curves,%20such%20as%20Hilbert%20and%20Peano%20curves.levenshtein -%20Levenshtein%20distance%20and%20similarity%20metrics%20with%20customizable%20edit%20costs%20and%20Winkler-like%20bonus%20for%20common%20prefix.levenshtein -%20Implementation%20to%20calculate%20levenshtein%20distance%20in%20Go.mafsa -%20MA-FSA%20implementation%20with%20Minimal%20Perfect%20Hashingroaring -%20Go%20package%20implementing%20compressed%20bitsets.skiplist -%20Skiplist%20implementation%20in%20Gotrie -%20Trie%20implementation%20in%20Gottlcache -%20An%20in-memory%20LRU%20string-interface{}%20map%20with%20expiration%20for%20golangwillf/bloom -%20Go%20package%20implementing%20Bloom%20filters.Databases%20implemented%20in%20Go.
BigCache -%20Efficient%20key/value%20cache%20for%20gigabytes%20of%20data.bolt -%20A%20low-level%20key/value%20database%20for%20Go.buntdb -%20A%20fast,%20embeddable,%20in-memory%20key/value%20database%20for%20Go%20with%20custom%20indexing%20and%20spatial%20support.cache2go -%20An%20in-memory%20key:value%20cache%20which%20supports%20automatic%20invalidation%20based%20on%20timeouts.cockroach -%20A%20Scalable,%20Geo-Replicated,%20Transactional%20Datastorecouchcache -%20A%20RESTful%20caching%20micro-service%20backed%20by%20Couchbase%20server.dgraph -%20Scalable,%20Distributed,%20Low%20Latency,%20High%20Throughput%20Graph%20Database.diskv -%20A%20home-grown%20disk-backed%20key-value%20store.eliasdb -%20Dependency-free,%20transactional%20graph%20database%20with%20REST%20API,%20phrase%20search%20and%20SQL-like%20query%20language.forestdb -%20Go%20bindings%20for%20ForestDB.GCache -%20Cache%20library%20with%20support%20for%20expirable%20Cache,%20LFU,%20LRU%20and%20ARC.geocache -%20An%20in-memory%20cache%20that%20is%20suitable%20for%20geolocation%20based%20applications.go-cache -%20An%20in-memory%20key:value%20store/cache%20(similar%20to%20Memcached)%20library%20for%20Go,%20suitable%20for%20single-machine%20applications.goleveldb -%20An%20implementation%20of%20the LevelDB key/value%20database%20in%20the%20Go.groupcache -%20Groupcache%20is%20a%20caching%20and%20cache-filling%20library,%20intended%20as%20a%20replacement%20for%20memcached%20in%20many%20cases.influxdb -%20Scalable%20datastore%20for%20metrics,%20events,%20and%20real-time%20analyticsledisdb -%20Ledisdb%20is%20a%20high%20performance%20NoSQL%20like%20Redis%20based%20on%20LevelDB.levigo -%20Levigo%20is%20a%20Go%20wrapper%20for%20LevelDB.moss -%20Moss%20is%20a%20simple%20LSM%20key-value%20storage%20engine%20written%20in%20100%%20Go.piladb -%20Lightweight%20RESTful%20database%20engine%20based%20on%20stack%20data%20structures.pREST -%20Serve%20a%20RESTful%20API%20from%20any%20PostgreSQL%20database.prometheus -%20Monitoring%20system%20and%20time%20series%20database.rqlite -%20The%20lightweight,%20distributed,%20relational%20database%20built%20on%20SQLite.tidb -%20TiDB%20is%20a%20distributed%20SQL%20database.%20Inspired%20by%20the%20design%20of%20Google%20F1.tiedot -%20Your%20NoSQL%20database%20powered%20by%20Golang.Tile38 -%20A%20geolocation%20DB%20with%20spatial%20index%20and%20realtime%20geofencing.Database%20schema%20migration.
darwin -%20Database%20schema%20evolution%20library%20for%20Gogoose -%20Database%20migration%20tool.%20You%20can%20manage%20your%20database’s%20evolution%20by%20creating%20incremental%20SQL%20or%20Go%20scripts.gormigrate -%20Database%20schema%20migration%20helper%20for%20Gorm%20ORM.migrate -%20Database%20migration%20handling%20in%20Golang%20support%20MySQL,%20PostgreSQL,%20Cassandra,%20and%20SQLite.pravasan -%20Simple%20Migration%20tool%20-%20currently%20for%20MySQL%20but%20planning%20to%20support%20soon%20for%20Postgres,%20SQLite,%20MongoDB,%20etc.,soda -%20Database%20migration,%20creation,%20ORM,%20etc…%20for%20MySQL,%20PostgreSQL,%20and%20SQLite.sql-migrate -%20Database%20migration%20tool.%20Allows%20embedding%20migrations%20into%20the%20application%20using%20go-bindata.Database%20tools.
go-mysql -%20A%20go%20toolset%20to%20handle%20MySQL%20protocol%20and%20replication.go-mysql-elasticsearch -%20Sync%20your%20MySQL%20data%20into%20Elasticsearch%20automatically.kingshard -%20kingshard%20is%20a%20high%20performance%20proxy%20for%20MySQL%20powered%20by%20Golang.myreplication -%20MySql%20binary%20log%20replication%20listener.%20Support%20statement%20and%20row%20based%20replication.orchestrator -%20MySQL%20replication%20topology%20manager%20&%20visualizerpgweb -%20A%20web-based%20PostgreSQL%20database%20browservitess -%20vitess%20provides%20servers%20and%20tools%20which%20facilitate%20scaling%20of%20MySQL%20databases%20for%20large%20scale%20web%20services.SQL%20query%20builder,%20libraries%20for%20building%20and%20using%20SQL.
dat -%20Go%20Postgres%20Data%20Access%20ToolkitDotsql -%20Go%20library%20that%20helps%20you%20keep%20sql%20files%20in%20one%20place%20and%20use%20it%20with%20ease.goqu -%20An%20idiomatic%20SQL%20builder%20and%20query%20library.igor -%20Abstraction%20layer%20for%20PostgreSQL%20that%20supports%20advanced%20functionality%20and%20uses%20gorm-like%20syntax.ozzo-dbx -%20Powerful%20data%20retrieval%20methods%20as%20well%20as%20DB-agnostic%20query%20building%20capabilities.scaneo -%20Generate%20Go%20code%20to%20convert%20database%20rows%20into%20arbitrary%20structs.sqrl -%20SQL%20query%20builder,%20fork%20of%20Squirrel%20with%20improved%20performance.Squirrel -%20Go%20library%20that%20helps%20you%20build%20SQL%20queries.xo -%20Generate%20idiomatic%20Go%20code%20for%20databases%20based%20on%20existing%20schema%20definitions%20or%20custom%20queries%20supporting%20PostgreSQL,%20MySQL,%20SQLite,%20Oracle,%20and%20Microsoft%20SQL%20Server.Libraries%20for%20connecting%20and%20Operating%20databases.
Relational%20Databases
bgc -%20Datastore%20Connectivity%20for%20BigQuery%20for%20go.firebirdsql -%20Firebird%20RDBMS%20SQL%20driver%20for%20Gogo-adodb -%20Microsoft%20ActiveX%20Object%20DataBase%20driver%20for%20go%20that%20using%20database/sql.go-bqstreamer -%20BigQuery%20fast%20and%20concurrent%20stream%20insert.go-mssqldb -%20Microsoft%20MSSQL%20driver%20prototype%20in%20go%20language.go-oci8 -%20Oracle%20driver%20for%20go%20that%20using%20database/sql.go-sql-driver/mysql -%20MySQL%20driver%20for%20Go.go-sqlite3 -%20SQLite3%20driver%20for%20go%20that%20using%20database/sql.gofreetds Microsoft%20MSSQL%20driver.%20Go%20wrapper%20over FreeTDS.pgx -%20PostgreSQL%20driver%20supporting%20features%20beyond%20those%20exposed%20by%20database/sql.pq -%20Pure%20Go%20Postgres%20driver%20for%20database/sql.NoSQL%20Databases
aerospike-client-go -%20Aerospike%20client%20in%20Go%20language.arangolite -%20Lightweight%20golang%20driver%20for%20ArangoDB.asc -%20Datastore%20Connectivity%20for%20Aerospike%20for%20go.cayley -%20A%20graph%20database%20with%20support%20for%20multiple%20backends.dsc -%20Datastore%20connectivity%20for%20SQL,%20NoSQL,%20structured%20files.dynago -%20Dynago%20is%20a%20principle%20of%20least%20surprise%20client%20for%20DynamoDBgo-couchbase -%20Couchbase%20client%20in%20Gogo-couchdb -%20Yet%20another%20CouchDB%20HTTP%20API%20wrapper%20for%20Gogocb -%20Official%20Couchbase%20Go%20SDKgocql -%20A%20Go%20language%20driver%20for%20Apache%20Cassandra.gomemcache -%20memcache%20client%20library%20for%20the%20Go%20programming%20language.gorethink -%20Go%20language%20driver%20for%20RethinkDBgoriak -%20Go%20language%20driver%20for%20Riak%20KVmgo -%20MongoDB%20driver%20for%20the%20Go%20language%20that%20implements%20a%20rich%20and%20well%20tested%20selection%20of%20features%20under%20a%20very%20simple%20API%20following%20standard%20Go%20idioms.neo4j -%20Neo4j%20Rest%20API%20Bindings%20for%20GolangNeo4j-GO -%20Neo4j%20REST%20Client%20in%20golang.neoism -%20Neo4j%20client%20for%20Golangredigo -%20Redigo%20is%20a%20Go%20client%20for%20the%20Redis%20database.redis -%20Redis%20client%20for%20Golangredis -%20A%20simple,%20powerful%20Redis%20client%20for%20Go.redis -%20Redis-protocol%20compatible%20TCP%20servers/services.Search%20and%20Analytic%20Databases
bleve -%20A%20modern%20text%20indexing%20library%20for%20go.elastic -%20Elasticsearch%20client%20for%20Go.elastigo -%20A%20Elasticsearch%20client%20library.goes -%20A%20library%20to%20interact%20with%20Elasticsearch.skizze -%20A%20probabilistic%20data-structures%20service%20and%20storage.Libraries%20for%20working%20with%20dates%20and%20times.
carbon -%20A%20simple%20Time%20extension%20with%20a%20lot%20of%20util%20methods,%20ported%20from%20php%20Carbon%20library.durafmt -%20A%20time%20duration%20formatting%20library%20for%20Go.go-persian-calendar -%20The%20implementation%20of%20the%20Persian%20(Solar%20Hijri)%20Calendar%20in%20Go%20(golang).goweek -%20Library%20for%20working%20with%20week%20entity%20in%20golang.now -%20Now%20is%20a%20time%20toolkit%20for%20golang.NullTime -%20Nullable%20time.Timetimeutil -%20Useful%20extensions%20(Timedelta,%20Strftime,%20…)%20to%20the%20golang’s%20time%20package.Packages%20that%20help%20with%20building%20Distributed%20Systems.
celeriac -%20A%20library%20for%20adding%20support%20for%20interacting%20and%20monitoring%20Celery%20workers,%20tasks%20and%20events%20in%20Goflowgraph -%20MPI-style%20ready-send%20coordination%20layer.gleam -%20Fast%20and%20scalable%20distributed%20map/reduce%20system%20written%20in%20pure%20Go%20and%20Luajit,%20combining%20Go’s%20high%20concurrency%20with%20Luajit’s%20high%20performance,%20runs%20standalone%20or%20distributed.glow -%20Easy-to-Use%20scalable%20distributed%20big%20data%20processing,%20Map-Reduce,%20DAG%20execution,%20all%20in%20pure%20Go.go-jump -%20A%20port%20of%20Google’s%20“Jump”%20Consistent%20Hash%20function.gorpc -%20Simple,%20fast%20and%20scalable%20RPC%20library%20for%20high%20load.grpc-go -%20The%20Go%20language%20implementation%20of%20gRPC.%20HTTP/2%20based%20RPC.hprose -%20A%20very%20newbility%20RPC%20Library,%20support%2025+%20languages%20now.jsonrpc -%20The%20jsonrpc%20package%20helps%20implement%20of%20JSON-RPC%202.0.jsonrpc -%20A%20JSON-RPC%202.0%20HTTP%20client%20implementationmicro -%20A%20pluggable%20microservice%20toolkit%20and%20distributed%20systems%20platform.NATS -%20A%20lightweight,%20high%20performance%20messaging%20system%20for%20microservices,%20IoT,%20and%20cloud%20native%20systems.raft -%20Golang%20implementation%20of%20the%20Raft%20consensus%20protocol,%20by%20HashiCorp.raft -%20Go%20implementation%20of%20the%20Raft%20consensus%20protocol,%20by%20CoreOS.ringpop-go -%20Scalable,%20fault-tolerant%20application-layer%20sharding%20for%20Go%20applicationsrpcx -%20A%20distributed%20pluggable%20RPC%20service%20framework%20like%20alibaba%20Dubbo.sleuth -%20A%20library%20for%20master-less%20p2p%20auto-discovery%20and%20RPC%20between%20HTTP%20services%20(using ZeroMQ).tendermint -%20High-performance%20middleware%20for%20transforming%20a%20state%20machine%20written%20in%20any%20programming%20language%20into%20a%20Byzantine%20Fault%20Tolerant%20replicated%20state%20machine%20using%20the%20Tendermint%20consensus%20and%20blockchain%20protocols.torrent -%20BitTorrent%20client%20package.dht -%20BitTorrent%20Kademlia%20DHT%20implementation.go-peerflix -%20Video%20streaming%20torrent%20client.Libraries%20that%20implement%20email%20creation%20and%20sending
douceur -%20CSS%20inliner%20for%20your%20HTML%20emails.email -%20A%20robust%20and%20flexible%20email%20library%20for%20Go.go-dkim -%20A%20DKIM%20library,%20to%20sign%20&%20verify%20email.go-imap -%20An%20IMAP%20library%20for%20clients%20and%20serversgo-message -%20A%20streaming%20library%20for%20the%20Internet%20Message%20Format%20and%20mail%20messagesGomail -%20Gomail%20is%20a%20very%20simple%20and%20powerful%20package%20to%20send%20emails.Hectane -%20Lightweight%20SMTP%20client%20providing%20an%20HTTP%20APIMailHog -%20Email%20and%20SMTP%20testing%20with%20web%20and%20API%20interfaceSendGrid -%20SendGrid’s%20Go%20library%20for%20sending%20emailsmtp -%20SMTP%20server%20protocol%20state%20machineEmbedding%20other%20languages%20inside%20your%20go%20code
agora -%20Dynamically%20typed,%20embeddable%20programming%20language%20in%20Goanko -%20Scriptable%20interpreter%20written%20in%20Gogisp -%20Simple%20LISP%20in%20Gogo-duktape -%20Duktape%20javaScript%20engine%20bindings%20for%20Gogo-lua -%20A%20port%20of%20the%20Lua%205.2%20VM%20to%20pure%20Gogo-php -%20PHP%20bindings%20for%20Gogo-python -%20naive%20go%20bindings%20to%20the%20CPython%20C-APIgolua -%20Go%20bindings%20for%20Lua%20C%20APIgopher-lua -%20a%20Lua%205.1%20VM%20and%20compiler%20written%20in%20Gongaro -%20Embeddable%20Ngaro%20VM%20implementation%20enabling%20scripting%20in%20Retrootto -%20A%20Javascript%20interpreter%20written%20in%20Gopurl -%20Perl%205.18.2%20embedded%20in%20GoPackages%20for%20accounting%20and%20finance
accounting -%20money%20and%20currency%20formatting%20for%20golangdecimal -%20Arbitrary-precision%20fixed-point%20decimal%20numbersvat -%20VAT%20number%20validation%20&%20EU%20VAT%20ratesLibraries%20for%20working%20with%20forms.
bind -%20Bind%20form%20data%20to%20any%20Go%20valuesbinding -%20Binds%20form%20and%20JSON%20data%20from%20net/http%20Request%20to%20struct.conform -%20Keeps%20user%20input%20in%20check.%20Trims,%20sanitizes%20&%20scrubs%20data%20based%20on%20struct%20tags.form -%20Decodes%20url.Values%20into%20Go%20value(s)%20and%20Encodes%20Go%20value(s)%20into%20url.Values.%20Dual%20Array%20and%20Full%20map%20support.formam -%20decode%20form’s%20values%20into%20a%20struct.forms -%20A%20framework-agnostic%20library%20for%20parsing%20and%20validating%20form/JSON%20data%20which%20supports%20multipart%20forms%20and%20files.gorilla/csrf -%20CSRF%20protection%20for%20Go%20web%20applications%20&%20services.nosurf -%20A%20CSRF%20protection%20middleware%20for%20Go.Awesome%20game%20development%20libraries.
Azul3D -%20A%203D%20game%20engine%20written%20in%20GoEbiten -%20A%20simple%20SNES-style%202D%20game%20library%20in%20Goengo -%20Engo%20is%20an%20open-source%202D%20game%20engine%20written%20in%20Go.%20It%20follows%20the%20Entity-Component-System%20paradigm.GarageEngine -%202d%20game%20engine%20written%20in%20Go%20working%20on%20OpenGL.glop -%20Glop%20(Game%20Library%20Of%20Power)%20is%20a%20fairly%20simple%20cross-platform%20game%20library.go-astar -%20Go%20implementation%20of%20the%20A*%20path%20finding%20algorithmgo-collada -%20Go%20package%20for%20working%20with%20the%20Collada%20file%20format.go-sdl2 -%20Go%20bindings%20for%20the Simple%20DirectMedia%20Layer.go3d -%20A%20performance%20oriented%202D/3D%20math%20package%20for%20Gogonet -%20A%20game%20server%20skeleton%20implemented%20with%20golangLeaf -%20A%20lightweight%20game%20server%20frameworktermloop -%20Terminal-based%20game%20engine%20for%20Go,%20built%20on%20top%20of%20TermboxTools%20to%20enhance%20the%20language%20with%20features%20like%20generics%20via%20code%20generation
efaceconv -%20Code%20generation%20tool%20for%20high%20performance%20conversion%20from%20interface{}%20to%20immutable%20type%20without%20allocationsgen -%20Code%20generation%20tool%20for%20‘generics’-like%20functionality.go-linq -%20.NET%20LINQ-like%20query%20methods%20for%20Go.interfaces -%20Command%20line%20tool%20for%20generating%20interface%20definitions.jennifer -%20Generate%20arbitrary%20Go%20code%20without%20templates.pkgreflect -%20A%20Go%20preprocessor%20for%20package%20scoped%20reflection.Tools%20for%20compiling%20Go%20to%20other%20languages
gopherjs -%20A%20compiler%20from%20Go%20to%20JavaScript.llgo -%20LLVM-based%20compiler%20for%20Go.tardisgo -%20Golang%20to%20Haxe%20to%20CPP/CSharp/Java/JavaScript%20transpiler.Tools%20for%20managing%20and%20working%20with%20Goroutines
go-flow -%20Control%20goroutines%20execution%20order.goworker -%20goworker%20is%20a%20Go-based%20background%20workergrpool -%20Lightweight%20Goroutine%20pool.pool -%20a%20limited%20consumer%20goroutine%20or%20unlimited%20goroutine%20pool%20for%20easier%20goroutine%20handling%20and%20cancellation.semaphore -%20Semaphore%20pattern%20implementation%20with%20timeout%20of%20lock/unlock%20operations%20based%20on%20channel%20and%20context.tunny -%20A%20goroutine%20pool%20for%20golang.Libraries%20for%20building%20GUI%20Applications
go-gtk -%20Go%20bindings%20for%20GTKgo-qml -%20QML%20support%20for%20the%20Go%20languagegoqt -%20Golang%20bindings%20to%20the%20Qt%20cross-platform%20application%20framework.gosx-notifier -%20OSX%20Desktop%20Notifications%20library%20for%20Go.gotk3 -%20Go%20bindings%20for%20GTK3.qt -%20Qt%20binding%20for%20Go%20(support%20for%20Windows%20/%20macOS%20/%20linux%20/%20Android%20/%20iOS%20/%20Sailfish%20OS%20/%20Raspberry%20Pi)robotgo -%20Go%20Native%20cross-platform%20GUI%20system%20automation;Control%20the%20mouse,%20keyboard%20and%20other.sciter -%20Go%20bindings%20for%20Sciter:%20the%20Embeddable%20HTML/CSS/script%20engine%20for%20modern%20desktop%20UI%20development.systray -%20Cross%20platform%20Go%20library%20to%20place%20an%20icon%20and%20menu%20in%20the%20notification%20areatrayhost -%20Cross-platform%20Go%20library%20to%20place%20an%20icon%20in%20the%20host%20operating%20system’s%20taskbar.ui -%20Platform-native%20GUI%20library%20for%20Go.walk -%20Windows%20application%20library%20kit%20for%20Go.Libraries,%20tools,%20and%20tutorials%20for%20interacting%20with%20hardware.
See go-hardware for%20a%20comprehensive%20list.
Libraries%20for%20manipulating%20images.
bild -%20A%20collection%20of%20image%20processing%20algorithms%20in%20pure%20Go.bimg -%20Small%20package%20for%20fast%20and%20efficient%20image%20processing%20using%20libvips.geopattern -%20Create%20beautiful%20generative%20image%20patterns%20from%20a%20string.gg -%202D%20rendering%20in%20pure%20Go.gift - Package of image processing filters.go-cairo - Go binding for the cairo graphics library.go-gd - Go binding for GD library.go-nude - Nudity detection with Go.go-opencv - Go bindings for OpenCV.go-webcolors - Port of webcolors library from Python to Go.imagick - Go binding to ImageMagick’s MagickWand C API.imaginary - Fast and simple HTTP microservice for image resizing.imaging - Simple Go image processing package.img - A selection of image manipulation tools.ln - 3D line art rendering in Go.mpo - A decoder and conversion tool for MPO 3D Photos.picfit - An image resizing server written in Go.pt - A path tracing engine written in Go.resize - Image resizing for the Go with common interpolation methods.rez - Image resizing in pure Go and SIMD.smartcrop - Finds good crops for arbitrary images and crop sizes.svgo - Go Language Library for SVG generation.tga - Package tga is a TARGA image format decoder/encoder.Libraries for generating and working with log files.
glog - Leveled execution logs for Go.go-log - Log lib supports level and multi handlers.go-log - A log4j implementation in Go.go-logger - Simple logger of Go Programs, with level handlers.gologger - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch.gone/log - Fast, extendable, full-featured, std-lib source compatible log library.log - Structured logging package for Go.log - Simple, configurable and scalable Structured Logging for Go.log-voyage - Full-featured logging saas written in golang.log15 - Simple, powerful logging for Gologdump - Package for multi-level logginglogex - An golang log lib, supports tracking and level, wrap by standard log liblogger - Minimalistic logging library for Go.logrus - a structured logger for Go.logrusly - logrus plug-in to send errors to a Loggly.logutils - Utilities for slightly better logging in Go (Golang) extending the standard logger.logxi - A 12-factor app logger that is fast and makes you happy.lumberjack - Simple rolling logger, implements io.WriteCloser.mlog - A simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output.ozzo-log - High performance logging supporting log severity, categorization, and filtering. Can send filtered log messages to various targets (e.g. console, network, mail).seelog - logging functionality with flexible dispatching, filtering, and formatting.slf - The Structured Logging Facade (SLF) for Go (like SLF4J but structured and for Go)slog - The reference implementation of the Structured Logging Facade (SLF) for Gospew - Implements a deep pretty printer for Go data structures to aid in debuggingstdlog - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs.tail - A Go package striving to emulate the features of the BSD tail program.xlog - Plugin architecture and flexible log system for Go, with level ctrl, multiple log target and custom log format.xlog - A structured logger fornet/context
aware HTTP handlers with flexible dispatching.zap - Fast, structured, leveled logging in Go.Libraries for Machine Learning.
bayesian - Naive Bayesian Classification for Golang.CloudForest - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go.gago - Multi-population, flexible, parallel genetic algorithm.go-fann - Go bindings for Fast Artificial Neural Networks(FANN) library.go-galib - Genetic Algorithms library written in Go / golanggo-pr - Pattern recognition package in Go lang.gobrain - Neural Networks written in gogodist - Various probability distributions, and associated methods.goga - Genetic algorithm library for Go.GoLearn - General Machine Learning library for Go.golinear - liblinear bindings for Gogoml - On-line Machine Learning in GogoRecommend - Recommendation Algorithms library written in Go.gorgonia - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms.libsvm - libsvm golang version derived work based on LIBSVM 3.14.mlgo - This project aims to provide minimalistic machine learning algorithms in Go.neural-go - A multilayer perceptron network implemented in Go, with training via backpropagation.probab - Probability distribution functions. Bayesian inference. Written in pure Go.regommend - Recommendation & collaborative filtering engineshield - Bayesian text classifier with flexible tokenizers and storage backends for GoLibraries that implement messaging systems
Centrifugo - Real-time messaging (Websockets or SockJS) server in Go.dbus - Native Go bindings for D-Bus.drone-line - Sending Line notifications using a binary, docker or Drone CI.emitter - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins.EventBus - The lightweight event bus with async compatibility.go-longpoll - PubSub with long polling.go-notify - Native implementation of the freedesktop notification spec.go-nsq - the official Go package for NSQgopush-cluster - gopush-cluster is a go push server cluster.gorush - A push notification server using APNs2 and google GCM.guble - A messaging server using push notifications (Google Firebase Cloud Messaging, Apple Push Notification services, SMS) as well as websockets, a REST API, featuring distributed operation and message-persistence.machinery - An asynchronous task queue/job queue based on distributed message passing.mangos - Pure go implementation of the Nanomsg (“Scalable Protocols”) with transport interoperability.NATS Go Client - A lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library.oplog - A generic oplog/replication system for REST APIspubsub - A simple pubsub package for go.RapidMQ - RapidMQ is a lightweight and reliable library for managing of the local messages queuesarama - A Go library for Apache Kafka.Uniqush-Push - A redis backed unified push service for server-side notifications to mobile devices.zmq4 - A Go interface to ZeroMQ version 4. Also available for version 3 and version 2.These libraries were placed here because none of the other categories seemed to fit
afero - A FileSystem Abstraction System for Go.archiver - Library and command for making and extracting .zip and .tar.gz archivesautoflags - Go package to automatically define command line flags from struct fields.banner - Add beautiful banners into your Go applications.battery - A cross-platform, normalized battery information library.bitio - Highly optimized bit-level Reader and Writer for Go.browscap_go - GoLang Library for Browser Capabilities Project.conv - Package conv provides fast and intuitive conversions across Go types.datacounter - Go counters for readers/writer/http.ResponseWriter.errors - A package that provides simple error handling primitives.go-chat-bot - IRC, Slack & Telegram bot written in Go.go-commons-pool - A generic object pool for Golang.go-multierror - A Go (golang) package for representing a list of errors as a single error.go-openapi - A collection of packages to parse and utilize open-api schemasgo-shortid - Distributed generation of super short, unique, non-sequential, URL friendly IDs.go.uuid - Implementation of Universally Unique Identifier (UUID). Supported both creation and parsing of UUIDs.gopsutil - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc).gosms - Your own local SMS gateway in Go that can be used to send SMSgountries - A package that exposes country and subdivision data.hanu - Framework for writing Slack bots.health - A Easy to use, extensible health check library.indigo - A distributed unique ID generator of using Sonyflake and encoded by Base58.jobs - A persistent and flexible background jobs library.margelet - A framework for building Telegram bots.notify - File system event notification library with simple API, similar to os/signal.secdl - Lighttpd ModSecDownload algorithm ported to go to secure download urls.stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc…werr - Error Wrapper creates an wrapper for the error type in Go which captures the File, Line and Stack of where it was called.xkg - X Keyboard Grabberxstrings - A collection of useful string functions ported from other languages.Libraries for working with human languages.
dpar - Transition-based statistical dependency parser.go-eco - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models.go-i18n - A package and an accompanying tool to work with localized text.go-mystem - CGo bindings to Yandex.Mystem - russian morphology analyzer.go-nlp - Utilities for working with discrete probability distributions and other tools useful for doing NLP work.go-stem - Implementation of the porter stemming algorithm.go-unidecode - ASCII transliterations of Unicode text.go2vec - Reader and utility functions for Word2vec embeddings.gojieba - This is a Go implementation of jieba which a Chinese word splitting algorithm.golibstemmer - Go bindings for the snowball libstemmer library including porter 2gounidecode - Unicode transliterator (also known as unidecode) for Goicu - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1.libtextcat - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2.MMSEGO - This is a GO implementation of MMSEG which a Chinese word splitting algorithm.paicehusk - Golang implementation of the Paice/Husk Stemming Algorithmporter - This is a fairly straightforward port of Martin Porter’s C implementation of the Porter stemming algorithm.porter2 - Really fast Porter 2 stemmer.RAKE.go - A Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE)segment - A Go library for performing Unicode Text Segmentation as described in Unicode Standard Annex #29sentences - A sentence tokenizer: converts text into a list of sentences.snowball - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality Snowball native.stemmer - Stemmer packages for Go programming language. Includes English and German stemmers.textcat - A Go package for n-gram based text categorization, with support for utf-8 and raw textwhen - A natural EN and RU language date/time parser with pluggable rulesLibraries for working with various layers of the network
arp - Package arp implements the ARP protocol, as described in RFC 826.buffstreams - Streaming protocolbuffer data over TCP made easycanopus - CoAP Client/Server implementation (RFC 7252)dhcp6 - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315.dns - Go library for working with DNSether - A cross-platform Go package for sending and receiving ethernet frames.ethernet - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags.fasthttp - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/httpftp - Package ftp implements a FTP client as described in RFC 959.go-getter - A Go library for downloading files or directories from various sources using a URL.go-stun - A go implementation of the STUN client (RFC 3489 and RFC 5389).gobgp - BGP implemented in the Go Programming Language.golibwireshark - Package golibwireshark use libwireshark library to decode pcap file and analyse dissection data.gopacket - A Go library for packet processing with libpcap bindingsgopcap - A Go wrapper for libpcapgoshark - Package goshark use tshark to decode IP packet and create data struct to analyse packet.gosnmp - Native Go library for performing SNMP actionsgotcp - A Go package for quickly writing tcp applicationsgrab - Go package for managing file downloadsgraval - An experimental FTP server framework.jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple network devices.kcp-go - KCP - A Fast and Reliable ARQ Protocol.kcptun - An extremely simple & fast udp tunnel based on KCP protocollhttp - A powerful websocket framework, build your IM server more easily.linkio - Network link speed simulation for Reader/Writer interfacesllb - It’s a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response.mdns - Simple mDNS (Multicast DNS) client/server library in GolangmqttPaho - The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.portproxy - Simple TCP proxy which adds CORS support to API’s which don’t support it.publicip - Package publicip returns your public facing IPv4 address (internet egress).raw - Package raw enables reading and writing data at the device driver level for a network interface.sftp - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt.ssh - Higher-level API for building SSH servers (wraps crypto/ssh).sslb - It’s a Super Simples Load Balancer, just a little project to achieve some kind of performance.tcp_server - A Go library for building tcp servers faster.utp - Go uTP micro transport protocol implementation.winrm - A Go WinRM client to remotely execute commands on Windows machinesxtcp - A TCP Server Framework with simultaneous full duplex communication,graceful shutdown,custom protocol.Libraries for using OpenGL in Go.
gl - Go bindings for OpenGL (generated via glow).glfw - Go bindings for GLFW 3.goxjs/gl - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android).goxjs/glfw - Go cross-platform glfw library for creating an OpenGL context and receiving events.mathgl - Pure Go math package specialized for 3D math, with inspiration from GLM.Libraries that implement Object-Relational Mapping or datamapping techniques.
beego orm - A powerful orm framework for go. Support: pq/mysql/sqlite3.go-pg - PostgreSQL ORM with focus on PostgreSQL specific features and performance.go-store - A simple and fast Redis backed key-value store library for Go.gomodel - A lightweight, fast, orm-like library helps interactive with database.GORM - The fantastic ORM library for Golang, aims to be developer friendly.gorp - Go Relational Persistence, ORM-ish library for Go.pop/soda - Database migration, creation, ORM, etc… for MySQL, PostgreSQL, and SQLite.QBS - Stands for Query By Struct. A Go ORM.reform - A better ORM for Go, based on non-empty interfaces and code generation.SQLBoiler - An ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema.Storm - Simple and powerful ORM for BoltDB.upper.io/db - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers.Xorm - Simple and powerful ORM for Go.Zoom - A blazing-fast datastore and querying engine built on Redis.Libraries for package and dependency management.
gigo - PIP-like dependency tool for golang, with support for private repositories and hashes.glide - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip.godep - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies.gom - Go Manager - bundle for go.goop - A simple dependency manager for Go (golang), inspired by Bundler.gopm - Go Package Managergovendor - Go Package Manager. Go vendor tool that works with the standard vendor file.gpm - Barebones dependency manager for Go.gvt -gvt
is a simple vendoring tool made for Go native vendoring (aka GO15VENDOREXPERIMENT), based on gb-vendor.johnny-deps - Minimal dependency version using Gitnut - Vendor Go dependenciesVenGO - create and manage exportable isolated go virtual environmentsLibraries for scientific computing and data analyzing.
blas - Implementation of BLAS (Basic Linear Algebra Subprograms)chart - Simple Chart Plotting library for Go. Supports many graphs types.evaler - A simple floating point arithmetic expression evaluatorewma - Exponentially-weighted moving averagesgeom - 2D geometry for golanggo-dsp - Digital Signal Processing for Gogo-fn - Mathematical functions written in Go language, that are not covered by math pkggo-gt - Graph theory algorithms written in “Go” languagego.matrix - linear algebra for go (has been stalled)gocomplex - A complex number library for the Go programming language.gofrac - A (goinstallable) fractions library for go with support for basic arithmetic.gohistogram - Approximate histograms for data streamsgonum/mat64 - The general purpose package for matrix computation. Package mat64 provides basic linear algebra operations for float64 matrices.gonum/plot - gonum/plot provides an API for building and drawing plots in Go.goraph - A pure Go graph theory library(data structure, algorith visualization)gostat - A statistics library for the go languagemudlark-go - A collection of packages providing (hopefully) useful code for use in software using Google’s Go programming language.ode - An ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions.pagerank - Weighted PageRank algorithm implemented in GoPiHex - Implementation of the “Bailey-Borwein-Plouffe” algorithm for the hexadecimal number Pistats - A statistics package with common functions missing from the Golang standard library.streamtools - general purpose, graphical tool for dealing with streams of data.vectormath - Vectormath for Go, an adaptation of the scalar C functions from Sony’s Vector Math library, as found in the Bullet-2.79 source code. (currently inactive)Libraries that are used to help make your application more secure.
acmetool — ACME (Let’s Encrypt) client tool with automatic renewal.BadActor - An in-memory, application-driven jailer built in the spirit of fail2bango-yara - Go Bindings for YARA, the “pattern matching swiss knife for malware researchers (and everyone else)”lego - Pure Go ACME client library and CLI tool (for use with Let’s Encrypt)passlib - Futureproof password hashing library.simple-scrypt - an scrypt package with a simple, obvious API and automatic cost calibration built-in.Libraries and tools for binary serialization
asn1 - Asn.1 BER and DER encoding library for golangcolfer - Code generation for the Colfer binary formatgo-capnproto - Cap’n Proto library and parser for gobambam - generator for Cap’n Proto schemas from go.go-codec - High Performance, feature-Rich, idiomatic encode, decode and rpc library for msgpack, cbor and json, with runtime-based OR code-generation supportgogoprotobuf - Protocol Buffers for Go with Gadgetsgoprotobuf - Go support, in the form of a library and protocol compiler plugin, for Google’s protocol buffers.mapstructure - Go library for decoding generic map values into native Go structures.php_session_decoder - GoLang library for working with PHP session format and PHP Serialize/Unserialize functionsstructomap - Library to easily and dynamically generate maps from static structures.Libraries and tools for templating and lexing.
ace - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold.amber - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade.damsel - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others.ego - A lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled.fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than text/template.gofpdf - A PDF document generator with high level support for text, drawing and images.jet - Jet template enginekasia.go - Templating system for HTML and other text documents - go implementation.mustache - A Go implementation of the Mustache template language.pongo2 - A Django-like template-engine for Go.quicktemplate - Fast, powerful, yet easy to use template engine. Converts templates into Go code and then compiles it.raymond - A complete handlebars implementation in Go.Razor - Razor view engine for Golang.Soy - Closure templates (aka Soy templates) for Go, following the official specvelvet - A complete handlebars implementation in Go.Libraries for testing codebases and generating test data.
Testing Frameworks
assert - Basic Assertion Library used along side native go testing, with building blocks for custom assertionsbadio - Extensions to Go’stesting/iotest
packagebaloo - Expressive and versatile end-to-end HTTP API testing made easy.bro - Watch files in directory and run tests for themdsunit - Datastore testing for SQL, NoSQL, structured files.frisby - a REST API testing frameworkginkgo - BDD Testing Framework for Gogo-carpet - Tool for viewing test coverage in terminalgo-mutesting - Mutation testing for Go source codego-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate testsgoblin - Mocha like testing framework fo Gogocheck - A more advanced testing framework alternative to gotest.GoConvey - BDD-style framework with web UI and live reloadgodog - Cucumber or Behat like BDD framework for Go.gofight - API Handler Testing for Golang Router framework.gomega - Rspec like matcher/assertion library.GoSpec - BDD-style testing framework for the Go programming language.gospecify - This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec.gosuite - Brings lightweight test suites with setup/teardown facilities to testing
by leveraging Go1.7’s SubtestsHamcrest - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results.httpexpect - Concise, declarative, and easy to use end-to-end HTTP and REST API testingrestit - A Go micro framework to help writing RESTful API integration test.testfixtures - A helper for Rails’ like test fixtures to test database applications.Testify - A sacred extension to the standard go testing package.Mock
counterfeiter - Tool for generating self-contained mock objectsgo-sqlmock - Mock SQL driver for testing database interactionsgo-txdb - Single transaction based database driver mainly for testing purposes.gock - Versatile HTTP mocking made easy.gomock - Mocking framework for the Go programming language.govcr - HTTP mock for Golang: record and replay HTTP interactions for offline testingmockhttp - Mock object for Go http.ResponseWriterFuzzing and delta-debugging/reducing/shrinking
go-fuzz - A randomized testing systemgofuzz - A library for populating go objects with random valuesTavor - A generic fuzzing and delta-debugging frameworkSelenium tools
ggr - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs.selenoid - alternative Selenium hub server that launches browsers within containers.Libraries for parsing and manipulating texts.
Specific Formatsallot - Placeholder and wildcard text parsing for CLI tools and botsbbConvert - Converts bbCode to HTML that allows you to add support for custom bbCode tagsblackfriday - Markdown processor in Gobluemonday - HTML Sanitizereditorconfig-core-go - Editorconfig file parser and manipulator for Goenca - Minimal cgo bindings for libenca.genex - Count and expand Regular Expressions into all matching Stringsgithub_flavored_markdown - GitHub Flavored Markdown renderer (using blackfriday) with fenced code block highlighting, clickable header anchor links.go-humanize - Formatters for time, numbers, and memory size to human readable format.go-nmea - NMEA parser library for the Go language.go-pkg-rss - This package reads RSS and Atom feeds and provides a caching mechanism that adheres to the feed specs.go-pkg-xmlx - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions.go-runewidth - Functions to get fixed width of the character or string.go-slugify - Make pretty slug with multiple languages support.gofeed - Parse RSS and Atom feeds in Gogographviz - Parses the Graphviz DOT language.gommon/bytes - Format bytes to string.gonameparts - Parses human names into individual name partsGoQuery - GoQuery brings a syntax and a set of features similar to jQuery to the Go language.goregen - A library for generating random strings from regular expressions.gotext - GNU gettext utilities for Go.guesslanguage - Functions to determine the natural language of a unicode text.inject - Package inject provides a reflect based injector.mxj - Encode / decode XML as JSON or map[string]interface{}; extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages.sh - A shell parser and formatterslug - URL-friendly slugify with multiple languages support.Slugify - A Go slugify application that handles string.toml - TOML configuration format (encoder/decoder with reflection).Utilitygotabulate - Easily pretty-print your tabular data with Go.kace - Common case conversions covering common initialisms.parseargs-go - A string argument parser that understands quotes and backslashesparth - URL path segmentation parsing.xurls - Extract urls from textLibraries for accessing third party APIs.
amazon-product-advertising-api - Go Client Library for Amazon Product Advertising APIanaconda - A Go client library for the Twitter 1.1 APIaws-sdk-go - The official AWS SDK for the Go programming language.brewerydb - Go library for accessing the BreweryDB API.cachet - Go client library for Cachet (open source status page system)circleci - A Go client library for interacting with CircleCI’s APIclarifai - A Go client library for interfacing with the Clarifai API.discordgo - Go bindings for the Discord Chat APIfacebook - Go Library that supports the Facebook Graph APIfcm - Go library for Firebase Cloud Messaginggads - Google Adwords Unofficial APIgami - Go library for Asterisk Manager Interface.gcm - Go library for Google Cloud Messaginggeo-golang - Go Library to access Google Maps, MapQuest, Nominatim, OpenCage, HERE, Bing, Mapbox, and OpenStreetMap geocoding / reverse geocoding APIs.Ghost - Go Library for accessing the Snapchat API.github - Go library for accessing the GitHub API.go-imgur - Go client library for imgurgo-jira - Go client library for Atlassian JIRAgo-marathon - A Go library for interacting with Mesosphere’s Marathon PAAS.go-tgbot - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware.go-trending - Go library for accessing trending repositories and developers at Github.go-twitch - A Go client for interacting with the Twitch v3 API.go-twitter - Go client library for the Twitter v1.1 APIs.go-xkcd - Go client for the xkcd API.goamz - Popular fork of goamz which adds some missing API calls to certain packages.golyrics - Golyrics is a Go library to fetch music lyrics data from the Wikia website.GoMusicBrainz - a Go MusicBrainz WS2 client library.google - Auto-generated Google APIs for Go.google-analytics - A simple wrapper for easy google analytics reporting.google-cloud - Google Cloud APIs Go Client Library.google-email-audit-api - Go client library for Google G Suite Email Audit API.gostorm - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells.govkbot - Simple Go VK bot library.hipchat - This project implements a golang client library for the Hipchat API.hipchat (xmpp) - A golang package to communicate with HipChat over XMPP.Medium - A Golang SDK for Medium’s OAuth2 API.megos - A client library for accessing an Apache Mesos clustermicha - Go Library for Telegram bot api.minio-go - Minio Go Library for Amazon S3 compatible cloud storage.mixpanel - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications.paypal - Wrapper for PayPal payment APIplaylyfe - The Playlyfe Rest API Go SDKpushover - Go wrapper for the Pushover API.rrdaclient - Go Library to access statdns.com API, which is in turn RRDA API. DNS Queries over HTTP.shopify - Go Library to make CRUD request to the Shopify API.slack - Slack API in Go.smite - Go package to wraps access to the Smite game API.spotify - Go Library to access Spotify WEB API.steam - Go Library to interact with Steam game servers.stripe - Go client for the Stripe APItbot - Telegram bot server with API similar to net/http.telebot - Telegram bot framework written in Go.telegram-bot-api - Simple and clean Telegram bot client.telegraph - Telegraph publishing platform API client.textbelt - Go client for the textbelt.com txt messaging API.TheMovieDb - A simple golang package to communicate with themoviedb.orgtranslate - Go online translation package.tumblr - Go wrapper for the Tumblr v2 API.webhooks - Webhook receiver for GitHub and Bitbucket.General utilities and tools to make your life easier.
abutil - A collection of often-used Golang helpers.apm - A process manager for Golang applications with an HTTP API.boilr - A blazingly fast CLI tool for creating projects from boilerplate templates.command - Command pattern for Go with thread safe serial and parallel dispatchercoop - Cheat sheet for some of the common concurrent flows in Go.Death - Managing go application shutdown with signals.Deepcopier - Simple struct copying for Go.delve - Go debugger.dlog - Compile-time controlled logger to make your release smaller without removing debug calls.Excelize - Golang library for reading and writing Microsoft Excel (XLSX) files.fastlz - Wrap over FastLz (free, open-source, portable real-time compression library) for GoLang.filetype - Small package to infer the file type checking the magic numbers signature.fzf - A command-line fuzzy finder written in Gogenerate - runs go generate recursively on a specified path or environment variable and can filter by regex.gentleman - Full-featured plugin-driven HTTP client library.git-time-metric - Simple, seamless, lightweight time tracking for Gitgo-bind-plugin - go:generate tool for wrapping symbols exported by golang plugins (1.8 only)go-cron - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons.go-debug - Conditional debug logging for Golang libraries & applications.go-dry - DRY (don’t repeat yourself) package for Go.go-funk - A modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, …)go-rate - A timed rate limiter for Go.go-sitemap-generator - XML Sitemap generator written in Go.go-torch - Stochastic flame graph profiler for Go programs.go-trigger - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project.go-underscore - A useful collection of helpfully functional Go collection utilities.goback - Go simple exponential backoff package.godaemon - Utility to write daemons.godotenv - A Go port of Ruby’s dotenv library (Loads environment variables from.env
.)godropbox - Common libraries for writing Go services/applications from Dropbox.gohper - Various tools/modules help for development.gojq - JSON query in Golang.golarm - Fire alarms with system events.golog - Easy and lightweight CLI tool to time track your tasks.gopencils - Small and simple package to easily consume REST APIs.goplaceholder - a small golang lib to generate placeholder images.goreleaser - Deliver Go binaries as fast and easily as possiblegoreq - Minimal and simple request library for Go language.goreq - An enhanced simplified HTTP client based on gorequest.gorequest - Simplified HTTP client with rich features for Go.gotenv - Load environment variables from .env
or any io.Reader
in Gogrequests - An elegant and simple net/http
wrapper that follows Python’s requests libraryhtcat - Parallel and Pipelined HTTP GET Utilityhttpcontrol - Package httpcontrol allows for HTTP transport level control around timeouts and retries.hystrix-go - Implements Hystrix patterns of programmer-defined fallbacks aka circuit breaker.JobRunner - Smart and featureful cron job scheduler with job queuing and live monitoring built in.jsonapi-errors - Go bindings based on the JSON API errors reference.jsonf - Console tool for highlighted formatting and struct query fetching JSON.jsongo - Fluent API to make it easier to create Json objects.kazaam - API for arbitrary transformation of JSON documents.lrserver - LiveReload server for Gomc - Minio Client provides minimal tools to work with Amazon S3 compatible cloud storage and filesystems.mergo - A helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements.minify - Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats.moldova - A utility for generating random data based on an input template.mp - A simple cli email parser. It currently takes stdin and outputs JSON.multitick - Multiplexor for aligned tickers.netbug - Easy remote profiling of your services.ngrok - Introspected tunnels to localhost.okrun - go run error steamroller.panicparse - Groups similar goroutines and colorizes stack dump.peco - Simplistic interactive filtering tool.pester - Go HTTP client calls with retries, backoff, and concurrency.pm - Process (i.e. goroutine) manager with an HTTP API.profile - Simple profiling support package for Go.realize - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths.request - Go HTTP Requests for Humans™.rerate - Redis-based rate counter and rate limiter for Go.rerun - Recompiling and rerunning go apps when source changes.resty - Simple HTTP and REST client for Go inspired by Ruby rest-client.robustly - Runs functions resiliently, catching and restarting panics.scheduler - Cronjobs scheduling made easy.sling - Go HTTP requests builder for API clients.spinner - Go package to easily provide a terminal spinner with options.sqlx - provides a set of extensions on top of the excellent built-in database/sql package.toolbox - Slice, map, multimap, struct, function, data conversion utilities. Service router, macro evaluator, tokenizer.ugo - ugo is slice toolbox with concise syntax for Go.xferspdy - Xferspdy provides binary diff and patch library in golangxlsx - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs.Libraries for validation.
govalidator - Validators and sanitizers for strings, numerics, slices and structs.ozzo-validation - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags.validate - This package provides a framework for writing validations for Go applications.validator - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving.Libraries for version control.
gh - Scriptable server and net/http middleware for GitHub Webhooks.git2go - Go bindings for libgit2.go-vcs - manipulate and inspect VCS repositories in Go.hgo - Hgo is a collection of Go packages providing read-access to local Mercurial repositories.Libraries for manipulating video.
gmf - Go bindings for FFmpeg av* libraries.goav - Comphrensive Go bindings for FFmpeg.gst - Go bindings for GStreamer.v4l - A video capture library for Linux, written in Go.Full stack web frameworks.
alien - A lightweight and fast http router from outer spaceBeego - beego is an open-source, high-performance web framework for the Go programming language.Bone - Lightning Fast HTTP Multiplexer.Buffalo - Bringing the productivity of Rails to Go!Bxog - Simple and fast HTTP router for Go. It works with routes of varying difficulty, length and nesting. And he knows how to create a URL from the received parameters.chi - Small, fast and expressive HTTP router built on net/context.Echo - High performance, minimalist Go web framework.fasthttprouter - A high performance router forked fromhttprouter
. The first router fit for fasthttp
.Fireball - A more “natural” feeling web framework.Florest - High-performance workflow based REST API frameworkGem - A simple and fast web framework, friendly to REST API.Gin - Gin is a web framework written in Go! It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity.Gizmo - Microservice toolkit used by the New York Times.Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io).go-json-rest - A quick and easy way to setup a RESTful JSON API.go-kit - A Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc.go-relax - A framework of pluggable components to build RESTful API’s.go-rest - A small and evil REST framework for Go.go-socket.io - socket.io library for golang, a realtime application framework.goa - Framework for developing microservices based on the design of Ruby’s Praxis.Goat - A minimalistic REST API server in Go.gocraft/web - A mux and middleware package in Go.Goji - Goji is a minimalistic and flexible HTTP request multiplexer with support for net/context
.Golf - Golf is a fast, simple and lightweight micro-web framework for Go. It comes with powerful features and has no dependencies other than the Go Standard Library.golongpoll - HTTP longpoll server library that makes web pub-sub simple.Gondola - The web framework for writing faster sites, fastergongular - A fast Go web framework with input mapping/validation and (DI) Dependency Injectiongoose - Server Sent Events in GoGorilla - Gorilla is a web toolkit for the Go programming language.httprouter - A high performance router. Use this and the standard http handlers to form a very high performance web framework.httptreemux - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter.lars - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks.Macaron - Macaron is a high productive and modular design web framework in Go.mango - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333.medeina - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba.Microservice - The framework for the creation of microservices, written in Golang.mux - A powerful URL router and dispatcher for golang.neo - Neo is minimal and fast Go Web Framework with extremely simple API.ozzo-routing - A high-performance HTTP router and Web framework supporting routes with regular expressions. Comes with full support for quickly building a RESTful API application.pat - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra.Resoursea - A REST framework for quickly writing resource based services.REST Layer - A framework to build REST/GraphQL API on top of databases with mostly configuration over code.Revel - A high-productivity web framework for the Go language.rex - Rex is a library for modular development built upon gorilla/mux, fully compatible with net/http
.sawsij - lightweight, open-source web framework for building high-performance, data-driven web applications.session - Go session management for web servers (including support for Google App Engine - GAE).Siesta - Composable framework to write middleware and handlerstango - Micro & pluggable web framework for Go.tigertonic - A Go framework for building JSON web services inspired by Dropwizardtraffic - Sinatra inspired regexp/pattern mux and web framework for Go.utron - A lightweight MVC framework for Go(Golang).VarHandler - Generate boilerplate http input and ouput handling.vestigo - A performant, stand-alone, HTTP compliant URL Router for go web applications.Volatile - Minimalist middleware stack promoting flexibility, good practices and clean code.xmux - A high performance muxer based on httprouter
with net/context
support.YARF - Fast micro-framework designed to build REST APIs and web services in a fast and simple way.Zerver - Zerver is an expressive, modular, feature completed RESTful framework.zeus - A very simple and fast HTTP router for Go.X-Forwarded-For
header and friends.Go software and plugins.
go vet
on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#.unconvert - Remove unnecessary type conversions from Go source.unused - unused checks Go code for unused constants, variables, functions and types.validate - Automatically validates struct fields with tags.go
command for colorized go build
output.gb - An easy to use project based build tool for the Go programming language.go-callvis - Visualize call graph of your Go program using dot format.go-pkg-complete - Bash completion for go and wgo.go-swagger - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API.OctoLinker - Navigate through go files efficiently with the OctoLinker browser extension for GitHub.rts - RTS: response to struct. Generates Go structs from server responses.Software written in Go.
Where to discover new Go libraries.
新闻热点
疑难解答