Go语言(golang)开源项目大全-3

Machine Learning

  • bayesian - A naive bayes classifier.
  • go-galib - Genetic algorithms.
  • go-porterstemmer - An efficient native Go clean room implementation of the Porter Stemming algorithm.
  • paicehusk - Go implementation of the Paice/Husk Stemmer
  • snowball - Snowball stemmer

Mathematics

  • Cvx - Convex optimization package, port of CVXOPT python package
  • Units - Implements types, units, converter functions and some mathematics for some common physical types. lib
  • bayesian - Naive Bayesian Classification for Golang
  • blas - Go implementation of BLAS (Basic Linear Algebra Subprograms)
  • cartconvert - cartography functions for the Go programming language
  • dice - Dice rolling library
  • evaler - A simple floating point arithmetic expression evaluator
  • fixed - A fixed point (Q32.32 format) math library.
  • geom - 2d geometry.
  • go.mahalanobis - Naive implementation of the Mahalanobis distance using go.matrix
  • go-fftw - Go bindings for FFTW - The Fastest Fourier Transform in the West
  • go-fn - Special functions that would not fit in "math" pkg
  • go-gt - Graph theory algorithms
  • go-humanize - Formatting numbers for humans.
  • go-lm - Linear models in Go. Provides WLS and regression with t residuals via a cgo -> BLAS/LAPACK interface.
  • go-symexpr - Symbolic math as an AST with derivatives, simplification, and non-linear regression
  • go.matrix - a linear algebra package
  • gochipmunk - Go bindings to the Chipmunk Physics library.
  • gocomplex - a complex number library
  • godec - multi-precision decimal arithmetic
  • gographviz - Graphviz DOT language parser for golang
  • gomat - lightweight FAST matrix and vector math
  • gsl - GNU Scientific Library bindings
  • mathutil - Package mathutil provides utilities supplementing the standard 'math' and 'rand' packages.
  • mt19937_64 - Mersenne Twister int64 random source
  • polyclip.go - Go implementation of algorithm for Boolean operations on 2D polygons
  • pso-go - A library of PSO (Particle Swarm Optimization) for golang.
  • statistics - GNU GSL Statistics (GPLv3)
  • vector - A small vector lib.

Misc

  • GCSE - Go code search engine. source
  • CGRates - Rating system designed to be used in telecom carriers world
  • Go-PhysicsFS - Go bindings for the PhysicsFS archive-access abstraction library.
  • go.pipeline - Library that emulates Unix pipelines
  • GoFlow - Flow-based and dataflow programming library for Go
  • GoLCS - Sovle Longest Common Sequence problem in go
  • Gotgo - A Go preprocessor that provides an implementation of generics
  • Hranoprovod - Command-line calorie tracking
  • Tideland CGL Monitoring - Flexible monitoring of your application
  • atexit - Simple atexit library
  • bíogo - Basic bioinformatics functions for the Go language.
  • cpu - A Go package that reports processor topology
  • cron - A library for running jobs (funcs) on a cron-formatted schedule
  • dbus-go - D-Bus Go library
  • desktop - Open file/uri with default application (cross platform)
  • devboard - Kanban board application based on Simple-Khanban
  • 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.
  • faker - Generate fake data, names, text, addresses, etca
  • fsnotify - File system notifications for Go
  • functional - Functional programming library including a lazy list implementation and some of the most usual functions.
  • go-amiando - Wrapper for the Amiando event management API
  • go-bit - An efficient and comprehensive bitset implementation with utility bit functions.
  • go-business-creditcard - Validate/generate credit card checksums/names.
  • gochem - A computational chemistry/biochemistry library.
  • 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-fann - Go bindings for FANN, library for artificial neural networks
  • go-idn - a project to bring IDN support to Go, feature compatible with libidn
  • go-metrics - Go port of Coda Hale's Metrics library
  • go-osx-plist - CoreFoundation Property List support for Go
  • go-papi - Go interface to the PAPI performance API
  • 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
  • go-qrand - Go client for quantum random bit generator service at random.irb.hr
  • go-semvar - Semantic versions (see http:/semver.org)
  • go-taskstats - Go interface for Linux taskstats
  • go-translate - Google Language Translate library
  • go-uuid - Universal Unique IDentifier generator and parser
  • go.dbus - Native Go library for D-Bus
  • go.pcsclite - Go wrapper for pcsc-lite
  • goNI488 - A Go wrapper around National Instruments NI488.2 General Purpose Interface Bus (GPIB) driver.
  • goPromise - Scheme-like delayed evaluation for Go
  • goST - A steam properties (steam table) library written for Go. This was designed as a native go equivalent to XSteam.
  • gocsv - Library for CSV parsing and emitting
  • goga - A genetic algorithm framework
  • gogobject - GObject-introspection based bindings generator
  • golife - Implementation of Game of Life for command line
  • gomagic - Libmagic bindings
  • go-magic - A Go wrapper for libmagic
  • go-magic - Simple interface to libmagic for Go Programming Language
  • gommap - gommap enables Go programs to directly work with memory mapped files and devices in a very efficient way
  • goneuro - Go driver for NeuroSky devices.
  • goplan9 - libraries for interacting with Plan 9
  • goraphing - A tool to generate a simple graph data structures from JSON data files
  • go-ses - Amazon AWS Simple Email Service (SES) API client
  • go-systemd - Utility functions for interacting with the systemd init system
  • twitterfetcher - A tool to make Twitter API requests using the Application-only authentication
  • gouuid - Pure Go UUID v3, 4 and 5 generator compatible with RFC4122
  • 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.
  • koans - programming koans for go
  • lineup - A minimalistic message queue server
  • mimemail - Construct plain text MIME messages for use with net/smtp.
  • mitigation - Package mitigation provides the possibility to prevent damage caused by bugs or exploits.
  • nma.go - A NotifyMyAndroid client for go.
  • passwd - A parser for the /etc/passwd file
  • pool - A generic worker pool
  • primegen.go - Sieve of Atkin prime number generator
  • procfile - A Procfile parser
  • randat - Devel tool for generating random bytestrings and encoding files in code-friendly forms
  • replaykit - A library for replaying time series data.
  • selenium - Selenium client
  • go-selenium - Selenium WebDriver client for Go
  • 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.
  • symutils - Various tools and libraries to handle symbolic links
  • udis86 - Go bindings for libudis86
  • xplor - Files tree browser for p9p acme
  • yubigo - Yubikey OTP validation and auhtentication API client.
  • go-villa - Some miscellaneous wrapper and small algorithms.(wrappers to slices, priority queues, path related apis, a string set type)
  • go.bitcoin - Wrapper for bitcoind daemon API, makes working with bitcoins easy.
  • Breaker - Breaker enables graceful degraded mode operations by means of wrapping unreliable interservice interface points with circuit breaker primitives.
  • Wukong - A highly extensible full-text search engine written in Go.
  • gotenv - Loads environment variables from .env file

