爱中国GO桌面EX 您所在的位置:网站首页 libvlc_audio_set_callbacks 爱中国GO桌面EX

爱中国GO桌面EX

2023-03-13 10:50| 来源: 网络整理| 查看: 265

2014年11月,Golang官方博客发布Go语言核心开发组成员Andrew Gerrand文章 《 Half a decade with Go》,以纪念Go语言发布5周年。Andrew Gerrand在文章中称,Go语言在工业界向云计算转型时代找到了自己的位置,目前一些重量级的云计算项目比如有名的Docker等都是用Go语言开发的,并预言“2015年将是Go语言急剧发展之年”(“ 2015 will be Go's biggest year yet.”)。  从国内Go语言发展和应用来看,七牛算是国内第一家选Go语言做服务端的公司。在前段时间,《技术人攻略》对七牛CEO许式伟所做的一篇深度采访( 采访原文)中,许式伟对“为何早在2011年Go语法还没完全稳定下来的情况下选择Go作为存储服务端的主体语言”给出自己的解释。许式伟谈到说:  编程哲学的重塑是Go语言独树一帜的根本原因,其它语言仍难以摆脱OOP或函数式编程的烙印,只有Go完全放弃了这些,对编程范式重新思考,对热门的 面向对象编程提供极度简约但却完备的支持。Go是互联网时代的C语言,不仅会制霸 云计算,10年内将会制霸整个IT领域。 前不久,Facebook也开源了很多Go语言库,可前往 GitHub托管地址查看。  

10大流行Go语言开源项目 

适逢Go语言诞生5周年之际,外媒JavaWorld也 发布文章,整理了由Go语言开发的10大流行开源项目。Go语言目前从虚拟化到Git代码托管服务等方面,都有重量级项目现身,越发凸现Go语言在 云计算时代的重要性。 

1. Docker 

到现在,Docker几乎是Go再难找到也难以复制的一个成功案例。Docker项目在2014年9月份就拿到了C轮4000万美元融资,版本迭代速度超快,目前从GitHub看到已有78个版本,而它仅仅是再2013年初才正式开始的一个项目而已。目前,国内Docker技术推广也进行的如火如荼,比如  Docker中文社区,CSDN也建立了  Docker专区。CSDN CODE也将在近期与Docker中文社区合作,推出Docker技术文章翻译活动,届时也请大家多多关注,及时关注与参与。 

Docker团队之所以喜欢用Go语言,主要是Go具有强大的标准库、全开发环境、跨平台构建的能力。  

GitHub托管地址:  https://github.com/docker/docker 

2. Kubernetes 

Kubernetes是2014年夏天Google推出的Kubernetes,基于Docker,其目的是让用户通过Kubernetes集群来进行云端容器集群的管理,而无需用户进行复杂的设置工作。系统会自动选取合适的工作节点来执行具体的容器集群调度处理工作。其核心概念是Container Pod(容器仓)。 

GitHub托管地址:  https://github.com/GoogleCloudPlatform/kubernetes 

3. Etcd & Fleet 

etcd是由CoreOS开发并维护键值存储系统,它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性。目前,Google的容器集群管理系统Kubernetes、开源PaaS平台Cloud Foundry和CoreOS的Fleet都广泛使用了etcd。详情,可了解 《 Etcd:用于服务发现的键值存储系统》。 Fleet则是一个 分布式的初始化系统。它们之所以选择使用Go语言,则是因为Go语言对跨平台的良好支持,以及其背后的强大社区。 

GitHub托管地址:  https://github.com/coreos/etcd 

4. Deis 

Deis是一个基于Docker和CoreOS的开源PaaS平台,旨在让部属和管理服务器上的应用变得轻松容易。它可以运行在AWS、GCE以及Openstack平台下。详情,可了解 《 Deis v1.0正式发布!》。  

GitHub托管地址:  https://github.com/deis/deis 

5. Flynn 

Flynn是一个使用Go语言编写的开源PaaS平台,可自动构建部署任何应用到Docker容器集群上运行。Flynn项目受到Y Combinator的支持,目前仍在开发中,被称为是下一代的开源PaaS平台。 

GitHub托管地址:  https://github.com/flynn/Flynn 

6. Lime 

相对上面的几款Go语言在云端和 服务器端之外,Lime则显得比较特殊。Lime,则是一款用Go语言写的桌面编辑器程序,被看做是著名编辑器Sublime Text的 开源实现。  

GitHub 托管地址:  https://github.com/limetext/lime 

7. Revel 

Revel是一个高生产力的Go语言Web框架。Revel框架支持热编译,当编辑、保存和刷新 源码时,Revel会自动编译代码和模板;全栈特性,支持路由、参数解析、缓存、测试、国际化等功能。  

GitHub托管地址:  https://github.com/revel/revel 

8. InfluxDB 

一个Go语音编写的开源分布式的时序、事件和指标数据库,无需外部依赖。其设计目标是实现 分布式和水平伸缩扩展。  

GitHub托管地址:  https://github.com/influxdb/influxdb 

9. Syncthing 

一款用Go语言编写的开源云存储和同步服务工具,用户的数据将由自己完全控制,所有的通信全都加密,每个访问节点都用加密证书验证。该项目被认为是Dropbox和 BitTorrent Sync的开源替代,  详情。Syncthing之所以选择Go语言,也是出于跨平台考虑。  

GitHub托管地址:  https://github.com/syncthing/syncthing 

10. Gogs 

Gogs则是一款由国人无闻( GitHub)开发的自助Git服务项目。Gogs的目标是打造一个最简单、最快速和最轻松的方式搭建自助Git服务。据作者称,之所以选择使用Go语言开发,就是Go允许Gogs可以通过独立的二进制分发,且对跨平台有良好支持。  

GitHub 托管地址:  https://github.com/gogits/gogs 

除了上面的10款流行Go语言项目外,我们这里另外外大家推荐几款Go语言相关的项目,如国人开发的Go Web应用框架  Beego、开源的Go语言开发环境  LiteIDE等,它们也都很流行,希望大家多多关注并支持国人 开源项目。

本文来自:ITEYE资讯

 

 

 

 

golang 开源项目全集 2017年06月22日 09:19:00 阅读数:3517 一直更新中,地址:https://github.com/golang/go/wiki/Projects#zeromq Indexes and search engines

These sites provide indexes and search engines for Go packages:

awesome-go - A community curated list of high-quality resources. Awesome Go @LibHunt - Your go-to Go Toolbox. godoc.org - A documentation browser for any Go open source package. go-hardware - Curated list of resources for using Go on non-standard hardware. go-patterns - Commonly used patterns and idioms for Go. gopm.io - Download Go packages by version go-search - Search engine dedicated to Go projects and source. gowalker - API documentation generator and search. Golang Data Science - Curated list of data science libraries for Go. Go Report Card - Code quality summaries for any Go project. Sourcegraph - Source indexing, analysis and search. Dead projects

If you find a project in this list that is dead or broken, please either mark it as such or mention it in the #go-nuts IRC channel.

Table of Contents Astronomy Build Tools Caching Cloud Computing Command-line Option Parsers Command-line Tools Compression Concurrency and Goroutines Configuration File Parsers Console User Interface Continuous Integration Cryptography Databases Data Processing Data Structures Date Development Tools Distributed/Grid Computing Documentation Editors Email Encodings and Character Sets Error handling File Systems Games GIS Go Implementations Graphics and Audio GUIs and Widget Toolkits Hardware Language and Linguistics Logging & Monitoring Machine Learning & AI Mathematics Microservices Miscellaneous Music Networking DNS FTP HTTP IMAP Instant Messaging NNTP Protocol Buffers rsync Telnet VNC Websockets ZeroMQ Misc Networking Operating System Interfaces Other Random Toys, Experiments and Example Code P2P and File Sharing Programming Resource Embedding RPC Scanner and Parser Generators Security Simulation Modeling Sorting Source Code Management Storage Strings and Text Testing Unix Unsorted Validation Version Control Virtual Machines and Languages Web Applications Web Libraries Windows Astronomy go-fits - FITS (Flexible Image Transport System) format image and data reader astrogo/fitsio - Pure Go FITS (Flexible Image Transport System) format image and data reader/writer gonova - A wrapper for libnova -- Celestial Mechanics, Astrometry and Astrodynamics Library meeus - Implementation of "Astronomical Algorithms" by Jean Meeus novas - Interface to the Naval Observatory Vector Astrometry Software (NOVAS) Build Tools colorgo - Colorize go build output dogo - Monitoring changes in the source file and automatically compile and run (restart) fileembed-go - This is a command-line utility to take a number of source files, and embed them into a Go package gb - A(nother) build tool for go, with an emphasis on multi-package projects gg - A tiny multi golang projects env/make management tool. GG - A build tool for Go in Go godag - A frontend to the Go compiler collection goenv - goenv provides Go version and Go workspace management tools gopei - Simple Go compiler and LiteIDE installer for Unix/Linux that adds many features like github support and presenter. go-pkg-config - lightweight clone of pkg-config goscons - Another set of SCons builders for Go gotgo - An experimental preprocessor to implement 'generics' gows - Go workspace manager goxc - A build tool with a focus on cross-compiling, packaging, versioning and distribution GVM - GVM provides an interface to manage Go versions Realize - A Go build system with file watchers, output streams and live reload. Run, build and watch file changes with custom paths. SCons Go Tools - A collection of builders that makes it easy to compile Go projects in SCons Caching cache - LevelDB style LRU cache for Go, support non GC object cache. cache2go - Concurrency-safe caching library with expiration capabilities and access counters go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications golibs/cache - A tiny cache package gomemcached - A memcached server in go gomemcache - a memcached client go-slab - Slab allocator for go. groupcache - Caching and cache-filling library, intended as a replacement for memcached in many cases libmemcache - Fast client and server libraries speaking memcache protocol memcached-bench - Benchmark tool for memcache servers memcached - Fast memcache server, which supports persistence and cache sizes exceeding available RAM memcache - go memcached client, forked from YouTube Vitess rend - A memcached proxy that manages data chunking and L1/L2 caches YBC bindings - Bindings for YBC library providing API for fast in-process blob cache Cloud Computing LXD Daemon based on liblxc offering a REST API to manage containers Docker - The Linux container runtime. Developed by dotCloud. Enduro/X ASG Application Server for Go. Provides application server and middleware facilities for distributed transaction processing. Supports microservices based application architecture. Developed by ATR Baltic. Kubernetes - Container Cluster Manager from Google. flamingo - A Lightweight Cloud Instance Contextualizer. gocircuit - A distributed operating system that sits on top of the traditional OS on multiple machines in a datacenter deployment. It provides a clean and uniform abstraction for treating an entire hardware cluster as a single, monolithic compute resource. Developed by Tumblr. gosync - A package for syncing data to and from S3. juju - Orchestration tool (deployment, configuration and lifecycle management), developed by Canonical. mgmt - Next Generation Configuration Management tool (parallel, event driven, distributed system) developed by @purpleidea, (a Red Hat employee) and the mgmt community. rclone - "rsync for cloud storage" - Google Drive, Amazon Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Cloudfiles, Google Cloud Storage, Yandex Files ShipBuilder - ShipBuilder is a minimalist open source platform as a service, developed by Jay Taylor. swift - Go language interface to Swift / Openstack Object Storage / Rackspace cloud files Tsuru - Tsuru is an open source polyglot cloud computing platform as a service (PaaS), developed by Globo.com. aws-sdk-go - AWS SDK for the Go programming language. Command-line Option Parsers argcfg - Use reflection to populate fields in a struct from command line arguments autoflags - Populate go command line app flags from config struct cobra - A commander for modern go CLI interactions supporting commands & POSIX/GNU flags command - Add subcommands to your CLI, provides help and usage guide. docopt.go - An implementation of docopt in the Go programming language. getopt - full featured traditional (BSD/POSIX getopt) option parsing in Go style getopt - Yet Another getopt Library for Go. This one is like Python's. gnuflag - GNU-compatible flag parsing; substantially compatible with flag. go-commander - Simplify the creation of command line interfaces for Go, with commands and sub-commands, with argument checks and contextual usage help. Forked from the "go" tool code. go-flags - command line option parser for go goopt - a getopt clone to parse command-line flags go-options - A command line parsing library for Go options - Self documenting CLI options parser opts.go - lightweight POSIX- and GNU- style option parsing pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. subcommands - A concurrent, unit tested, subcommand library uggo - Yet another option parser offering gnu-like option parsing. This one wraps (embeds) flagset. It also offers rudimentary pipe-detection (commands like ls behave differently when being piped to). writ - A flexible option parser with thorough test coverage. It's meant to "just work" and stay out of the way. cli - A Go library for implementing command-line interfaces. cmdline - A simple parser with support for short and long options, default values, arguments and subcommands. Command-line Tools awless - A Mighty command-line interface for Amazon Web Services (AWS). boilr - A blazing fast CLI tool for creating projects from boilerplate templates. coshell - A drop-in replacement for GNU 'parallel'. DevTodo2 - A small command-line per-project task list manager. enumeration - Easy enumeration code generation. fzf - A command-line fuzzy finder gich - A cross platform which utility written in Go git-time-metric - Simple, seamless, lightweight time tracking for Git gister - Manage your github gists from the command-line gmail2go - Simple gmail multiple accounts cli mail checker gocreate - Command line utility that create files from templates. godocdoc - Start godoc and open it in your browser to the project in the current directory. gojson - Command-line tool for manipulating JSON for use in developing Go code. GoPasswordCreator - A small tool, which creates random passwords GoNote - Command line SimpleNote client. Grozilla - File downloader utility with resume capability. jsonpp - A fast command line JSON pretty printer. lsp - A human-friendlier alternative to ls ltst - View the latest news of your choosing right in your terminal passhash - Command-line utility to create secure password hashes passman - A command-line password manager pjs - Pretty print and search through JSON data structures fast. project - Very simple CLI tool to setup new projects from boilerplate templates. pwdgen - A small tool, which generate human password, written in Go. redis-view - A tree like tool help you explore data structures in your redis server restic - A fast, efficient and secure backup program runtemplate - A very simple command-line tool for executing Go templates, useful for use with go generate. runtemplate - A simple tool for executing Go templates to support generating Go code for your types. sift - A fast and powerful open source alternative to grep tecla - Command-line editing library wlog - A simple logging interface that supports cross-platform color and concurrency. wmenu - An easy to use menu structure for cli applications that prompts users to make choices. comb-go - A CLI tool implemented by Golang to manage CloudComb resources. JayDiff - A JSON diff utility written in Go. Compression compress - Faster drop in replacements for gzip, zip, zlib, deflate dgolzo - LZO bindings dictzip - A reader and writer for files in the random access dictzip format fast-archiver - Alternative archiving tool with fast performance for huge numbers of small files gbacomp - A Go library to (de)compress data compatible with GBA BIOS go-lz4 - Port of LZ4 lossless compression algorithm to Go. go-lzss - Implementation of LZSS compression algorithm in Go go-sevenzip - Package sevenzip implements access to 7-zip archives (wraps C interface of LZMA SDK) go-zip - A wrapper around C library libzip, providing ability to modify existing ZIP archives. lzma - compress/lzma package for Go pgzip - Multicore gzip, compatible with the standard library snappy-go - Google's Snappy compression algorithm in Go yenc - yenc decoder package zappy - Package zappy implements the zappy block-based compression format. It aims for a combination of good speed and reasonable compression. ppmd-go - Golang bindings for the LZMA SDK library. (Only binded PPMD) Concurrency and Goroutines grpool - Lightweight Goroutine pool. pool - Go consumer goroutine pool for easy goroutine handling + time saving. tunny - A goroutine pool. worker - An easy and lightweight concurrent job framework. Configuration File Parsers awsenv - a small binary that loads Amazon (AWS) environment variables for a profile confl - nginx config syntax, lenient, encode/decode, custom marshaling flagfile - Adds parsing and serialization support to the standard library flag package (adds a --flagfile option) gcfg - read INI-style configuration files into Go structs; supports user-defined types and subsections globalconf - Effortlessly persist to and read flag values from an ini config file goconf - a configuration file parser hjson - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. jsonconfig - a JSON configuration file parser with comments support properties - Library for reading and writing properties files scribeconf - Facebook Scribe server configuration file parser toml: go-toml-config - TOML-based config for Go go-toml - Go library for the TOML language gp-config - Subset of TOML syntax with basic and reflection APIs toml-go - An easy-to-use Go parser for the Toml format toml - TOML parser for Go with reflection tom-toml - TOML parser for Go, support comments/formatter/apply. viper - a complete configuration solution supporting YAML, TOML & JSON and integration with command line flags yaml: yaml - YAML support for the Go language, by Canonical goyaml - A port of LibYAML to Go Console User Interface ansi - Easily create ansi escape code strings and closures to format, color console output ansiterm - pkg to drive text-only consoles that respond to ANSI escape sequences cons - A simple package for building interactive console tools. gnureadline - GNU Readline bindings go-ansiout - Another ANSI escape code sequence tool for use with command-line applications. gockel - a Twitter client for text terminals gocui - Minimalist library aimed at creating Console User Interfaces gocurse - Go bindings for NCurses gocurses - NCurses wrapper go-ibgetkey - "hot key" type user input package for use in processing keystrokes in command-line applications. go.linenoise - Linenoise bindings (simple and easy readline with prompt, optional history, optional tab completion) goncurses - An ncurses library, including the form, menu and panel extensions gopass - Allows typing of passwords without echoing to screen go-pullbarz - Fancy "light bar" menus like in Lotus 123 from the DOS days. Dependent on go-ibgetkey and go-ansiout. go.sgr - Terminal/console colors and text decoration (bold,underlined,etc). go-stfl - a thin wrapper around STFL, an ncurses-based widget toolkit goterminal - A go library that lets you write and then re-write the text on terminal, to update progress. It works on Windows too! go-web-shell - Remote web shell, implements a net/http server. igo - A simple interactive Go interpreter built on exp/eval with some readline refinements oh - A Unix shell written in Go pty - obtain pseudo-terminal devices readline - A pure go implementation for GNU-Readline kind library termbox-go - A minimalist alternative to ncurses to build terminal-based user interfaces termios - Terminal support termon - Easy terminal-control-interface for Go. uilive - uilive is a go library for updating terminal output in realtime. uiprogress - A library to render progress bars in terminal applications. uitable - A library to improve readability in terminal apps using tabular data. yandex-weather-cli - Command line interface for Yandex weather service Continuous Integration goveralls - Go integration for Coveralls.io continuous code coverage tracking system. overalls - Multi-Package go project coverprofile for tools like goveralls Cryptography BLAKE2b - Go implementation of BLAKE2b hash function cryptogo - some useful cryptography-related functions, including paddings (PKCS7, X.923), PBE with random salt and IV cryptoPadding - Block padding schemes implemented in Go dkeyczar - Go port of Google'e Keyczar cryptography library dkrcrypt - Korean block ciphers: SEED and HIGHT dskipjack - Go implementation of the SKIPJACK encryption algorithm go-cs - concurrent ssh client. go-ed25519 - CGO bindings for Floodberry's ed25519-donna. Fast batch verification. go-hc128 - Go implementation of HC-128, an eSTREAM stream cipher go-jose - Go implementation of the JOSE standards go-minilock - Go implementation of the minilock file encryption system. GoSkein - Implementation of Skein hash and Threefisch crypto for Go keccak - A keccak (SHA-3) implementation ketama.go - libketama-style consistent hashing kindi - encryption command line tool openssl - openssl bindings for go otrcat - a general purpose command-line tool for communicating using the Off-The-Record protocol scrypt - Go implementation of Colin Percival's scrypt key derivation function simpleaes - AES encryption made easy siphash - SipHash: a fast short-input pseudorandom function SRP - SRP: Secure Remote Password - Implementation in go ssh.go - SSH2 Client library ssh-vault - encrypt/decrypt using ssh keys tiger - Tiger cryptographic hashing algorithm whirlpool - whirlpool cryptographic hashing algorithm go-lioness - Lioness wide-block cipher using Chacha20 and Blake2b go-sphinxmixcrypto - Sphinx mix network cryptographic packet format operations Data Processing automi - Compose process and integration flows on Go channels gostatsd - Statsd server and library. Heka - Real time data and log file processing engine. Kapacitor - Framework for processing, monitoring and alerting on timeseries data. pipe - Several functional programming supporting in golang (Map/Reduce/Filter) proto - Map/Reduce/Filter etc. for Go using channels as result streams. regommend - Recommendation engine. rrd - Bindings for rrdtool. XConv - Convert any value between types (base type, struct, array, slice, map, etc.) Data Structures Collections collections - Several common data structures data-structures - A collection of data-structures (ArrayList, SortedList, Set, AVL Tree, Immutable AVL Tree, B+Tree, Ternary Search Trie, Hash Table (Separate Chaining), Linear Hash Table) ps - Persistent data structures Tideland golib - A collections library Hashtables gohash - A simple linked-list hashtable that implements sets and maps go-maps - Go maps generalized to interfaces Lists fs2/mmlist - A memory mapped list. GoArrayList - GoArrayList is a Go language substitute for the Java class ArrayList, with very nearly all features. goskiplist - A skip list implementation in Go. itreap - An immutable ordered list, internally a treap. ListDict - Python List and Dict for Go skip - A fast position-addressable ordered map and multimap. Skiplist - A fast indexable ordered multimap. skiplist - A skip list implementation. Highly customizable and easy to use. skiplist - Skiplist data structure ported from Redis's Sorted Sets. stackgo - A fast slice-based stack implementation. Queues fifo_queue - Simple FIFO queue figo - A simple fifo queue with an optional thread-safe version. go.fifo - Simple auto-resizing thread-safe fifo queue. gopqueue - Priority queue at top of container/heap go-priority-queue - An easy to use heap implementation with a conventional priority queue interface. golibs/stack - A LIFO and ringbuffer package gringo - A minimalist queue implemented using a stripped-down lock-free ringbuffer heap - A general heap package without converting elements to interface{} and back. queued - A simple network queue daemon queue - A queue manager on top of Redis Graphs graph - Library of basic graph algorithms graphs - Implementation of various tree, graph and network algorithms Sets disjoint - Disjoint sets (union-find algorithm with path compression) golang-set - A full thread-safe and unsafe set implementation for Go. goset - A simple, thread safe Set implementation set - Set data structure for Go Trees b - Package b implements B+trees with delayed page split/concat and O(1) enumeration. Easy production of source code for B+trees specialized for user defined key and value types is supported by a simple text replace. btree - Package btree implements persistent B-trees with fixed size keys, http://en.wikipedia.org/wiki/Btree btree - In-memory (not persistent) B-tree implementation, similar API to GoLLRB go-avltree - AVL tree (Adel'son-Vel'skii & Landis) with indexing added go-btree - Simple balance tree implementation go-darts - Double-ARray Trie System for Go GoLLRB - A Left-Leaning Red-Black (LLRB) implementation of 2-3 balanced binary search trees in Google Go go-merkle - Merkle-ized binary (search) trees with proofs. go-stree - A segment tree implementation for range queries on intervals go-radix, go-radix-immutable - Radix tree implementations. gtreap - Persistent treap implementation. rbtree - Yet another red-black tree implementation, with a C++ STL-like API rtreego - an R-Tree library triego - Simple trie implementation for storing words prefixmap - Simple trie-based prefix-map for string-based keys Other bigendian - binary parsing and printing deepcopy - Make deep copies of data structures dgobloom - A Bloom Filter implementation epochdate - Compact dates stored as days since the Unix epoch etree - Parse and generate XML easily fsm - Minimalistic state machine for use instead of booleans go-algs/ed - Generalized edit-distance implementation go-algs/maxflow - An energy minimization tool using max-flow algorithm. go-extractor - Go wrapper for GNU libextractor gocrud - Framework for working with arbitrary depth data structures. Gokogiri - A lightweight libxml wrapper library GoNetCDF - A wrapper for the NetCDF file format library goop - Dynamic object-oriented programming support for Go gopart- Type-agnostic partitioning for anything that can be indexed in Go. gotoc - A protocol buffer compiler written in Go govalid - Data validation library goxml - A thin wrapper around libxml2 hyperloglog - An implementation of the HyperLogLog and HyperLogLog++ algorithms for estimating cardinality of sets using constant memory. itertools - Provides generic iterable generator function along with functionality similar to the itertools python package. jsonv - A JSON validator libgob - A low level library for generating gobs from other languages ofxgo - A library for querying OFX servers and/or parsing the responses (and example command-line client). Picugen - A general-purpose hash/checksum digest generator. tribool - Ternary (tree-valued) logic for Go Tuple - Tuple is a go type that will hold mixed types / values vcard - Reading and writing vcard file in go. Implementation of RFC 2425 (A MIME Content-Type for Directory Information) and RFC 2426 (vCard MIME Directory Profile). mxj - Marshal/Unmarshal XML doc from/to map[string]interface{} or JSON xlsx - A library to help with extracting data from Microsoft Office Excel XLSX files. goxlsxwriter - Golang bindings for libxlsxwriter for writing XLSX (Excel) files simple-sstable - A simple, no-frills SSTable format and implementation in Go. Databases

See also SQLDrivers page.

CockroachDB cockroachdb - A Scalable, Survivable, Strongly-Consistent SQL Database MongoDB mgo - Rich MongoDB driver for Go rocks-stata - MongoDB Backup Utility MySQL Go-MySQL-Driver - A lightweight and fast MySQL-Driver for Go's database/sql package MyMySQL - MySQL Client API written entirely in Go. TiDB - MySQL compatible distributed database modeled after Google's F1 design. vitess - Scaling MySQL databases for the web mysqlsuperdump - Generate partial and filtered dumps of MySQL databases ODBC go-odbc - ODBC Driver for Go odbc3-go - This package is wrapper around ODBC (version 3). PostgreSQL go-libpq - cgo-based Postgres driver for Go's database/sql package go-pgsql - A PostgreSQL client library for Go pgsql.go - PostgreSQL high-level client library wrapper pgx - Go PostgreSQL driver that is compatible with database/sql and has native interface for more performance and features pq - Pure Go PostgreSQL driver for database/sql yoke - Postgres high-availability cluster with auto-failover and automated cluster recovery QL ql - A pure Go embedded (S)QL database. Redis godis - Simple client for Redis Go-Redis - Client and Connectors for Redis key-value store go-redis - Redis client built on the skeleton of gomemcache Redigo - Go client for Redis. redis - Redis client for Go RethinkDB GoRethink - RethinkDB Driver for Go SQLite gosqlite3 - Go Interface for SQLite3 gosqlite (forked) - A fork of gosqlite gosqlite - a trivial SQLite binding for Go. go-sqlite - A database/sql driver and standalone sqlite3 interface mattn's go-sqlite3 - sqlite3 driver conforming to the built-in database/sql interface ORM beedb - beedb is an ORM for Go. It lets you map Go structs to tables in a database FilterXorm - Build conditions for xorm project. go-modeldb - A simple wrapper around sql.DB for struct support. gorm - An ORM library for Go, aims for developer friendly gorp - SQL mapper for Go go-store - Data-store library for Go that provides a set of platform-independent interfaces to persist and retrieve key-value data. hood - Database agnostic ORM for Go. Supports Postgres and MySQL. qbs - Query By Struct. Supports MySQL, PostgreSQL and SQLite3. sqlgen - Go code generation for SQL interaction. structable - Struct-to-table database mapper. xorm - Simple and Powerful ORM for Go. reform - A better ORM for Go, based on non-empty interfaces and code generation. Multiple wrappers gosexy/db - an abstraction of wrappers for popular third party SQL and No-SQL database drivers. Key-Value-Stores bolt - Persistent key/value store inspired by LMDB. dbm - Package dbm (WIP) implements a simple database engine, a hybrid of a hierarchical and/or a key-value one. fs2/bptree - A memory mapped B+Tree with duplicate key support. Appropriate for large amounts of data (aka +100 GB). Supports both anonymous and file backed memory maps. Diskv - Home-grown, disk-backed key-value store etcd - Highly-available key value store for shared configuration and service discovery gkvlite - Pure go, simple, ordered, atomic key-value persistence based on append-only file format. gocask - Key-value store inspired by Riak Bitcask. Can be used as pure go implementation of dbm and other kv-stores. goleveldb - Another implementation of LevelDB key/value in pure Go. kv - Yet another key/value persistent store. Atomic operations, two phase commit, automatic crash recovery, ... leveldb-go - This is an implementation of the LevelDB key/value database. levigo - levigo provides the ability to create and access LevelDB databases. persival - Programatic, persistent, pseudo key-value storage Graph Databases cayley - 100% Go graph database, inspired by Freebase and the Google Knowledge Graph. Dgraph - Fast, Distributed Graph DB with a GraphQL-like API. go-gremlin - A Go client for the Apache TinkerTop Graph analytics framework (Gremlin server). NoSQL influxdb - Scalable datastore for metrics, events, and real-time analytics ledisdb - A high performance NoSQL like Redis. nodb - A pure Go embed Nosql database with kv, list, hash, zset, bitmap, set. tiedot - A NoSQL document database engine using JSON for documents and queries; it can be embedded into your program, or run a stand-alone server using HTTP for an API. Other cabinet - Kyoto Cabinet bindings for go camlistore - Personal distributed storage system for life. cdb.go - Create and read cdb ("constant database") files go-clickhouse - Connector to Yandex Clickhouse (column-oriented database) CodeSearch - Index and perform regex searches over large bodies of source code couch-go - newer maintained CouchDB database binding couchgo - The most feature complete CouchDB Adapter for Go. Modeled after couch.js. dbxml - A basic interface to Oracle Berkeley DB XML drive - A Google drive command line client Event Horizon - Toolkit for Command Query Responsibility Segregation and Event Sourcing (CQRS/ES) go-db-oracle - GO interface to Oracle DB gographite - statsd server in go (for feeding data to graphite) gokabinet - Go bindings for Kyoto Cabinet DBM implementation go-notify - GO bindings for the libnotify goprotodb - A binding to Berkeley DB storing records encoded as Protocol Buffers. go-rexster-client - Go client for the Rexster graph server (part of the TinkerPop suite of graph DB tools) goriak - Database driver for riak database (project homepage is now on bitbucket.org) goriakpbc - Riak driver using Riak's protobuf interface gotyrant - A Go wrapper for tokyo tyrant go-wikiparse - mediawiki dump parser for working with wikipedia data hdfs - go bindings for libhdfs JGDB - JGDB stands for Json Git Database mig - Simple SQL-based database migrations mongofixtures - A Go quick and dirty utility for cleaning MongoDB collections and loading fixtures into them. Neo4j-GO - Neo4j REST Client in Go neoism - Neo4j graph database client, including Cypher and Transactions support. null - Package for handling null values in SQL Optimus Cache Prime - Smart cache preloader for websites with XML sitemaps. piladb - Lightweight RESTful database engine based on stack data structures. pravasan - Simple Migration Tool (like rake db:migrate with more flexibility) riako - High level utility methods for interacting with Riak databases sqlbuilder - SQL query builder with row mapping squirrel - Fluent SQL generation for Go Sublevel - Separate sections of the same LevelDB Weed File System - fast distributed key-file store whisper-go - library for working with whisper databases Date now - Now is a time toolkit for golang. date - A package for working with dates. date - For dates, date ranges, time spans, periods, and time-of-day. gostrftime - strftime(3) like formatting for time.Time tai64 - tai64 and tai64n parsing and formatting Tideland golib - Timex extensions Development Tools cwrap - Go wrapper (binding) generator for C libraries. demand - Download, build, cache and run a Go app easily. glib - Bindings for GLib type system gocog - A code generator that can generate code using any language godepgraph - Create a dependency graph for a go package godev - Recompiles and runs your Go code on source change. Also watches all your imports for changes. godiff - diff file comparison tool with colour html output gonew - A tool to create new Go projects go-play - A HTML5 web interface for experimenting with Go code. Like http://golang.org/doc/play but runs on your computer gore - A Go REPL. Featured with line editing, code completion, and more gorun - Enables Go source files to be used as scripts. go-spew - Implements a deep pretty printer for Go data structures to aid in debugging goven - Easily copy code from another project into yours gowatcher - Reload a specified go program automatically by monitoring a directory. GoWatch - GoWatch watches your dev folder for modified files, and if a file changes it restarts the process. goweb - Literate programming tools for Go based on CWEB by Donald Knuth and Silvio Levy. hopwatch - simple debugger for Go hsandbox - Tool for quick experimentation with Go snippets Inject - Library for dependency injection in Golang (from Facebook) liccor - A tool for updating license headers in Go source files liteide - An go auto build tools and qt-based ide for Go Livedev - Livedev is a development proxy server that enables live code reloading. Martian - HTTP proxy designed for use in E2E testing. nvm-windows - Node.js version manager for Windows prettybenchcmp - Store and compare benchmarks history locally. rerun - Rerun watches your binary and all its dependencies so it can rebuild and relaunch when the source changes. syntaxhighlighter - language-independent code syntax highlighting library toggle - A feature toggle library with built in support for environment variable backed toggling. pluggable backing engine support. trace - A simple debug tracing Emacs Tags egotags - ETags generator tago1 - etags generator for go that builds with go 1 tago - Emacs TAGS generator for Go source Distributed/Grid Computing celeriac - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go donut - A library for building clustered services in Go libchan - Go-like channels over the network locker - A distributed lock service built on top of etcd. dlock - A native Go distributed lock manager (client and server) using gRPC. mangos - An implementation of the Scalable Protocols based on nanomsg redsync - Redis-based distributed mutual exclusion lock implementation Skynet - Skynet is distributed mesh of processes designed for highly scalable API type service provision. Tideland golib - Includes a map/reduce library Documentation examplgen - Insert code from .go files to documents (examples to project's readme, for instance). godocdown - Format package documentation (godoc) as GitHub friendly Markdown GoDoc.org - GoDoc.org generates documentation on the fly from source on Bitbucket, Github, Google Project Hosting and Launchpad. golangdoc - Godoc for Golang, support translate. Mango - Automatically generate unix man pages from Go sources redoc - Commands documentation for Redis sphinxcontrib-golangdomain - Sphinx domain for Go test2doc - Generate documentation for your go units from your unit tests. Editors Conception - Conception is an experimental research project, meant to become a modern IDE/Language package. demo video Go-bbpackage - BBEdit package for Go development goclipse - An Eclipse-based IDE for Go. Go conTEXT - Highlighter plugin godev - Web-based IDE for the Go language godit - A microemacs-like text editor written in Go. gofinder - (code) search tool for acme go-gedit - Google Go language plugin for gedit golab - go local application builder - a web-based Go ide Google Go for Idea - Google Go language plugin for Intellij IDEA micro - A modern and intuitive terminal-based text editor. tabby - Source code editor ViGo - A vim-like text editor. Wide - A Web-based IDE for Teams using Golang. Email Hectane - Lightweight SMTP client including a built-in mail queue backed by on-disk storage. gmail - Simple library for sending emails from a Gmail account, for people not interested in dealing with protocol details. go-mail - Email utilities including RFC822 messages and Google Mail defaults. Gomail - A simple and efficient package to send emails. go-ses - Amazon AWS Simple Email Service (SES) API client Inbucket - Inbucket is an email testing service; it will accept messages for any email address and make them available to view via a web interface. mail.go - Parse email messages MailHog - Email testing service, inspired by MailCatcher. MailSlurper - A handy SMTP mail server useful for local and team application development. Slurp mail into oblivion! chasquid - SMTP server written in Go. Error handling errgo - Error tracing and annotation. errors - The juju/errors package provides an easy way to annotate errors without losing the original error context, and get a stack trace back out of the error for the locations that were recorded. goerr - Allows to make a separate(modular) and reusable error handlers. Exception-like panic() recover() mechanism using Return(error) and catching err := OR1(..) panicparse - Parse panics with style. Space Monkey errors - Go's missing errors library - stack capture, error hierarchies, error tags Tideland golib - Detailed error values Encodings and Character Sets base58 - Human input-friendly base58 encoding bencode-go - Encoding and decoding the bencode format used by the BitTorrent peer-to-peer file sharing protocol bsonrpc - BSON codec for net/rpc chardet - Charset detection library ported from ICU charmap - Character encodings in Go codec-msgpack-binc High Performance and Feature-Rich Idiomatic Go Library providing encode/decode support for multiple binary serialization formats: msgpack colfer - high-performance binary codec gobson - BSON (de)serializer go-charset - Conversion between character sets. Native Go. go.enmime - MIME email parser library for Go (native) go-msgpack - Comprehensive MsgPack library for Go, with pack/unpack and net/rpc codec support (DEPRECATED in favor of codec ) gopack - Bit-packing for Go go-simplejson - a Go package to interact with arbitrary JSON go-wire - Binary and JSON codec for structures and more go-xdr - Pure Go implementation of the data representation portion of the External Data Representation (XDR) standard protocol as specified in RFC 4506 (obsoletes RFC 1832 and RFC 1014). iconv-go - iconv wrapper with Reader and Writer magicmime -- Mime-type detection with Go bindings for libmagic Mahonia - Character-set conversion library in Go mimemagic - Detect mime-types automatically based on file contents with no external dependencies msgpack - Msgpack format implementation for Go msgpack-json - Command-line utilities to convert between msgpack and json nnz - String and Int primitives that serialize to JSON and SQL null storable - Write perl storable data TNetstring - tnetstrings (tagged Netstrings) File Systems afero - A File Sytem abstraction system for Go go.fs - A virtual file system abstraction layer. poller - Package poller is a file-descriptor multiplexer. It allows concurent Read and Write operations from and to multiple file-descriptors. vfsgen - Generates a vfsdata.go file that statically implements the given virtual filesystem. Games Bampf - Arcade style game based on the Vu 3D engine. bloxorz - Solver for bloxorz basic levels ChessBuddy - Play chess with Go, HTML5, WebSockets and random strangers! Fergulator - An NES emulator, using SDL and OpenGL FlappyBird - A simple flappy bird clone written in golang. godoku - Go Sudoku Solver - example of "share by communicating" Gongo - A program written in Go that plays Go gospeccy - A ZX Spectrum 48k Emulator Ludo Game - Ludo Board game powered by Go on Appengine pinkman - command line based chess interface to UCI compatible chess engines Pong - A simple Pong clone written in golang pong-command - Joke command,ping-like pong. Steven - A Minecraft client in Go WolfenGo - A Wolfenstein3D clone in Go, using OpenGL 2.1 GIS geojson - Go package to quick and easy create json data in geojson format. description go-geom - Efficient Open Geo Consortium-style geometries with native Go GeoJSON and WKB encoding and decoding (work-in-progress) go.geo - Geometry/geography library targeted at online mapping go.geojson - Marshalling and Unmarshalling of GeoJSON objects gogeos - Go library for spatial data operations and geometric algorithms go-proj-4 - An interface to the Cartographic Projections Library PROJ.4 go-kml - Google Earth KML generation go-polyline - Google Maps polyline encoding and decoding UTM - Bidirectional UTM-WGS84 converter Go Implementations llgo - LLVM-based Go compiler, written in Go Graphics and Audio AnsiGo - Simple ANSi to PNG converter written in pure Go Arclight - Arclight is a tool for rendering images bild - A collection of image processing algorithms in pure Go bimg - Small Go library for fast image resize and transformation using libvips blend - Image processing library and rendering toolkit for Go. bpg - BPG decoder for Go. chart - Library to generate common chart (pie, bar, strip, scatter, histogram) in different output formats. draw2d - This package provide an API to draw 2d geometrical form on images. This library is largely inspired by postscript, cairo, HTML5 canvas. egl - egl bindings es2 - es2 bindings freetype-go - a Go implementation of FreeType gltf - library for marshaling and unmarshaling glTF glfw 3 - Go bindings for GLFW 3 library glfw - bindings to the multi-platform library for opening a window, creating an OpenGL context and managing input glh - OpenGL helper functions to manage text, textures, framebuffers and more gl - OpenGL bindings using glew glu - bindings to the OpenGL Utility Library gmask - Go adaptation of the Cmask utility for Csound goalsa - Go bindings for ALSA capture and playback go-cairo - Go wrapper for the cairo graphics library gocl - Go OpenCL (gocl) binding, support OpenCL 1.1/1.2/2.0 on Mac/Linux/Windows/Android go-csnd6 - Go binding to the Csound6 API go-csperfthread - Go binding to the CsoundPerformanceThread helper class of the Csound6 API goexif - Retrieve EXIF metadata from image files goflac - Go bindings for decoding and encoding FLAC audio with libFLAC go-gd - Go bingings for GD GoGL - OpenGL binding generator go-gnuplot - go bindings for Gnuplot go-gtk3 - gtk3 bindings for go go-heatmap - A toolkit for making heatmaps GoHM - H.265/HEVC HM Video Codec in Go goHorde - Go Bindings for the Horde3d Rendering engine. GoMacDraw - A mac implementation of go.wde go-openal - Experimental OpenAL bindings for Go go-opencl - A go wrapper to the OpenCL heterogeneous parallel programming library go-opencv - Go bindings for OpenCV / 2.x API in gocv / 1.x API in opencv Go-OpenGL - Go bindings for OpenGL Goop - Audio synthesizer engine goray - Raytracer written in Go, based on Yafaray gosc - Pure Go OSC (Open Sound Control) library go-taglib - Go wrapper for TagLib, an audio meta-data parser go-tmx - A Go library that reads Tiled's TMX files GoVisa - H265/HEVC Bitstream Analyzer in Go go-vlc - Go bindings for libVLC go.wde - A windowing/drawing/event interface goxscr - Go rewrites of xscreensaver ports gst - Go bindings for GStreamer gumble - Client library for the Mumble VoIP protocol hgui - Gui toolkit based on http and gtk-webkit. imaginary - Simple and fast HTTP microservice for image resizing and manipulation imaging - Package imaging provides basic image manipulation functions (resize, rotate, flip, crop, etc.) as well as simplified image loading and saving. netpbm - Read and write Netpbm images from Go programs opencv - Go bindings for OpenCV osmesa - Go bindings for osmesa. Plotinum - An API for creating plots portaudio - A Go binding to PortAudio pulsego - Go binding for PulseAudio pulse-simple - Go bindings for PulseAudio's Simple API, for easy audio capture and playback. resize - Image resizing with different interpolations. RiGO - RenderMan Interface implementation in Go. smartcrop - Content aware image cropping starfish - A simple Go graphics and user input library, built on SDL stl - library for reading, writing, and manipulating Stereolithography (.stl) files used in 3D printing svgo - a library for creating and outputting SVG tag - a library for reading tag metadata and creating metadata-invariant checksums for audio files: FLAC, all IDv3 variants, and MP4 (ACC, ALAC) tga - TARGA image format encoding/decoding library tiff - Rich TIFF/BigTIFF/GeoTIFF decoder/encoder for Go. twilio-go - Go client for the Twilio API. videoinput - Go bindings for VideoInput (Windows). vu - Virtual Universe. A skeleton 3D engine. vulkan - Golang Bindings for Vulkan API. webp - WebP decoder and encoder for Go. wg - Web Graphics, display real time go graphics in browser, with user input. window - Optimized moving window for real-time data wingo - A fully-featured window manager written in Go. Winhello - An example Windows GUI hello world application wxGo - Go Wrapper for the wxWidgets GUI xgb - A fork of the x-go-binding featuring support for thread safety and all X extensions. xgbutil - A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.) x-go-binding - bindings for the X windowing system GUIs and Widget Toolkits go-fltk - FLTK2 GUI toolkit bindings for Go go-gtk - Bindings for GTK go-qt5 - QT5 bindings for go gothic - Tcl/Tk Go bindings gotk3 - Go bindings for GTK3, requires GTK version 3.8 go.uik - A UI kit for Go, in Go. (project is closed) go-webkit2 - Go bindings for the WebKitGTK+ v2 API (w/headless browser & JavaScript support) Gowut - Gowut (Go Web UI Toolkit) is a full-featured, easy to use, platform independent Web UI Toolkit written in pure Go, no platform dependent native code is linked or called. GXUI - A Go cross platform UI library. iup - Bindings for IUP mdtwm - Tiling window manager for X qml - QML support for the Go language ui - Platform-native GUI library for Go Hardware go.hid - Provides communication with USB Human Interface Devices. gortlsdr - A librtlsdr wrapper, which turns certain USB DVB-T dongles into a low-cost, general purpose software-defined radio receiver. hwio - Hardware I/O library for SoC boards including BeagleBone Black and Raspberry Pi. stressdisk - Stress test your disks / memory cards / USB sticks before trusting your valuable data to them gobot - Golang framework for robotics, drones, and the Internet of Things (IoT). Language and Linguistics alpinocorpus-go - A reader and a writer for Alpino corpora. go-aspell - GNU Aspell spell checking library bindings for Go. go-language - A simple language detector using letter frequency data. goling - String Similarity(Cosine Similarity, Levenshtein Distance), Spell Check, Segmentation go.stringmetrics - String distance metrics implemented in Go inflect - Word inflection library (similar to Ruby ActiveSupport::Inflector). Singularize(), Pluralize(), Underscore() etc. libtextcat - A Go wrapper for libtextcat. sego - Chinese language segmenter. textcat - N-gram based text categorization, with support for utf-8 and raw text Logging and Monitoring colog - CoLog is a prefix-based leveled execution log for Go cue - Fast and flexible contextual logger. Supports output to file, syslog, structured syslog, stdout/stderr, socket, Loggly, Honeybadger, Opbeat, Rollbar, and Sentry. epazote - Automated Microservices Supervisor. factorlog - Really fast, featureful logging infrastructure (supports colors, verbosity, and many formats) vlog - Leveled log on std log for Go glog - Leveled execution logs for Go go-logging - Supports different logging backends like syslog, file and memory. Multiple backends can be utilized with different log levels per backend and logger. gomol - A multi-output logging library designed for outputs that support additional metadata with log messages. graylog-golang - graylog-golang is a full implementation for sending messages in GELF (Graylog Extended Log Format) from Google Go (Golang) to Graylog jWalterWeatherman - Seamless terminal printing and file logging that’s as easy to use as fmt.Println immortal - A *nix cross-platform (OS agnostic) supervisor log4go - Go logging package akin to log4j logger - Go logging with buffered output and multiple writers logrus - Structured, pluggable logging for Go with built-in hooks for third-party loggers: Airbrake, Papertrail, Loggly, Sentry... MailJet Live Event Dashboard - API monitoring in real time. monkit - A flexible process data collection, metrics, monitoring, instrumentation, and tracing library for Go Prometheus - Monitoring system and time-series database. rfw - Rotating file writer - a 'logrotate'-aware file output for use with loggers sd - Writes to the systemd journal, supports user defined systemd journal fields seelog - Flexible dispatching, filtering, and formatting snap - Telemetry framework spacelog - Hierarchical, leveled, and structured logging library for Go statsgod - A rewrite of StatsD in Go. syslog - With this package you can create your own syslog server with your own handlers for different kind of syslog messages Tideland golib - Flexible logging timber - Configurable Logger for Go Machine Learning bayesian - A naive bayes classifier. ctw - Context Tree Weighting and Rissanen-Langdon Arithmetic Coding evo - a framework for implementing evolutionary algorithms in Go. go-algs/maxflow Maxflow (graph-cuts) energy minimization library. go-galib - Genetic algorithms. golinear - Linear SVM and logistic regression. go_ml - Linear Regression, Logistic Regression, Neural Networks, Collaborative Filtering, Gaussian Multivariate Distribution. gorgonia - Neural network primitives library (like Theano or Tensorflow but for Go) go-porterstemmer - An efficient native Go clean room implementation of the Porter Stemming algorithm. go-pr - Gaussian classifier. ntm - Neural Turing Machines implementation paicehusk - Go implementation of the Paice/Husk Stemmer snowball - Snowball stemmer go-mind - A neural network library built in Go Anna - Artificial Neural Network Aspiration, aims to be self-learning and self-improving software. Mathematics bayesian - Naive Bayesian Classification for Go blas - Go implementation of BLAS (Basic Linear Algebra Subprograms) cartconvert - cartography functions for the Go programming language clp - Go bindings for the COIN-OR Linear Programming (CLP) library Cvx - Convex optimization package, port of CVXOPT python package dice - Dice rolling library evaler - A simple floating point arithmetic expression evaluator fixed - A fixed point (Q32.32 format) math library geom - 2d geometry gini - SAT Solver/Boolean Logic Tools gochipmunk - Go bindings to the Chipmunk Physics library gocomplex - a complex number library godec - multi-precision decimal arithmetic gofd - concurrent finite domain constraint solver. go-fftw - Go bindings for FFTW - The Fastest Fourier Transform in the West go-fn - Special functions that would not fit in "math" pkg gographviz - Graphviz DOT language parser for Go go-gt - Graph theory algorithms go-humanize - Formatting numbers for humans. golibs/xmath - a collection of math functions (mostly mean algorithms) go-lm - Linear models in Go. Provides WLS and regression with t residuals via a cgo -> BLAS/LAPACK interface. go.mahalanobis - Naive implementation of the Mahalanobis distance using go.matrix gomat - lightweight FAST matrix and vector math go_matrix_cuda - GPU-Accelerated Linear Algebra Libraries based in CUDA go.matrix - a linear algebra package gonum - Scientific packages (linear algebra, BLAS, LAPACK, differentiation, plots, linear programming, statistics, ...) go-symexpr - Symbolic math as an AST with derivatives, simplification, and non-linear regression gsl - GNU Scientific Library bindings interval - Package interval handles sets of ordered values laying between two, possibly infinite, bounds. mathutil - Package mathutil provides utilities supplementing the standard 'math' and 'rand' packages. mt19937_64 - Mersenne Twister int64 random source permutation - Package permutation generates permutations of the indices of a slice polyclip.go - Go implementation of algorithm for Boolean operations on 2D polygons primes - Simple functionality for working with prime numbers. prime - Go version of Segmented Sieve and non Segmented sieve to produce prime numbers primegen.go - Sieve of Atkin prime number generator pso-go - A library of PSO (Particle Swarm Optimization) for Go. rand - 64-bit version of the math/rand package with Mersenne twister support. roger - A Go client for the RServer, allowing you to invoke R programs from Go. stats - A statistics package with common functions missing from the Golang standard library. statistics - GNU GSL Statistics (GPLv3) Tideland golib - Numerics package for statistcal analysis Units - Implements types, units, converter functions and some mathematics for some common physical types. lib vector - A small vector lib. humanize - formats large numbers into human readable small numbers Microservices gokit - The Go Kit microservice framework (and author interview). go-micro - Go Micro is a microservices library which provides the fundamental building blocks for writing fault tolerant distributed systems at scale. kite - RPC server and client framework. Miscellaneous atexit - Simple atexit library bíogo - Basic bioinformatics functions for the Go language. Breaker - Breaker enables graceful degraded mode operations by means of wrapping unreliable interservice interface points with circuit breaker primitives. btcrpcclient - A Websocket-enabled Bitcoin JSON-RPC client. cast - Safe and easy casting from one type to another in Go CGRates - Rating system designed to be used in telecom carriers world cpu - A Go package that reports processor topology cron - A library for running jobs (funcs) on a cron-formatted schedule daemonigo - A simple library to daemonize Go applications. dbus-go - D-Bus Go library desktop - Open file/uri with default application (cross platform) devboard - Kanban board application based on Simple-Khanban dioder-api - An API to IKEA dioder LED-strips dump - An utility that dumps Go variables, similar to PHP's var_dump env - Easily pull environment variables with defaults epub - Bindings for libepub to read epub content. EventBus - Lightweight event bus with async compatibility for Go . faker - Generate fake data, names, text, addresses, etc. fsnotify - File system notifications for Go functional - Functional programming library including a lazy list implementation and some of the most usual functions. GCSE - Go code search engine. source generate - runs go generate recursively on a specified path or environment variable and can filter by regex. go-amiando - Wrapper for the Amiando event management API go-bit - An efficient and comprehensive bitset implementation with utility bit functions. go-bitops - common bit operations for 32/64 bit integer go-business-creditcard - Validate/generate credit card checksums/names. gochem - A computational chemistry/biochemistry library. gocsv - Library for CSV parsing and emitting go.dbus - Native Go library for D-Bus go-ean - A minimal utility library for validating EAN-8 and EAN-13 and calculating checksums. go-eco - Functions for use in ecology go-erx - Extended error reporting library go-eventsocket - An event socket client/server library for the FreeSWITCH telephony platform. GoFakeIt - Fake Data Generator. 65+ different variations and examples for each go-fann - Go bindings for FANN, library for artificial neural networks GoFlow - Flow-based and dataflow programming library for Go goga - A genetic algorithm framework gogobject - GObject-introspection based bindings generator go-idn - a project to bring IDN support to Go, feature compatible with libidn GoLCS - Solve Longest Common Sequence problem in go golibs/as - Converting data types golife - Implementation of Game of Life for command line go-magic - A Go wrapper for libmagic go-magic - Simple interface to libmagic for Go Programming Language go-metrics - Go port of Coda Hale's Metrics library gommap - gommap enables Go programs to directly work with memory mapped files and devices in a very efficient way gomusicbrainz - MusicBrainz WS2 client library goneuro - Go driver for NeuroSky devices. goNI488 - A Go wrapper around National Instruments NI488.2 General Purpose Interface Bus (GPIB) driver. go-osx-plist - CoreFoundation Property List support for Go go-papi - Go interface to the PAPI performance API go.pcsclite - Go wrapper for pcsc-lite Go-PhysicsFS - Go bindings for the PhysicsFS archive-access abstraction library. go.pipeline - Library that emulates Unix pipelines go-pkg-mpd - A library to access the MPD music daemon go-pkg-xmlx - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browser and exposes some simpel single/multi-node search functions goplan9 - libraries for interacting with Plan 9 goPromise - Scheme-like delayed evaluation for Go go-qrand - Go client for quantum random bit generator service at random.irb.hr goraphing - A tool to generate a simple graph data structures from JSON data files go-selenium - Selenium WebDriver client for Go go-semvar - Semantic versions (see http:/semver.org) go-serial - Go binding to libserialport for serial port functionality (cgo). goST - A steam properties (steam table) library written for Go. This was designed as a native go equivalent to XSteam. go-taskstats - Go interface for Linux taskstats gotenv - Loads environment variables from .env file Gotgo - A Go preprocessor that provides an implementation of generics go-translate - Google Language Translate library go-uuid - Universal Unique IDentifier generator and parser gouuid - Pure Go UUID v3, 4 and 5 generator compatible with RFC4122 go-villa - Some miscellaneous wrapper and small algorithms.(wrappers to slices, priority queues, path related apis, a string set type) Hranoprovod - Command-line calorie tracking lineup - A minimalistic message queue server mitigation - Package mitigation provides the possibility to prevent damage caused by bugs or exploits. nma.go - A NotifyMyAndroid client for go. notify - File system event notification library with API similar to os/signal. passwd - A parser for the /etc/passwd file pool - A generic worker pool procfile - A Procfile parser Prometheus Instrumentation/Metrics Client - This is a whitebox instrumentation framework for servers written in Go. It exposes programmatically-generated metrics automatically for use in the Prometheus time series collection and post-processing environment. randat - Devel tool for generating random bytestrings and encoding files in code-friendly forms recycler - A more flexible object recycling system than sync.Pool. Provides constructors and destructors for the objects as well as control over the length the free. replaykit - A library for replaying time series data. serial - Serial ports API (pure Go) sio - Package sio lets you access old serial junk. It's a go-gettable fork and modification of dustin's rs232 package. stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc... symutils - Various tools and libraries to handle symbolic links toktok - Creates and resolves unique, typo & error-resilient, human-readable tokens twitterfetcher - A tool to make Twitter API requests using the Application-only authentication udis86 - Go bindings for libudis86 ugo - underscore.js like toolbox for Go Vboxgo - user-like access to VirtualBox VMs from Go. Wukong - A highly extensible full-text search engine written in Go. xplor - Files tree browser for p9p acme yubigo - Yubikey OTP validation and auhtentication API client. Music gmask - Go adaptation of the Cmask utility for Csound go-csnd6 - Go binding to the Csound6 API go-csperfthread - Go binding to the CsoundPerformanceThread helper class of the Csound6 API go-libshout - Go bindings for libshout gompd - A client interface for the MPD (Music Player Daemon) launchpad - A Go client for Novation Launchpad portmidi - Go bindings for libportmidi Networking DNS bitz - BitMessage client node and library dingo - A DNS client in Go that supports Google DNS over HTTPS dns - A DNS library in Go dnsimple - an interface to the DNSimple API dyndnscd - a configurable dyndns client GeoDNS - geo-aware authoritative DNS server grong - Small authoritative DNS name server mdns - Multicast DNS library for Go hostsfile - /etc/hostsfile reverse lookup IP => names dnss - DNS secure proxy, supports DNS over HTTPS and GRPC domainerator - Command line tool to combine wordlist and suffixes/TLDs into domain names and check if they are registered or not. FTP ftp4go - An FTP client for Go, started as a port of the standard Python FTP client library ftp - Package ftp provides a minimal FTP client as defined in RFC 959 ftps - An implementation of the FTPS protocol goftp - A FTP client library HTTP apiproxy - proxy for HTTP/REST APIs with configurable cache timeouts boom - HTTP(s) benchmarking tool, Apache Benchmark replacement eventsource - Server-sent events for net/http server. fasthttp - Fast HTTP package for Go gbench - HTTP(s) Load Testing And Benchmarking Tool inspired by Apache Benchmark and Siege. gobench - HTTP/HTTPS load test and benchmark tool go-curl - libcurl bingding that supports go func callbacks goproxy - a programmable HTTP proxy. handlers - Collection of useful HTTP middlewares. gostax - A Streaming API for XML (StAX) in go IMAP go-imap - An IMAP library for clients and servers. go-imap - IMAP client library go-imap - Implementation of IMAP4rev1 client, as described in RFC 3501 Instant Messaging hanu - Framework for writing Slack bots gobir - Extensible IRC bot with channel administration, seen support, and go documentation querying goexmpp - XMPP client implementation goirc - event-based stateful IRC client framework go-irc - Simple IRC client library gorobot - a modular IRC bot go-xmpp - XMPP client library ircflu - IRC bot with support for commands, scripting and web-hooks irc.go - Go IRC bot framework sirius - A fast and ultra-lightweight chat server written in Go xmpp-client - an XMPP client with OTR (off-the-record) support NNTP go-nntp - An NNTP client and server library for go Protocol Buffers gogoprotobuf - another Go implementation of Protocol Buffers, but with extensions and code generation plugins. golang_protobuf_extensions - Protocol Buffer extensions to support streaming message encoding and decoding. goprotobuf - the Go implementation of Google's Protocol Buffers protorpc - Google Protocol Buffers RPC for Go and C++ rsync replican-sync - An rsync algorithm implementation in Go Rsync - Rsync algorithm as a Go library Telnet telnet - Package telnet provides TELNET and TELNETS client and server implementations, for the Go programming language, in a style similar to the "net/http" library (that is part of the Go standard library) including support for "middleware"; TELNETS is secure TELNET, with the TELNET protocol over a secured TLS (or SSL) connection. telnet - A simple interface for interacting with Telnet connection telnets - A client for the TELNETS (secure TELNET) protocol. VNC glibvnc - Go wrapper using CGO for the libvnc library. Websockets Gorilla WebSocket - WebSocket protocol implementation websocketd - HTTP server that converts STDIN/STDOUT program into WebSockets service. Also handles HTML and CGI. wst - A dead simple WebSocket tester ws-cli - WebSocket command line client ZeroMQ goczmq - Wrapper for the CZMQv3 interface - blog post gozmq - Go Bindings for 0mq (zeromq/zmq) zmq2 - A Go interface to ZeroMQ (zmq, 0MQ) version 2. zmq3 - A Go interface to ZeroMQ (zmq, 0MQ) version 3. zmq4 - A Go interface to ZeroMQ (zmq, 0MQ) version 4. Misc Networking betwixt - Betwixt implements the OMA Lightweight M2M (LWM2M) protocol for Device Management and Monitoring canopus - CoAP Client/Server implementation (RFC 7252) chunkedreader - A light weight library for reading continuous fixed sized messages from TCP streams. circle - Go interface to the libcircle distributed-queue API createsend-go - API client for Monitor http://www.campaignmonitor.com (email campaign service) dmrgo - Library for with Hadoop Streaming map/reduce doozerconfig - Go package for managing json-encoded configuration in Doozer doozerd - A consistent distributed data store endless Zero downtime restarts for go servers (Drop in replacement for http.ListenAndServe/TLS) gearman-go - A native implementation for Gearman API with Go. Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io) goagain - zero-downtime restarts in Go Go Ajax - Go Ajax is a JSON-RPC implementation designed to create AJAX powered websites. gobeanstalk - Go Beanstalkd client library go-camo - Go http image proxy (camo clone) to route images through SSL go-dbus - A library to connect to the D-bus messaging system go-diameter - Diameter stack and Base Protocol (RFC 6733) go-smpp - SMPP 3.4 protocol implementation go-flowrate - Data transfer rate control (monitoring and limiting) gogammu - Library for sending and receiving SMS go-icap - ICAP (Internet Content Adaptation Protocol) server library gonetbench - Simple TCP benchmarking tool gonetcheck - package for checking general internet access goodhosts - Simple hosts file (/etc/hosts) management in Go gopacket - Packet encoding/decoding, pcap/pfring/afpacket support, TCP assembly, and more! gopcap - A simple wrapper around libpcap goq - A persistent message queue written in Go. goradius - A Radius client written in Go go-rpcgen - ProtoBuf RPC binding generator for net/rpc and AppEngine gorpc - RPC optimized for high load GoRTP - RTP / RTCP stack implementation for Go GoSIPs - SIP (Session Initiation Protocol) Stack in Go mqtt - MQTT stack in Go gosndfile - Go binding for libsndfile gosnmp - an SNMP library written in GoLang. go-socket.io - A Socket.IO backend implementation written in Go gosocks - A SOCKS (SOCKS4, SOCKS4A and SOCKS5) proxy client library in Go. go-sslterminator - SSL terminator proxy go-statsd-client - Go statsd client library Grumble - Mumble (VoIP) server implementation handlersocket-go - Go native library to connect to HandlerSocket interface of InnoDB tables HomeControl - an implementation of Apple's HomeKit Accessory Protocol (HAP) Hprose - Hprose is a High Performance Remote Object Service Engine. httpfstream - streaming append and follow of HTTP resources (using WebSockets) ipaddress - Convenient ip address functions: ip -> int, int -> ip, and IPNet broadcast address iris-go - Go binding for the Iris decentralized messaging framework. iris - Peer-to-peer messaging for back-end decentralization. kafka.go - Producer & Consumer for the Kafka messaging system lcvpn - Decentralized VPN implementation ldap - Basic LDAP v3 functionality for the GO programming language. mbxchan - An easy communication between distributed Go applications using standard Go channels and remote procedure calls. nagiosplugin - package for writing Nagios/monitoring plugins NATS - NATS distributed messaging system client for Go netsnail - A low-bandwidth simulator netutils - Simple interface for turning TCP Sockets into channels. npipe - a pure Go wrapper for Windows named pipes norm - reliable UDP using multicast and unicast sockets opendap - Go wrapper for Openldap pusher-http-go - Go library for interacting with the Pusher Realtime API QRP - QRP is a simple packet-based RPC protocol designed as a simple alternative to Go's rpc, that can run over UDP remotize - A remotize package and command that helps remotizing methods without having to chaneg their signatures for rpc rs232 - Serial interface for those of us who still have modems (or arduinos) rss - RSS parsing library. seamless - Reverse TCP Proxy with HTTP management API shell2http - Executing shell commands via simple http server sockjs-go - Implements server side counterpart for the SockJS-client browser library. SOCKS5 Server - Scalable SOCKS5 server with Access Control Lists spark - Emergency web server (for static files) spdy - SPDY library, wired into net/http, currently supporting servers only. statsd-go - Statsd implementation in Go, forked from gographite, which submits to Ganglia stompngo_examples - Examples for stompngo. stompngo - A Stomp 1.1 Compliant Client tcp_fallback - A TCP proxy implementing a simple fallback mechanism. tcpmeter - A TCP throughput measuring tool toxiproxy - Framework for simulating network conditions. traceroute - A traceroute implementation traefik - Modern, reverse proxy in Go Uniqush - A free and open source software which provides a unified push service for server-side notification to apps on mobile devices. uritemplates - A level 4 implementation of URI Templates (RFC 6570) VDED - Vector Delta Engine Daemon - track deltas in ever-increasing values (written in Go) zero-downtime-daemon - Configurable zero downtime daemon (Hot Update) framework for any kind of TCP,HTTP,FCGI services zeroupgrade - Upgrades network servers with zero downtime cwmp-proxy - Reverse cwmp proxy netstat-nat - Display NAT entries on Linux systems go-nat-pmp - A client for the NAT-PMP protocol used in Apple and open-source routers humanize-bytes - Command-line utilities to convert "MiB" etc to raw numbers, and back Operating System Interfaces Go FUSE file system library - From-scratch implementation of the kernel-userspace communication protocol based on Russ Cox'. Go-fuse - Library to write FUSE filesystems in Go go-osx-xattr - Package xattr wraps OS X functions to manipulate the extended attributes of a file, directory and symbolic link. inspect/os - Metrics library for operating system measurements (Linux/MacOSX) service - Service will install / un-install, start / stop, and run a program as a service (daemon) on Windows/Linux and OSX. go-nbd - Library to write block devices for Linux in Go. Other Random Toys, Experiments and Example Code goconc - A collection of useful concurrency idioms and functions for Go, compiled go-crazy - An experimental source-to-source compiler for go go-gtk-demo - A demonstration of how to use GTK+ with Go. go-hashmap - A hash table in pure go as an experiment in Go performance golang-examples - A bunch of golang examples GolangSortingVisualization - A visualization of various sorting algorithms in Go golibs - A collection of tiny go packages (and also a test repo for various CI and coverage services) goplay - A bunch of random small programs in Go lifegame-on-golang - Game of Life in Go linear - Playing around with the linear algebra pl0 - PL/0 front end, compiler and VM. . project euler in go - Solutions to Project Euler in Go also shadergo - shader test using Go travisci-golang-example - Travis-CI example for Go P2P and File Sharing DHT - Kademlia DHT node used by Taipei-Torrent, compatible with BitTorrent ed2kcrawler - eDonkey2000 link crawler gop2p - A simple p2p app to learn Go go-p2p - P2P module for blockchains and more GoTella - A Go implementation of the Gnutella Protocol Taipei-Torrent - A BitTorrent client Tendermint - P2P Byzantine-Fault-Tolerant consensus & blockchain stack wgo - A simple BitTorrent client based in part on the Taipei-Torrent and gobit code Programming go-clang - cgo bindings to the C-API of libclang godeferred - port of jsdeferred: http://cho45.stfuawsc.com/jsdeferred/ go-galib - a library of Genetic Algorithms go-intset - a library to work with bounded sets of integers, including multiple alternative implementations go-parse - a Parsec-like parsing library sh - a shell/bash parser and formatter Shuffle - Implementation of the Fisher–Yates shuffle (or Knuth shuffle) in Go. Resource Embedding fileb0x - Simple tool to embed files in go with focus on "customization" and ease to use. go-bindata - Package that converts any file into managable Go source code. go-resources - Unfancy resources embedding with Go. go.rice - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy. statics - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks. RPC gowsdl - WSDL code generation gRPC - Google's multi-language RPC framework with Go support Scanner and Parser Generators ebnf2y - Utility for converting EBNF grammars into yacc compatible skeleton .y files. gocc - Go Compiler Compiler golex - Lex/flex like fast (DFA) scanners generator. gopp - Go Parser Parser goyacc - Goyacc is a version of yacc generating Go parsers. y - Package y converts .y (yacc) source files to data suitable for a parser generator. yy - yacc to yacc compiler. flexgo - A version of flex that can produce Go code. fsm - FSM (NFA, DFA) utilities. Ragel - State Machine Compiler lexmachine - Lexical Analysis Framework for Golang Security acme - ACME certificate acquisition tool casbin - An authorization library that supports access control models like MAC, RBAC, ABAC gryffin - A large scale security scanner by Yahoo! hyperfox - a security tool for proxying and recording HTTP and HTTPs communications on a LAN lego - Let's Encrypt client and ACME library webseclab - a sample set of web security test cases and a toolkit to construct new ones Simulation Modeling godes - Library for building discrete event simulation models Sorting funnelsort - Lazy funnel sort -- a cache-oblivious sorting algorithm Sortutil - Nested, case-insensitive, and reverse sorting for Go. sortutil - Utilities supplemental to the Go standard "sort" package tarjan - Graph loop detection function based on Tarjan's algorithm timsort - Fast, stable sort, uses external comparator or sort.Interface Source Code Management Gitfile - A lightweight package manager for installing git repos go-deps - Analyzes and recursively installs Go package deps (library functionality similar to go get) go-diff - A diff command for go languange showing semantic differences of two go source files. gogitver - Embeds a git tag (version string) into your application go-many-git - Manage and run commands across multiple git repositories go-pkgs - Finds all matching packages in all of the GOPATH trees (library functionality similar to go list all) go-vcs - clone and check out revs of VCS repositories (git and hg support) go-vcsurl - Lenient VCS repository URL parsing library hggofmt - A Mercurial/hg extension with a hook to nut - Nut is a tool to manage versioned Go source code packages, called "nuts". vcstool - VCS abstraction tool Storage Minio - Object Storage compatible with Amazon S3 API libStorage - an open source, platform agnostic, storage provisioning and orchestration framework, model, and API OpenEBS - Containerized, Open source block storage for your containers,integrated tightly into K8S and other environments and based on distributed block storage and containerization of storage control Strings and Text allot - Placeholder and wildcard text parsing for CLI tools and bots awk - Easy AWK-style text processing in Go binarydist - Binary diff and patch Black Friday - A markdown processor codename-generator - A codename generator meant for naming software releases columnize - format slice or array into aligned columns csvplus - Extends the standard Go encoding/csv package with fluent interface, lazy stream operations, indices and joins. csvutil - A heavy duty CSV reading and writing library. dgohash - Collection of string hashing functions, including Murmur3 and others douceur - A simple CSS parser and inliner in Go. dsv - A library for working with delimited separated value (DSV). flux - Fluent Regular Expressions in golang genex - Expansion of Regular Expressions gettext-go - GNU's gettext support, written in pure Go gettext - Golang bindings for gettext; Feature complete, cgo go-colortext - Change the color of the text and background in the console, working both in Windows and other systems. go-guess - Go wrapper for libguess goagrep - fast fuzzy string matching using precomputation goini - A go library to parse INI files golorem - lorem ipsum generator go-migemo - migemo extension for go (Japanese incremental text search) go-ngram N-gram index for Go goregen - A Go library for generating random strings from regular expressions. goskirt - Upskirt markdown library bindings for Go gosphinx - A Go client interface to the Sphinx standalone full-text search engine govalidator - Package of string validators and sanitizers gpKMP - String-matching in Go using the Knuth–Morris–Pratt algorithm hangul - Handy tools to manipulate Korean character html2text - Golang HTML to text conversion library intern - Map strings to symbols for constant-time comparisons kasia.go - Templating system for HTML and other text documents kview - Simple wrapper for kasia.go templates. It helps to modularize content of a website logparse - Parser for most common log formats NTemplate - Nested Templates parse - PEG parser that uses reflection to define grammar peg - Parsing Expression Grammer Parser plural - No-fuss plurals for formatting both countable and continuous ranges of values. polyglot - String translation utilities for Go pretty.go - Pretty-printing for go values raymond - A complete handlebars implementation in Go. rubex - A simple regular expression library that supports Ruby's regex syntax. It is faster than Regexp. sanitize - Package sanitize provides functions for sanitizing html and text. scanner - A text scanner that parses primitive types, analogous to Java's segment - An implementation of Norvig's recursive word segmentation algorithm sprig - Template functions for Go templates. strftime - strftime implementation strit - Package strit introduces a new type of string iterator, as well as a number of iterator constructors, wrappers and combinators. strogonoff - Stenography with Go strutil - Package strutil collects utils supplemental to the standard strings package. text - Text paragraph wrapping and formatting Tideland golib - Stringex package for statistcal analysis useragent - User agent string parser xurls - Extract urls from text Testing

