mirror of
https://github.com/avelino/awesome-go.git
synced 2024-11-07 16:33:40 +00:00
Fixing merge conflict
This commit is contained in:
commit
41b7f93d76
42
README.md
42
README.md
@ -75,7 +75,6 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
- [Twitter](#twitter)
|
- [Twitter](#twitter)
|
||||||
- [Websites](#websites)
|
- [Websites](#websites)
|
||||||
- [Tutorials](#tutorials)
|
- [Tutorials](#tutorials)
|
||||||
- [Windows](#windows)
|
|
||||||
|
|
||||||
|
|
||||||
## Audio/Music
|
## Audio/Music
|
||||||
@ -127,7 +126,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
* [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces.
|
* [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces.
|
||||||
* [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text.
|
* [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text.
|
||||||
* [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces.
|
* [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces.
|
||||||
* [termui](https://github.com/gizak/termui) - Go terminal dashboard based on [termbox-go](https://github.com/nsf/termbox-go) and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib).
|
* [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib).
|
||||||
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
@ -138,9 +137,11 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
* [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs.
|
* [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs.
|
||||||
* [envconf](https://github.com/ian-kent/envconf) - Configuration from environment
|
* [envconf](https://github.com/ian-kent/envconf) - Configuration from environment
|
||||||
* [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy
|
* [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy
|
||||||
|
* [ini](https://github.com/go-ini/ini) - Go package for read and write INI files
|
||||||
* [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files
|
* [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files
|
||||||
* [viper](https://github.com/spf13/viper) - Go configuration with fangs
|
* [viper](https://github.com/spf13/viper) - Go configuration with fangs
|
||||||
|
|
||||||
|
|
||||||
## CSS Preprocessors
|
## CSS Preprocessors
|
||||||
|
|
||||||
*Libraries for preprocessing CSS files*
|
*Libraries for preprocessing CSS files*
|
||||||
@ -152,8 +153,8 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
*Generic datastructures and algorithms in Go.*
|
*Generic datastructures and algorithms in Go.*
|
||||||
|
|
||||||
* [bitset](https://github.com/willf/bitset) - Go package implementing bitsets.
|
* [bitset](https://github.com/willf/bitset) - Go package implementing bitsets.
|
||||||
* [bloom](https://github.com/dataence/bloom) - Bloom filters implemented in Go.
|
* [bloom](https://github.com/surge/bloom) - Bloom filters implemented in Go.
|
||||||
* [encoding](https://github.com/dataence/encoding) - Integer Compression Libraries for Go.
|
* [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go.
|
||||||
* [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go.
|
* [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go.
|
||||||
* [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing
|
* [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing
|
||||||
* [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go
|
* [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go
|
||||||
@ -166,7 +167,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
* [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go.
|
* [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go.
|
||||||
* [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts.
|
* [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts.
|
||||||
* [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store.
|
* [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store.
|
||||||
* [forestdb](https://github.com/couchbaselabs/goforestdb) - Go bindings for ForestDB.
|
* [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB.
|
||||||
* [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
|
* [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
|
||||||
* [goleveldb](https://github.com/syndtr/goleveldb) - An implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in the Go.
|
* [goleveldb](https://github.com/syndtr/goleveldb) - An implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in the Go.
|
||||||
* [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
|
* [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
|
||||||
@ -194,9 +195,10 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
|
|
||||||
## Database Drivers
|
## Database Drivers
|
||||||
|
|
||||||
*Libraries for connecting and operating databases. (see [Testing](#testing) for mock drivers)*
|
*Libraries for connecting and operating databases.*
|
||||||
|
|
||||||
* Relational Databases
|
* Relational Databases
|
||||||
|
* [firebirdsql](https://github.com/nakagami/firebirdsql) - Firebird RDBMS SQL driver for Go
|
||||||
* [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that using database/sql.
|
* [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that using database/sql.
|
||||||
* [go-bqstreamer](https://github.com/rounds/go-bqstreamer) - BigQuery fast and concurrent stream insert.
|
* [go-bqstreamer](https://github.com/rounds/go-bqstreamer) - BigQuery fast and concurrent stream insert.
|
||||||
* [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver prototype in go language.
|
* [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver prototype in go language.
|
||||||
@ -209,7 +211,8 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
* NoSQL Databases
|
* NoSQL Databases
|
||||||
* [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language.
|
* [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language.
|
||||||
* [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends.
|
* [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends.
|
||||||
* [go-couchbase](https://github.com/couchbaselabs/go-couchbase) - Couchbase client in Go
|
* [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go
|
||||||
|
* [go-couchdb](https://github.com/fjl/go-couchdb) - Yet another CouchDB HTTP API wrapper for Go
|
||||||
* [gocql](http://gocql.github.io) - A Go language driver for Apache Cassandra.
|
* [gocql](http://gocql.github.io) - A Go language driver for Apache Cassandra.
|
||||||
* [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language.
|
* [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language.
|
||||||
* [gorethink](https://github.com/dancannon/gorethink) - Go language driver for RethinkDB
|
* [gorethink](https://github.com/dancannon/gorethink) - Go language driver for RethinkDB
|
||||||
@ -312,6 +315,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
|
|
||||||
* [go-gtk](http://mattn.github.io/go-gtk/) - Go bindings for GTK
|
* [go-gtk](http://mattn.github.io/go-gtk/) - Go bindings for GTK
|
||||||
* [go-qml](https://github.com/go-qml/qml) - QML support for the Go language
|
* [go-qml](https://github.com/go-qml/qml) - QML support for the Go language
|
||||||
|
* [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go.
|
||||||
* [gotk3](https://github.com/conformal/gotk3) - Go bindings for GTK3.
|
* [gotk3](https://github.com/conformal/gotk3) - Go bindings for GTK3.
|
||||||
* [gxui](https://github.com/google/gxui) - A Go cross platform UI library.
|
* [gxui](https://github.com/google/gxui) - A Go cross platform UI library.
|
||||||
* [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go.
|
* [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go.
|
||||||
@ -338,6 +342,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
* [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API.
|
* [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API.
|
||||||
* [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package.
|
* [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package.
|
||||||
* [img](https://github.com/hawx/img) - A selection of image manipulation tools.
|
* [img](https://github.com/hawx/img) - A selection of image manipulation tools.
|
||||||
|
* [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go
|
||||||
* [resize](https://github.com/nfnt/resize) - Image resizing for the Go with common interpolation methods.
|
* [resize](https://github.com/nfnt/resize) - Image resizing for the Go with common interpolation methods.
|
||||||
* [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD.
|
* [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD.
|
||||||
* [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes
|
* [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes
|
||||||
@ -352,15 +357,12 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
* [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers.
|
* [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers.
|
||||||
* [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go.
|
* [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go.
|
||||||
* [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers.
|
* [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers.
|
||||||
* [gologex](https://github.com/chzyer/gologex) - An golang log lib, supports tracking and level, wrap by standard log lib
|
|
||||||
* [hiprus](https://github.com/nubo/hiprus) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a channel in [Hipchat](https://hipchat.com).
|
|
||||||
* [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas writen in golang.
|
* [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas writen in golang.
|
||||||
* [logrus](https://github.com/sirupsen/logrus) - Structured, pluggable logging for Go.
|
* [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib
|
||||||
* [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/).
|
* [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/).
|
||||||
* [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy.
|
* [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy.
|
||||||
* [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser.
|
* [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser.
|
||||||
* [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting.
|
* [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting.
|
||||||
* [slackrus](https://github.com/johntdyer/slackrus) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a channel in [Slack](https://slack.com).
|
|
||||||
* [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs.
|
* [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs.
|
||||||
* [tail](https://github.com/ActiveState/tail) - A Go package striving to emulate the features of the BSD tail program.
|
* [tail](https://github.com/ActiveState/tail) - A Go package striving to emulate the features of the BSD tail program.
|
||||||
|
|
||||||
@ -454,9 +456,8 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
|
|
||||||
*Libraries for using OpenGL in Go.*
|
*Libraries for using OpenGL in Go.*
|
||||||
|
|
||||||
* [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL. Requires an external dependency GLEW.
|
* [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow).
|
||||||
* [glfw3](https://github.com/go-gl/glfw3) - Go bindings for GLFW 3.
|
* [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3.
|
||||||
* [glow](https://github.com/go-gl/glow) - Go binding generator and bindings for OpenGL.
|
|
||||||
* [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM.
|
* [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM.
|
||||||
|
|
||||||
|
|
||||||
@ -569,7 +570,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
* [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained mock objects
|
* [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained mock objects
|
||||||
* [go-sqlmock](https://github.com/DATA-DOG/go-sqlmock) - Mock SQL driver for testing database interactions
|
* [go-sqlmock](https://github.com/DATA-DOG/go-sqlmock) - Mock SQL driver for testing database interactions
|
||||||
* [gomock](https://code.google.com/p/gomock/) - Mocking framework for the Go programming language.
|
* [gomock](https://code.google.com/p/gomock/) - Mocking framework for the Go programming language.
|
||||||
* [mockhttp.go](https://github.com/tv42/mockhttp.go) - Mock object for Go http.ResponseWriter
|
* [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter
|
||||||
|
|
||||||
* Fuzzing and delta-debugging/reducing/shrinking
|
* Fuzzing and delta-debugging/reducing/shrinking
|
||||||
* [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values
|
* [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values
|
||||||
@ -634,7 +635,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
* [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go.
|
* [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go.
|
||||||
* [delve](https://github.com/derekparker/delve) - Go debugger.
|
* [delve](https://github.com/derekparker/delve) - Go debugger.
|
||||||
* [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang.
|
* [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang.
|
||||||
* [go-debug](https://github.com/visionmedia/go-debug) - Conditional debug logging for Golang libraries & applications
|
* [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications
|
||||||
* [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go.
|
* [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go.
|
||||||
* [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities.
|
* [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities.
|
||||||
* [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package.
|
* [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package.
|
||||||
@ -645,6 +646,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
* [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language.
|
* [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language.
|
||||||
* [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go.
|
* [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go.
|
||||||
* [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go
|
* [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go
|
||||||
|
* [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker.
|
||||||
* [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go
|
* [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go
|
||||||
* [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON.
|
* [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON.
|
||||||
* [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services.
|
* [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services.
|
||||||
@ -680,7 +682,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
|
|
||||||
*Libraries for manipulating video.*
|
*Libraries for manipulating video.*
|
||||||
|
|
||||||
* [aac/h264](https://github.com/go-av/codec) - Golang aac/h264 encoder and decoder.
|
* [aac/h264](https://github.com/nareix/codec) - Golang aac/h264 encoder and decoder.
|
||||||
* [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries.
|
* [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries.
|
||||||
* [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer.
|
* [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer.
|
||||||
|
|
||||||
@ -696,6 +698,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
* [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API
|
* [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API
|
||||||
* [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's
|
* [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's
|
||||||
* [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go
|
* [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go
|
||||||
|
* [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework.
|
||||||
* [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go
|
* [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go
|
||||||
* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go.
|
* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go.
|
||||||
* [Goji](https://github.com/zenazn/goji) - Goji is a minimalistic web framework for Golang that's high in antioxidants.
|
* [Goji](https://github.com/zenazn/goji) - Goji is a minimalistic web framework for Golang that's high in antioxidants.
|
||||||
@ -731,6 +734,7 @@ Join us on IRC at **#awesome-go** on freenode [web access](http://webchat.freeno
|
|||||||
* [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http.
|
* [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http.
|
||||||
* [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang.
|
* [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang.
|
||||||
* [render](https://github.com/unrolled/render) - Go package for easily rendering JSON, XML, and HTML template responses.
|
* [render](https://github.com/unrolled/render) - Go package for easily rendering JSON, XML, and HTML template responses.
|
||||||
|
* [stats](https://github.com/thoas/stats) - A Go middleware that stores various information about your web application.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -814,7 +818,7 @@ Software written in Go.
|
|||||||
* [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator.
|
* [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator.
|
||||||
* [plubi](https://github.com/norwack/plubi) - A Golang Plugin Based IRC Bot.
|
* [plubi](https://github.com/norwack/plubi) - A Golang Plugin Based IRC Bot.
|
||||||
* [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email.
|
* [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email.
|
||||||
* [Seaweed File System](https://github.com/chrislusf/weed-fs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek.
|
* [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek.
|
||||||
* [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control)
|
* [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control)
|
||||||
* [syncthing](http://www.syncthing.net/) - An open, decentralized file synchronization tool and protocol.
|
* [syncthing](http://www.syncthing.net/) - An open, decentralized file synchronization tool and protocol.
|
||||||
* [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging.
|
* [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging.
|
||||||
@ -895,5 +899,3 @@ Where to discover new Go libraries.
|
|||||||
## Windows
|
## Windows
|
||||||
|
|
||||||
* [go-ole](https://github.com/mattn/go-ole) - Win32 OLE implementation for golang
|
* [go-ole](https://github.com/mattn/go-ole) - Win32 OLE implementation for golang
|
||||||
|
|
||||||
|
|
||||||
|
21
repo_test.go
21
repo_test.go
@ -20,6 +20,27 @@ func TestAlpha(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDuplicatedLinks(t *testing.T) {
|
||||||
|
query := startQuery()
|
||||||
|
links := make(map[string]bool, 0)
|
||||||
|
|
||||||
|
query.Find("body a").Each(func(_ int, s *goquery.Selection) {
|
||||||
|
href, ok := s.Attr("href")
|
||||||
|
if !ok {
|
||||||
|
log.Printf("expected '%s' href", s)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if links[href] {
|
||||||
|
log.Printf("duplicated link '%s'", href)
|
||||||
|
t.Fail()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
links[href] = true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func testList(t *testing.T, list *goquery.Selection) {
|
func testList(t *testing.T, list *goquery.Selection) {
|
||||||
list.Find("ul").Each(func(_ int, items *goquery.Selection) {
|
list.Find("ul").Each(func(_ int, items *goquery.Selection) {
|
||||||
testList(t, items)
|
testList(t, items)
|
||||||
|
Loading…
Reference in New Issue
Block a user