Music

  • go-libshout - Go bindings for libshout
  • gompd - A client interface for the MPD (Music Player Daemon)
  • portmidi - Go bindings for libportmidi
  • launchpad - A Go client for Novation Launchpad

Networking

  • Go Ajax - Go Ajax is a JSON-RPC implementation designed to create AJAX powered websites.
  • GoRTP - RTP / RTCP stack implementation for Go
  • QRP - QRP is a simple packet-based RPC protocol designed as a simple alternative to Go's rpc, that can run over UDP
  • Rsync - Rsync algorithm as a Go library
  • Tonika - Secure social networking platform
  • Uniqush - A free and open source software which provides a unified push service for server-side notification to apps on mobile devices.
  • createsend-go - API client for Monitor http://www.campaignmonitor.com (email campaign service)
  • VDED - Vector Delta Engine Daemon - track deltas in ever-increasing values (written in Go)
  • circle - Go interface to the libcircle distributed-queue API
  • dmrgo - Library for with Hadoop Streaming map/reduce
  • doozerconfig - Go package for managing json-encoded configuration in Doozer
  • doozerd - A consistent distributed data store
  • eventsource - Server-sent events for net/http server.
  • gearman-go - A native implementation for Gearman API with Go.
  • glibvnc - Go wrapper using CGO for the libvnc library.
  • gmail - Simple library for sending emails from a Gmail account, for people not interested in dealing with protocol details.
  • go-curl - libcurl bingding that supports go func callbacks
  • go-dbus - A library to connect to the D-bus messaging system
  • go-icap - ICAP (Internet Content Adaptation Protocol) server library
  • go-imap - IMAP client library
  • go-mail - Email utilities including RFC822 messages and Google Mail defaults.
  • nagiosplugin - package for writing Nagios/monitoring plugins
  • go-nntp - An NNTP client and server library for go
  • go-router - implementation of remote channel communication
  • go-rpcgen - ProtoBuf RPC binding generator for net/rpc and AppEngine
  • go-socket.io - A Socket.IO backend implementation written in Go
  • gosocks - A SOCKS (SOCKS4, SOCKS4A and SOCKS5) proxy client library in Go.
  • go9 - an implementation of the 9P distributed file system protocol
  • go9p - 9p protocol implementation in Go
  • goagain - zero-downtime restarts in Go
  • gobeanstalk - Go Beanstalkd client library
  • godwulf - Gopher server written in Go
  • gogammu - Library for sending and receiving SMS
  • gonetbench - Simple TCP benchmarking tool
  • gonetcheck - package for checking general internet access
  • gopacket - Packet encoding/decoding, pcap/pfring/afpacket support, TCP assembly, and more!
  • gopcap - A simple wrapper around libpcap
  • goprotobuf - the Go implementation of Google's 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.
  • goq - A persistent message queue written in Go.
  • gosndfile - Go binding for libsndfile
  • gozmq - Go Bindings for 0mq (zeromq/zmq)
  • handlersocket-go - Go native library to connect to HandlerSocket interface of InnoDB tables
  • imap - Implementation of IMAP4rev1 client, as described in RFC 3501.
  • 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.
  • ipaddr - basic functions for the manipulation of IP address prefixes and subsequent addresses as described in RFC 4632 and RFC 4291.
  • ipaddress - Convenient ip address functions: ip -> int, int -> ip, and IPNet broadcast address
  • iris - Peer-to-peer messaging for back-end decentralization.
  • iris-go - Go binding for the Iris decentralized messaging framework.
  • kafka.go - Producer & Consumer for the Kafka messaging system
  • ldap - Basic LDAP v3 functionality for the GO programming language.
  • NATS - NATS distributed messaging system client for Go
  • netsnail - A low-bandwidth simulator
  • npipe - a pure Go wrapper for Windows named pipes
  • netutils - Simple interface for turning TCP Sockets into channels.
  • opendap - Go wrapper for Openldap
  • protorpc - Google Protocol RPC for Go and C++
  • remotize - A remotize package and command that helps remotizing methods without having to chaneg their signatures for rpc
  • replican-sync - An rsync algorithm implementation in Go
  • rs232 - Serial interface for those of us who still have modems (or arduinos)
  • rss - RSS parsing library.
  • seamless - Reverse TCP Proxy with HTTP managment API
  • 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 - A Stomp 1.1 Compliant Client
  • stompngo_examples - Examples for stompngo.
  • telnet - A simple interface for interacting with Telnet connection
  • tcp_fallback - A TCP proxy implementing a simple fallback mechanism.
  • tcpmeter - A TCP throughput measuring tool
  • traceroute - A traceoute implementation
  • uritemplates - A level 4 implementation of URI Templates (RFC 6570)
  • sockjs-go - Implements server side counterpart for the SockJS-client browser library.
  • 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.
  • Grumble - Mumble (VoIP) server implementation
  • go-sslterminator - SSL terminator proxy
  • gobench - HTTP/HTTPS load test and benchmark tool
  • Gorilla WebSocket - WebSocket protocol implementation
  • apiproxy - proxy for HTTP/REST APIs with configurable cache timeouts
  • httpfstream - streaming append and follow of HTTP resources (using WebSockets)
  • goproxy - a programmable HTTP proxy.
  • zero-downtime-daemon - Configurable zero downtime daemon (Hot Update) framework for any kind of TCP,HTTP,FCGI services
  • boom - HTTP(s) benchmarking tool, Apache Benchmark replacement