assert - Basic Assertion Library used along side native go testing, with building blocks for custom assertions

assert - Assert for go test.

assert - Handy assert package.

assert - JUnit-like asserts with excellent error messages

conex - Docker containers for integration tests

counterfeiter - Tool for generating self-contained and type-safe mocks.

downtest - Automatically run tests for all known downstream consumers of a Go package.

ginkgo - BDD Testing Framework for Go.

go2xunit - Convert "go test -v" output to xunit XML output

go-assert - Testing utils for Go.

goautotest - Automatically run unit tests when code changes are made

goblin - Minimal and Beautiful Go testing framework

Gocheck - Rich test framework with suites, fixtures, assertions, good error reporting, etc

GoConvey - Browser-based reporting, uses go test, supports traditional Go tests, clean DSL

gocov - Code coverage testing/analysis tool

gomega - Ginkgo's Preferred Matcher Library.

gomock - a mocking framework for Go.

GoSpec - a BDD framework

gospecify - another BDD framework

go-stat - performant instrumentation/profiling for Go

go-tap - TAP (Test Anything Protocol) parser in Go

gounit - xunit for Go

GSpec - Expressive, reliable, concurrent and extensible Go test framework that makes it productive to organize and verify the mind model of software.

httpexpect - Concise, declarative, and easy to use end-to-end HTTP and REST API testing

