golang 开源项目全集
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.
- 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
- 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
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: CentOS 6、7 安装 Golang
- 下一篇: Win10下搭建Go lang开发环境