DNS

FTP

  • ftp - Package ftp provides a minimal FTP client as defined in RFC 959
  • ftp4go - An FTP client for Go, started as a port of the standard Python FTP client library
  • goftp - A FTP client library

Instant Messaging

  • GoTY - "Go Troll Yourself", minimalist client IRC library
  • go-irc - Simple IRC client library
  • go-xmpp - XMPP client library
  • gobir - Extensible IRC bot with channel administration, seen support, and go documentation querying
  • goexmpp - XMPP client implementation
  • goirc - event-based stateful IRC client framework
  • gorobot - a modular IRC bot
  • irc.go - Go IRC bot framework
  • ircflu - IRC bot with support for commands, scripting and web-hooks

Operating System Interfaces

Other Random Toys, Experiments and Example Code

P2P and File Sharing

  • Taipei-Torrent - A BitTorrent client
  • ed2kcrawler - eDonkey2000 link crawler
  • gobit - Bittorrent Client in Go
  • gop2p - A simple p2p app to learn Go
  • wgo - A simple BitTorrent client based in part on the Taipei-Torrent and gobit code
  • DHT - Kademlia DHT node used by Taipei-Torrent, compatible with BitTorrent

Programming

Scanner and Parser Generators

  • ebnf2y - Utility for converting EBNF grammars into yacc compatible skeleton .y files.
  • fsm - FSM (NFA, DFA) utilities.
  • golex - Lex/flex like fast (DFA) scanners generator.
  • gocc - Go Compiler Compiler
  • gopp - Go Parser Parser
  • Ragel - State Machine Compiler

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

  • go-deps - Analyzes and recursively installs Go package deps (library functionality similar to go get)
  • go-pkgs - Finds all matching packages in all of the GOPATH trees (library functionality similar to go list all)
  • 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
  • go-diff - A diff command for go languange showing sematic differences of two go source files.
  • go-vcs - clone and check out revs of VCS repositories (git and hg support)
  • go-vcsurl Lenient VCS repository URL parsing library