Nitro - A quick and simple profiler For Go

mspec - BDD framework that frees you to Stub and Spec your code first with natural BDD language.

muxy - Simulating real-world distributed system failures.

Pegomock - a mocking framework based on golang/mock, but uses a DSL closely related to Mockito.

terst - A terse, easy-to-use testing library for Go

test2doc - Generate documentation for your go units from your unit tests.

testfixtures - Rails' like test fixtures for testing database driven apps.

testflight - Painless http testing in Go

Testify - A set of packages that provide many tools for testifying that your code will behave as you intend.

ut - Awesome mocks without magic.

Validation validator - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving validation - Simple independent struct/key-value validation Version Control git (in go) - Minimal working git client in Go gogs - Self-hosting Git Server in Go semver - Semantic Versioning (SemVer) library Virtual Machines and Languages agora - A dynamically typed, garbage collected, embeddable programming language built with Go anko - Scriptable interpreter written in golang forego - Forth virtual machine Gelo - Extensible, embeddable interpreter GoEmPHP - This package is built for Embedding PHP into Go goenv - Create an isolated environment where you install Go packages, binaries, or even C libraries. Very similar to virtualenv for Python. GoForth - A simple Forth parser golemon - A port of the Lemon parser-generator GoLightly - A flexible and lightweight virtual machine with runtime-configurable instruction set goll1e - An LL(1) parser generator for the Go programming language. Golog - Prolog interpreter in Go go-lua - Shopify's lua interpreter golua - A fork of GoLua that works on current releases of Go gomruby - mruby (mini Ruby) bindings for Go gopher-lua - A Lua 5.1 VM and compiler written in Go go-php - PHP bindings for Go go-python - go bindings for CPython C-API gotcl - Tcl interpreter in Go v8 - V8 JavaScript engine bindings for Go (supports V8 builds at least up to 5.8.244) go-v8 - V8 JavaScript engine bindings for Go LispEx - A dialect of Lisp extended to support for concurrent programming, written in Go. meme - Scheme interpreter in Go Minima - A language implemented in Go ngaro - A ngaro virtual machine to run retroForth images otto - A JavaScript parser and interpreter written natively in Go RubyGoLightly - An experimental port of TinyRb to Go Web Applications Presento - The simplest possible cross-platform remote control for the presentations Caddy - A fast, capable, general-purpose HTTP/2 web server that's easy to use Digestw - A Web Application - Twitter's Timeline Digest fabio - A fast zero-conf load balancing HTTP router for microservices. fourohfourfound - A fallback HTTP server that may redirect requests with runtime configurable redirections Fragmenta - A CMS built in Go freegeoip - IP geolocation web service (web server of freegeoip.net) goals-calendar - A web-based Seinfeld calendar implemented in Go goblog - A static blog engine gocrawl - A polite, slim and concurrent web crawler. goflash - Flash player implementation in Go language gogallery - simple web server with an emphasis on easily browsing images goof - A simple http server to exchange files over http (upload/download) gopages - A php-like web framework that allows embedding Go code in web pages go_spider - A flexible ,modularization and concurrent web crawler framework. GoURLShortener - A frontend for the http://is.gd/ URL shortener gowall - A website and user system httpfolder - A http server to exchange files over http with basic authentication (upload/download) Hugo - A fast and flexible static site generator implemented in Go Já Vai Tarde - Unfollows monitoring for Twitter kurz.go - a url shortener based on web.go and redis Monsti - Resource friendly flat file CMS for private and small business sites. now.go - A simple HTTP-based to-do queue. Peach - A web server for multi-language, real-time synced and searchable documentation. rabbitmq-http - REST API for RabbitMQ serve-files - Far-future and gzip wrapper around the standard net/http server. sf_server - a tiny send file server and client Tideland golib - Web package for REST request handling Vantaa - A modular blogging API engine written in Go, Neo4j and Polymer. websiteskeleton - Simple net/http website skeleton webtf - Web app to graphical visualization of twitter timelines using the HTML5 Wikifeat - Extensible wiki system using CouchDB written in Golang Freyr - Server for storing and serving readings from plant environment sensors. Integrates Golang API with ReactJS web app; uses Docker for testing/deployment. Rickover - Job queue with a HTTP API, backed by Postgres Web Libraries Authentication goth - Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications authcookie - Package authcookie implements creation and verification of signed authentication cookies. dgoogauth - Go port of Google's Authenticator library for one-time passwords goauth - A library for header-based OAuth over HTTP or HTTPS. GOAuth - OAuth Consumer go-http-auth - HTTP Basic and HTTP Digest authentication Go-OAuth - OAuth 1.0 client goha - Basic and Digest HTTP Authentication for Go http client hero - OAuth server implementation - be an OAuth provider with Go httpauth-go - Package httpauth provides utilities to support HTTP authentication policies. Support for both the basic authentication scheme and the digest authentication scheme are provided. httpauth - HTTP session (cookie) based authentication and authorization oauth1a - OAuth 1.0 client library OAuth Consumer - OAuth 1.0 consumer implementation otp - HOTP and TOTP library with command line replacement for Google Authenticator totp - Time-Based One-Time Password Algorithm, specified in RFC 6238, works with Google Authenticator go-otp - Package go-otp implements one-time-password generators used in 2-factor authentication systems like RSA-tokens. Currently this supports both HOTP (RFC-4226), TOTP (RFC-6238) and Base32 encoding (RFC-3548) for Google Authenticator compatibility DOM handling Cascadia - CSS selector library GoQuery - jQuery-like DOM manipulation library, using Go's experimental HTML package. goq - jQuery-like declarative struct tag scraping and unmarshaling based on GoQuery. html-query - A fluent and functional approach to querying HTML. HTML Transform - A CSS selector based html scraping and transformation library Frameworks and Toolkits Air - An ideal RESTful web framework for Go. alien - A lightweight and fast http router app.go - Web framework for google app engine arasu - A Lightning Fast Web Framework written in Go & Dart Beego - Beego is an open source version of the scalable, non-blocking web framework. browserspeak - Generate HTML templates, CSS or SVG without writing  httpcoala - Library for request coalescing - handy for reverse proxies. falcore - Modular HTTP server framework fcgi_client - Go fastcgi client with fcgi params support florest - High-performance workflow based REST API framework in Go forgery - A clone of the superb Node.js web framework Express. Gin Web Framework - Martini-like API and httprouter gives it good performance. Goal - A toolkit for high productivity web development in Go language built around the concept of code generation. Go-Blog - Blog framework written in Go go-fastweb - aims to be a simple, small and clean MVC framework for go goku - a Web Mvc Framework for Go, mostly like ASP.NET MVC. Golanger - Golanger Web Framework is a lightweight framework for writing web applications in Go. Goldorak.Go - a web miniframework built using mustache.go, web.go and Go-Redis go-restful - lean package for building REST-style Web Services GoRest - An extensive configuration(tags) based RESTful style web-services framework. go-rest - A small and evil REST framework for Go gorilla - Gorilla web toolkit GoSrv - A Go HTTP server that provides simple command line functionality, config loading, request logging, graceful connection shutdown, and daemonization. go-start - A high level web-framework for Go go-urlshortener - interface to google's urlshorten API goweb - Lightweight RESTful web framework for Go providing Ruby on Rails style routing go-webproject - Modular web application framework and app server Gowut - Go Web UI Toolkit is a full-featured, easy to use, platform independent Web UI Toolkit written in pure Go. HttpRouter - A high performance HTTP request router that scales well limiter - Simple rate limter middleware for Go Macaron - Modular web framework in Go mango - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. Martini deprecated - Martini is a popular, lightweight, extensible package for writing modular web apps/services in Go Negroni - Idiomatic middleware for Go restclient - Client library for interacting with RESTful APIs. resty - REST client library inspired by Ruby rest-client. Revel - High productivity web framework modeled on Play! Framework Ringo - Lighweight MVC web framework inspired by Rails, Gin. sawsij - Provides a small, opinionated web framework. Tango - Micro-kernel & pluggable web framework for Go Tiger Tonic - framework for building JSON web services inspired by Dropwizard trinity - MVC framework Utron - MVC Framework Violetear - HTTP router web.go - a simple framework to write webapps wfdr - Simple web framework designed for and written in go. Works with other languages as well, but not as well. xweb - A web framework for Go. Just like Struts for Java. HTML forms form - Complete bidirectional HTML form encoder & decoder (x-www-form-urlencoded) for arbitrary data (package encoding compatible) gforms - HTML forms for Go Go-FORM-it - Go library for easy and highly-customizable forms creation and template rendering. GoForms - Form data validation, cleaning and error reporting - a la django.forms htmlfiller - Fills in html forms with default values and errors a la Ian Bicking's htmlfill for Python MonstiForm - HTML form generator and validator library revel-csrf - Cross-Site Request Forgery (CSRF) attacks prevention for the Revel framework xsrftoken - A package for generating and validating tokens used in preventing XSRF attacks Public API Wrappers adn - Interface to the App.net API anaconda - Client library for the Twitter 1.1 API ddg - DuckDuckGo API interface facebook - Up-to-date facebook graph API client. Handy and flexible filepicker-go - Go library for the Filepicker's REST API firebase - Client library for the Firebase REST API gh - Scriptable server and net/http middleware for GitHub Webhooks API github - Go library for accessing the GitHub REST API v3 githubql - Go library for accessing the GitHub GraphQL API v4 gobo - Client library for Sina Weibo gocaptcha - gocaptcha provides easy access to the reCaptcha API in go go-dealmap - Go library for accessing TheDealMap's API go-dropbox - API library for dropbox go-flickr - A wrapper for Flickr's API go-get-youtube - A simple library+client for fetching meta data of, and downloading Youtube videos go-gravatar - Wrapper for the Gravatar API go-hummingbird - Go library for accessing the Hummingbird.me API go-libGeoIP - GO Lib GeoIP API for Maxmind gominatim - Go library to access nominatim geocoding services gomojo - Instamojo API wrapper gomwapi - Access mediawiki contents like wikipedia, wiktionary in golang go-myanimelist - Go library for accessing the MyAnimeList API googtrans - unofficial go bindings for Google Translate API v2 go-recaptcha - Handles reCaptcha form submissions in Go gorecurly - A Client app to use with Recurly's api go.strava - Official client library for the Strava V3 API go.stripe - a simple credit card processing library for Go using the Stripe API Gotank - Searchify's Go client for the IndexTank full-text search API go-tripit - Go API library for the TripIt web services GoTwilio - Twilio library for Go (golang). Very basic at the moment gravatar - Gravatar image/profile API library jsonapi - Generate JSON API from Go structs postmark - Access postmark API from Go reddit.go - Client library for Reddit API shorturl - Generic implementation for interacting with various URL shortening services Stack on Go - Go wrapper for Stack Exchange API stripe - Official Stripe client library SocialSharesCount - Wrapper API on multiple social websites to get URL share statistics twilio - Simple Twilio API wrapper twittergo - Client library for Twitter's API cloudcomb-go-sdk - Go client library for CloudComb Other adhoc-http - Quick & dirty HTTP static file server assets - Helps prepares CSS and JS files for development and production of Go web apps. bwl - a set of libraries to help build web sites captcha - Image and audio captcha generator and server gaerecords - Lightweight wrapper around appengine/datastore providing Active Record and DBO style management of data get2ch-go - a library to access the 2channel Japanese web bulletin board gofeed - Parse RSS and Atom feeds in Go go-gzip-file-server - A net.http.Handler similar to FileServer that serves gzipped content gohaml - An implementation of the popular XHTML Abstraction Markup Language using the Go language. go-httpclient - a Go HTTP client with timeouts gojwt - Json Web Tokens for Go go-pkg-rss - a packages that reads RSS and Atom feeds gorefit - A library for theming existing websites goreman - foreman clone GoRequest - Simplified HTTP client with rich features such as proxy, timeout, and etc. ( inspired by nodejs SuperAgent ) goroute - A very simple URL router based on named submatches of regular expression that works well with http.Handler . gorouter - Simple router for go to process url variables go-rss - Simple RSS parser and generator go-rss - Simple RSS parser, tested with Wordpress feeds. goscribble - An MPD Audioscrobble go-twitter - another Twitter client go-twitter-oauth - a simple Twitter client (supports OAuth) grender - Go static site generator halgo - HAL-compliant API client and serialisation library. http-gonsole - Speak HTTP like a local. (the simple, intuitive HTTP console, golang version) httprpc - HTTP RPC codecs (json2, soap, rest) HypeCMS - A flexible CMS built with Go and MongoDb. Kontl - A client for kon.tl's URL shortening service mustache.go - an implementation of the Mustache template language muxer - Simple muxer for a Go app without regexp Optimus Sitemap Generator - A universal XML sitemap generator passwordreset - Creation and verification of secure tokens useful for implementation of "reset forgotten password" feature in web applications. pat - A Sinatra style pattern muxer persona - remote verification API for persona plex - simple, small, light, regexp http muxer with chaining purell - tiny Go library to normalize URLs pusher.go - HTTP Server Push module for the standard http package rest2go - Based on rest.go, forked for improvements and REST consistency rest.go (forked) - forked rest.go for improvements and REST consistency robotstxt - The robots.txt exclusion protocol implementation. Allows to parse and query robots.txt file. seshcookie - A web session library inspired by Beaker soy - A Go implementation for Soy templates (Google Closure templates). High performance and i18n. user_agent - An HTTP User-Agent parser webtestutil - Web and HTTP functional testing utilities. Includes Gorilla testing support. aop - Aspect Oriented Programming For Go. yt2pod - Daemon that monitors YouTube channels and publishes audio podcasts of them Windows gform - An easy to use Windows GUI toolkit for Go go-ole - win32 ole implementation for golang go-Windows-begin - for the absolute Windows-Go beginner w32 - Windows API wrapper for Go. walk - "Windows Application Library Kit" for the Go Programming Language Windows Command Line Shutdow - A tool to shutdown Windows Computer from Command Prompt Unix inspect - Linux and MacOSX systems monitoring and diagnostics unixsums - Legacy Unix checksums: cksum, sum Unsorted; please help!

