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
有话要说