Strings and Text

  • Black Friday - A markdown processor
  • NTemplate - Nested Templates
  • binarydist - Binary diff and patch
  • columnize - format slice or array into aligned columns
  • csvutil - A heavy duty CSV reading and writing library.
  • dgohash - Collection of string hashing functions, including Murmur3 and others
  • gettext - Feature complete, cgo
  • gettext-go - GNU's gettext support, written in pure Go
  • go-guess - Go wrapper for libguess
  • go-migemo - migemo extension for go (Japanese incremental text search)
  • goini - A go library to parse INI files.
  • golorem - lorem ipsum generator
  • gosphinx - A Go client interface to the Sphinx standalone full-text search engine
  • gpKMP - String-matching in Golang using the Knuth–Morris–Pratt algorithm
  • hangul - Handy tools to manipulate korean character.
  • 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
  • mail.go - Parse email messages
  • peg - Parsing Expression Grammer Parser
  • polyglot - String translation utilities for Go
  • pretty.go - Pretty-printing for go values
  • rubex - A simple regular expression library that supports Ruby's regex syntax. It is faster than Regexp.
  • scanner - A text scanner that parses primitive types, analogous to Java's
  • segment - An implementation of Norvig's recursive word segmentation algorithm
  • strogonoff - Stenography with Go
  • strutil - Package strutil collects utils supplemental to the standard strings package.
  • text - Text paragraph wrapping and formatting
  • go-colortext - Change the color of the text and background in the console, working both in Windows and other systems.
  • goskirt - Upskirt markdown library bindings for Go

Testing

  • downtest - Automatically run tests for all known downstream consumers of a Go package.
  • go2xunit - Convert "go test -v" output to xunit XML output
  • go.assert - helper functions for the built-in 'testing' package (deleted)
  • goautotest - Automatically run unit tests when code changes are made
  • GoConvey - Browser-based reporting, uses go test, supports traditional Go tests, clean DSL
  • gocov - Code coverage testing/analysis tool
  • ginkgo - BDD Testing Framework for Go.
  • Gocheck - Rich test framework with suites, fixtures, assertions, good error reporting, etc
  • 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
  • GSpec - Concurrent, minimal, extensible and reliable framework that makes it easy to organize and verify the mind model of software.
  • Nitro - A quick and simple profiler For Golang
  • testflight - Painless http testing in Go
  • terst - A terse, easy-to-use testing library for Go
  • Testify - A set of packages that provide many tools for testifying that your code will behave as you intend.
  • Tideland CGL Asserts - Make asserts during testing and inside of your applications

Virtual Machines and Languages

  • Gelo - Extensible, embeddable interpreter
  • GoForth - A simple Forth parser
  • GoLightly - A flexible and lightweight virtual machine with runtime-configurable instruction set
  • Golog - Prolog interpreter in Go
  • Minima - A language implemented in Go.
  • RubyGoLightly - An experimental port of TinyRb to Go
  • The erGo™ Compiler - An independent implementation of the Go language.
  • forego - Forth virtual machine
  • go-python - go bindings for CPython C-API
  • GoEmPHP - This package is built for Embedding PHP into Golang.
  • goenv - Create an isolated environment where you install Go packages, binaries, or even C libraries. Very similar to virtualenv for Python.
  • golemon - A port of the Lemon parser-generator
  • goll1e - An LL(1) parser generator for the Go programming language.
  • golua - Go wrapper for LUA's C API
  • golua-fork - A fork of GoLua that works on current releases of Go
  • gotcl - Tcl interpreter in Go
  • meme - Scheme interpreter in Go
  • ngaro - A ngaro virtual machine to run retroForth images
  • otto - A JavaScript parser and interpreter written natively in Go
  • monkey - Embed SpiderMonkey, the Mozilla JavaScript engine, in your Go program.
  • go-v8 - V8 JavaScript engine bindings for Go
  • gomruby - mruby (mini Ruby) bindings for Go

有话要说