The following entries have not been filed. Please help by putting these in relevant categories.

GoBot - PoC Go HTTP Botnet ebml-go - EBML decoder go-bindata - Converts any file into manageable Go source code for embedding binary data into a Go program. goconsistenthash - Consistent hashing library (based on http://www.lexemetech.com/2007/11/consistent-hashing.html) go-cron - A small cron job system to handle scheduled tasks, such as optimizing databases or kicking idle users from chat. The cron.go project was renamed to this for go get compatibility. godebiancontrol - Golang debian control file parser go-gmetric - Ganglia gmetric protocol support gographviz - Graphviz DOT language parser for golang godotviz - Rendering graphics files from "DOT language". Written in golang dotviz-server - WebBased DOT language visualization tool written in go goseq - command line tool, written in Go, for creating sequence diagrams using a text-based description language. golor - golor is a command line tool for golang source code coloring gopcapreader - Presents realtime pcap data as io.Reader objects go.psl - Go regdom-libs/public suffix list go-webfinger - Simple Client Implementation of WebFinger httptail - tools push stdout/stderr to http chunked img-LinuxFr.org - A reverse-proxy cache for external images used on LinuxFr.org seed - Easily seed PRNGs with some entropy spellabc - Package spellabc implements spelling alphabet code word encoding. Twackup - Backs up your tweets into local files Tasks - A simplistic todo list manager written in Go

 

 

golang优秀实用开源项目收集 2016年04月15日 17:52:07 阅读数:2405

golang很多开源项目,铺天盖地,却很少有官方版。有时候真是选择乏力,选择一个优秀的流行的组件,能少走很多弯路。

整理一些最为出名和好用的开源组件(持续更新)

1.web框架

beego

go get github.com/astaxie/beego

http://beego.me

  2.数据库

mongo(极有可能成为官方pkg)

go get gopkg.in/mgo.v2

http://labix.org/mgo

mysql

go get github.com/go-sql-driver/mysql

https://godoc.org/github.com/go-sql-driver/mysql

  3.缓存

redis

go get github.com/garyburd/redigo/redis

https://godoc.org/github.com/garyburd/redigo/redis

 

redis-cluster(redis3.0以后支持集群)

go get github.com/chasex/redis-go-cluster

https://godoc.org/github.com/chasex/redis-go-cluster

memcache

go get github.com/bradfitz/gomemcache/memcache

https://godoc.org/github.com/bradfitz/gomemcache/memcache

  4.MQ

go-nsq

go get github.com/nsqio/go-nsq

https://godoc.org/github.com/nsqio/go-nsq

go-nsq是nsq的golang client包,nsq集群更多资料 http://nsq.io/

 

5.书籍

入门

《Go语言程序设计》

中规中矩的教科书套路,附有习题,详细全面,适合入门,但新手很难看出什么是重点

《学习Go语言》快速入门,不如上一本全面

进阶

 

            《Go语言圣经》重点突出,例子很到位,除了错别字比较多(不会影响阅读),堪称圣经

 

 

几款适合学习的项目:

1、cache2go

https://github.com/muesli/cache2go

比较简单的一个缓存库,代码量很少,适合新手学习,可以学习到锁、goroutines等。

2、groupcache

https://github.com/golang/groupcache

与memcached同一作者,相当于是memcached的go语言实现。

3、nsq

https://github.com/bitly/nsq

消息分发平台,阅读代码可以了解到很多分布式、负载均衡等方面的编程。

4、docker

https://github.com/docker/docker

时下很火的项目,个人感觉适合应用,不适合入门阅读学习,待成为了高手后可以研究下其实现。

 

 

 

 

 

GitHub上优秀的Go开源项目 2016年12月30日 12:14:56 阅读数:18168

近一年来,学习和研究Go语言,断断续续的收集了一些比较优秀的开源项目,这些项目都非常不错,可以供我们学习和研究Go用,从中可以学到很多关于Go的使用、技巧以及相关工具和方法。我把他们整理发出来,大家有兴趣可以根据自己的爱好选择一些进行研究和阅读,提升自己的能力,更好的使用Go语言,开发出更优秀的项目。

docker

无人不知的虚拟华平台,开源的应用容器引擎,借助该引擎,开发者可以打包他们的应用,移植到任何平台上。

https://github.com/docker/docker 38154 stars 11393 forks golang

go本身,也是用go语言实现的,包括他的编译器,要研究go源代码的可以看此项目录

https://github.com/golang/go 23082 stars 3081 forks lantern

蓝灯,一款P2P的过墙软件,他和SS不一样的是,他是分布式的,P2P的,通过蓝灯,你可以和自由上网的用户共享网络,对方可以自由上网,你也就自由了。

https://github.com/getlantern/lantern 21479 stars 5573 forks kubernetes

Google出品,用于调度和管理docker的开源容器管理系统,利用他,可以方便的管理你的docker实例,哪怕非常多,也是目前最流行的docker管理系统。

https://github.com/kubernetes/kubernetes 19513 stars 6540 forks awesome-go

这不是一个go项目,他是一个学习go的资料网站,属于著名的awesome系列,里面关于go的资源非常详细。

https://github.com/avelino/awesome-go 17182 stars 2154 forks gogs

一款基于git的代码托管系统,类似于github和gitlab,不过其小巧易用,功能强大,部署方便,也有不少用户在使用。

https://github.com/gogits/gogs 17004 stars 1887 forks syncthing

开源的文件同步系统,它使用了其独有的对等自由块交换协议,速度很快,据说可以替换BitTorrent Sync。

https://github.com/syncthing/syncthing 14399 stars 1117 forks hugo

一款极速的静态页面生成器,让你可以很快的搭建个人网站,提供了多套主题可供使用,并且可以自己定制,和NodeJS的Hexo是一样的。

https://github.com/spf13/hugo 13926 stars 2110 forks grafana

一款开源监控度量的看板系统,可以接Graphite,Elasticsearch,InfluxDB等数据源,定制化很高。

https://github.com/grafana/grafana 13659 stars 2133 forks etcd

一款分布式的,可靠的K-V存储系统,使用简单,速度快,又安全。

https://github.com/coreos/etcd 11837 stars 2148 forks hub

一款更便捷使用github的工具,包装并且扩展了git,提供了很多特性和功能,使用和git差不多。

https://github.com/github/hub 9630 stars 881 forks influxdb

可伸缩的数据库,使用场景主要用来存储测量数据,事件点击以及其他等实时分析数据,用来做监控性能很不错。

https://github.com/influxdata/influxdb 9501 stars 1330 forks caddy

快速的,跨平台的HTTP/2 Web服务器。

https://github.com/mholt/caddy 9322 stars 607 forks beego

国产开源的高性能Web框架,让你快速的开发Go Web应用服务,谢大主笔。

https://github.com/astaxie/beego 9182 stars 2229 forks martini

也是一款不错的Web框架。

https://github.com/go-martini/martini 8962 stars 942 forks cayley

Google开源的图数据库,这是一个NoSql数据库,适合处理复杂的,但是结构化低的数据,适用于社交网络,推荐系统等。

https://github.com/cayleygraph/cayley 8885 stars 747 forks nsq

一款开源的实时的,分布式的消息中间件系统。

https://github.com/nsqio/nsq 7884 stars 1022 forks codis

Codis是一个分布式Redis解决方案,其实就是一个数据库代理,让你在使用Redis集群的时候,就像使用单机版的Redis是一样的,对开发者透明。

https://github.com/CodisLabs/codis 5171 stars 1340 forks delve

这个Go开发者都知道,一款go应用开发的调试工具。

https://github.com/derekparker/delve 4700 stars 345 forks cobra

cobra是一个命令行go库,可以让你创建非常强大的,现代的CLI命令行应用。

https://github.com/spf13/cobra 3161 stars 285 forks shadowsocks-go

go版本的shadowsocks,大家都懂的。

https://github.com/shadowsocks/shadowsocks-go 2195 stars 1839 forks pholcus

Pholcus(幽灵蛛)是一款纯Go语言编写的支持分布式的高并发、重量级爬虫软件,定位于互联网数据采集,为具备一定Go或JS编程基础的人提供一个只需关注规则定制的功能强大的爬虫工具。

https://github.com/henrylee2cn/pholcus 1814 stars 560 forks


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有