//**HOWTO Register** on wiki ? Manually ask for access on http://www.osinet.fr/contact : there are just too many spammers registering to leave registration open freely.// ====== Go packages ====== Entre parenthèses, les scores sur go-search: (*stars/packages dépendants). Tri descendant par nombre de dépendants. * La référence publique : https://code.google.com/p/go-wiki/wiki/Projects * Un petit projet lancé lors du GopherGala: http://libs.club/golang/ * Un autre wiki: https://github.com/avelino/awesome-go ===== Audio ===== * [[https://github.com/cocoonlife/goalsa|Go ALSA]] pour l'API Linux ALSA * [[https://github.com/cocoonlife/goflac|Go FLAC]] codec audio FLAC basé sur libFLAC. * [[https://github.com/krig/go-sox|Go SoX]] bindings pour libsox "Sound eXchange, the Swiss Army knife of audio manipulation" ===== Blog / CMS ===== * Blog à génération statique à la Jekyll: * [[https://github.com/spf13/hugo|Hugo]] * Blog classique * [[https://github.com/9uuso/vertigo|Vertigo]] * CMS * [[https://github.com/zionist/charitablefond|Charitablefond]] 2015-04: pas de commits depuis 2013 * [[http://fragmenta.eu/|Fragmenta.eu]] 2016-02 Petit, mais européen * [[https://github.com/insionng/toropress|Toropress]] doc essentiellement en chinois ===== Configuration ===== ==== Loaders ==== * INI * https://github.com/robfig/config (8/6/14: 108/178) * https://code.google.com/p/goconf/ (8/6/14: 3/40 dépendants) * https://github.com/Unknwon/goconfig (8/6/14: 63/32) * https://github.com/vaughan0/go-ini (8/6/14: 7/21) * https://github.com/dlintw/goconf (8/6/14: 10/8) * https://github.com/Terry-Mao/goconf (8/6/13: 7/4) - INI sans "=" ! * https://github.com/miguel-branco/goconfig (8/6/14: 64/3) * https://github.com/gosimple/conf (8/6/14: 0/3) * https://github.com/vharitonsky/iniflags * https://github.com/itkinside/itkconfig (8/6/14: 21/2) * https://code.google.com/p/gcfg/ (8/6/14: 0/0) * https://github.com/FogCreek/mini (23/2/15) * JSON * https://github.com/stathat/jconfig (8/6/14: 41/10) * https://github.com/bashtian/jsonutils génération de struct Go à partir de JSON existants pour faciliter leur utilisation * [[https://github.com/pquerna/ffjson|FFJSON]]: "faster JSON serialization for Go" * TOML * https://github.com/BurntSushi/toml (8/6/14: 198/145) * Permet d'avoir des décodages personnalisés * https://github.com/stvp/go-toml-config (8/6/14 48/21) * Multiformats * https://github.com/jfbus/autoconfig (4/12/15) * INI, YAML * Fusionne automatiquement les configurations de multiples packages * https://github.com/spf13/viper (8/6/14: 76/6) * JSON, TOML, YAML * Combinaison avec les paramètres de ligne de commande * Conçu pour fonctionner avec [[https://github.com/spf13/cobra|Cobra]] * https://github.com/moraes/config (8/6/14: 8/1) * JSON, YAML * Environnement (à la 12-factor) * [[https://github.com/tomazk/envcfg|Envcfg]] * [[https://github.com/joeshaw/envdecode|Envdecode]] * Extensions Flag * [[https://github.com/spf13/cobra|Cobra]] * Utilisé par Viper et Hugo * [[https://github.com/LDCS/sflag|SFlag]] Cmdline arg parser using struct syntax * [[https://github.com/alecthomas/kingpin|Kingpin]] POSIX-compliant (?) arguments handling ==== Autres ==== * Managers: * https://github.com/kelseyhightower/confd * Finders: * XDG * https://github.com/BurntSushi/xdg (8/6/14: 13/10) ===== Déploiement ===== * [[https://github.com/facebookgo/grace|Facebook Go: Grace]] permet de construire des serveurs interruptibles et redémarrables sans coupure des sockets ouvertes. * [[https://github.com/laher/goxc|GoXC]] build, déploiement ===== Dépendances ===== Tous ces outils sont obsolètes depuis l'introduction des modules VGO. * [[https://github.com/LyricalSecurity/gigo|Gigo]] inspirée par Python pip * [[https://github.com/robfig/glock|Glock]] verrouillage de versions sans vendoring * [[https://github.com/tools/godep|GoDep]] le standard de fait ? * [[http://www.goinggo.net/2013/10/manage-dependencies-with-godep.html|didacticiel]] * [[https://github.com/kr/goven|Goven]] 2014-08-05: "Goven is deprecated. Please use godep instead." * [[https://github.com/mjibson/party|Party]] Réécriture des dépendances lors de l'inclusion locale ===== Développement ===== * [[https://github.com/b3log/wide|Wide]] IDE Go web * Propriétés des binaires * [[https://github.com/josephspurrier/goversioninfo|Go Version Info]] inclusion des méta d'exécutable dans les programmes Go pour Windows. * Documentation * [[https://beta.metadoc.io/|Metadoc]] un meilleur générateur de documentation que godoc * [[https://github.com/dominikh/implements|Implements]] commande listant les interfaces implémentées par un type, ou les types implémentant une interface * [[https://github.com/golang/tools/tree/master/oracle|Go Oracle]] Analyse statique orientée recherche dans le source * [[https://docs.google.com/document/d/1SLk36YRjjMgKqe490mSRzOPYEDe0Y_WQNRv-EiFYUyw/view|Manuel]] * [[https://docs.google.com/document/d/1WmMHBUjQiuy15JfEnT8YBROQmEv-7K6bV-Y_K53oi5Y/view|Design]] * [[https://peachdocs.org/docs|Peach]] générateur de document style MkDocs ou ReadTheDocs ==== Déboguage ==== * [[https://github.com/klauspost/cpuid|Cpuid]] * [[https://github.com/davecgh/go-spew|Go Spew]] Dump profond /lisible/, à la ''var_dump()'' * [[https://godoc.org/gopkg.in/stack.v0|Stack]] Dump de pile d'appels Go * [[https://github.com/maruel/panicparse/blob/master/README.md|Panicparse]] affichage amélioré des dumps de panic(). * [[http://godoc.org/code.google.com/p/rog-go/cmd/stackgraph|Stackgraph]] affichage GraphViz des dumps de panic * Débogueurs * [[https://github.com/derekparker/dbg|dbg]] prédécesseur de Delve, qui le remplace. * [[https://github.com/derekparker/delve|delve]] Debugger. Mi 2015, c'est le projet plus actif. * [[https://www.youtube.com/watch?v=InG72scKPd4|Vidéo Delve à Gophercon 2015]] * [[https://github.com/dericofilho/FireGo|FireGo]] Implémentation Go du protocole FirePHP pour le déboguage web * [[https://github.com/mailgun/godebug|Go Debug]] débogueur de Mailgun fonctionnant en réécrivant les sources * Garbage collector * [[https://github.com/mkevac/debugcharts/|Debug Charts]] Tracé de la mémoire avec Highcharts * [[https://github.com/davecheney/gcvis|Gcvis]] Visualisation du Garbage Collector * http://dave.cheney.net/2014/07/11/visualising-the-go-garbage-collector ==== Licensing ==== * [[https://github.com/c4milo/licentia|Licentia]] recherche et MAJ des licences et années de copyright dans une arborescence de sources * Non-Go mais utilisables dans un projet Go: Ninka, Fossology ===== Filtres de contenu ===== * Anti-XSS * [[https://github.com/microcosm-cc/bluemonday|Blue Monday]] * [[https://github.com/kennygrant/sanitize|Sanitize]] permet de stripper au lieu d'échapper. * Markdown * [[https://github.com/russross/blackfriday|Black Friday]] markdown * [[http://godoc.org/github.com/shurcooL/go/github_flavored_markdown|Github-Flavored Markdown]] * [[https://github.com/sourcegraph/syntaxhighlight|Syntax Highlight]] coloriseur pour C, Go, Java, JavaScript, Python, Ruby. * [[https://github.com/asaskevich/govalidator|GoValidator]] validation de chaînes: cartes de crédit, CamelCase, etc * [[https://github.com/kat-co/vala|Vala]] validation de paramètres * [[http://writingkat.blogspot.fr/2014/07/an-argument-for-parameter-validation-im.html|Article d'introduction à Vala]] ===== Géomatique ===== * [[https://github.com/bradfitz/latlong|LatLong]] détecteur de fuseau horaire basé sur les coordonnées Lat/Long ===== Graphisme / GUI ===== * [[https://github.com/zan-xhipe/atlas-packer|Atlas packer]] construction de sprites à partir d'images. * Cairo * [[https://github.com/martine/gocairo/|GoCairo]] * autogénéré depuis C au lieu d'être fait à la main * (c) Google, non officiel * [[https://github.com/conformal/gotk3/tree/master/cairo|Cairo]], dans Gotk3 pour GTK3 * [[https://github.com/ungerik/go-cairo|Go Cairo (Ungerik)]] abandonné depuis 2013 * [[https://github.com/Joker/go-cairo|Go Cairo (Joker)]] abandonné depuis 2012 * [[http://github.com/cenkalti/dominantcolor|Dominant Color]] extrait la couleur dominantes d'une image, avec l'algorithme K-Means. Dérivé de Chromium * [[https://code.google.com/p/draw2d|Draw2D]] ajout de forme géométriques sur des images. Génération de fichiers et sortie sur canevas OpenGL * [[https://github.com/disintegration/gift|Gift]] traitement d'images * [[https://github.com/errcw/glow/|Glow]] liaison OpenGL * [[https://github.com/nsf/gothic|Gothis]] bindings pour Tcl/Tk (8.6) * [[https://github.com/google/gxui|GXUI]] toolkit d'UI natif créé chez Google, expérimental. * [[https://github.com/jfbus/impressionist|Impressionist]] serveur de traitement d'images * [[https://github.com/jfbus/mp4|MP4]] codec MP4 * [[https://github.com/spakin/netpbm|NetPBM]] encodeurs/décodeurs pour les formats pixmap PBM, PGM, PPM * [[https://github.com/thoas/picfit|Picfit]] serveur de traitement d'images genre ImageMagick * [[https://medium.com/@thoas/introduction-to-picfit-an-image-resizing-server-written-in-go-c8320c017d41|Article d'introduction]] * [[http://blog.labix.org/2014/08/13/announcing-qml-v1-for-go|QML]] * [[https://github.com/go-qml/qml|Dépôt Github]] * [[https://github.com/ajstarks/svgo|SVG Go]] génération de SVG * [[https://github.com/chai2010/tiff|TIFF]] encodeurs/décodeurs pour TIFF et ses variantes comme BigTIFF, GeoTIFF, RichTIFF * QR codes * [[https://github.com/chai2010/qrcode|QRCode]] * [[https://github.com/kdar/goquirc|GoQuirc]] ===== Impression (PDF) ===== * [[https://github.com/jung-kurt/gofpdf|GoFPDF]] a PDF document generator with high level support for text, drawing and images. Plus spécialisé sur le haut niveau (justification, hyphénation, ruptures de page) * [[https://bitbucket.org/zombiezen/gopdf|GoPDF]] a Go library for creating PDF files. Plus spécialisé sur les fonctions de bas niveau (transformations, courbes) ===== Internationalisation: i18n - L10n - g11n - L12y - NLS ===== * [[https://github.com/maximilien/i18n4go|i18n4go]] Suite d'internationalisation d'IBM * [[https://developer.ibm.com/open/i18n4go/|Page de présentation du projet]] * [[https://github.com/hwheinzen/stringl10n|StringL10n]] String localization tools for Go * [[http://bitloeffel.de/DOC/golang/stringl10n_en.html|Article d'introduction]] ===== Logging ===== * [[https://github.com/mantzas/adaptlog|Adaptlog]] "Adaptive logging" 2016-02-02 * [[https://github.com/aybabtme/log|Aybabtme log]] wrapper pour Go-kit/log * Andoine Grondin, Gophercon 2016: c'est son choix pour le structured logging * [[https://github.com/astaxie/beego/tree/master/logs|BeeGo logs]] niveaux RFC5424 * [[https://github.com/golang/glog|Glog]] Google Log. * Version Go de [[http://code.google.com/p/google-glog|Google-glog]] * Attention: source publié, mais PR non acceptées * [[https://github.com/visionmedia/go-debug|Go Debug]] "Conditional debug logging for Go libraries". * Expose le log de debug sur une socket UNIX * [[https://github.com/go-kit/kit/tree/master/log|Go kit/log]] * Andoine Grondin, Gophercon 2016: "a bit too bare and opinionated, needs to be wrapped" * [[https://github.com/siddontang/go-log|Go Log]] multi-level + multi-handlers * [[http://godoc.org/github.com/alexcesaro/log|Log]] Logger à la mode [[http://www.php-fig.org/psr/psr-3/|PSR-3]] * [[https://github.com/inconshreveable/log15|Log15]] "an opinionated, simple toolkit for best-practice logging". * Async (buffered) output option. * Andoine Grondin, Gophercon 2016: "too many features" * [[https://github.com/BellerophonMobile/logberry|Logberry]] inspiré par Logrus. * [[http://bellerophonmobile.com/blog/20150619-logberry-semantic-logging/|Article d'intro à Logberry]] * [[https://github.com/FogCreek/logging|Logging]] Tagged logging (comme des tags de cache) * http://blog.fogcreek.com/there-are-gophers-with-gifts-at-fog-creek/ * [[https://github.com/Sirupsen/logrus|Logrus]] "Structured, pluggable logging for Go." * http://sergiotapia.me/simple-go-logging-using-logrus/ Mode d'emploi * Andoine Grondin, Gophercon 2016: "too many features, has printf", "used by Docker and Prometheus" * [[https://github.com/goph/logur|Logur]] 2019-01-13 "opinionated logging library targeted at producing (application) logs" * [[https://grafana.com/loki|Loki]] 2019-02-24 "Logging backend optimized for Prometheus and Kubernetes, to search, visualize and explore your logs natively in Grafana" * [[https://github.com/zenazn/slog|Slog]] "Structured logging for golang" * [[https://github.com/goinggo/tracelog|Tracelog]] 4 niveaux seulement. * [[https://github.com/uber-go/zap|Zap (Uber)]] "Blazing fast, structured, leveled logging in Go" * [[https://github.com/oklog/oklog|OK Log]] Archived. * Interesting design document at https://peter.bourgon.org/ok-log/ * Recommends converting to Loki ===== Rapports d'erreurs ===== * [[https://github.com/juju/errgo|Juju Errgo]] aide à l'amélioration de la qualité des erreurs renvoyées * http://rogpeppe.wordpress.com/2014/04/23/some-suggested-rules-for-generating-good-errors-in-go/ * [[https://github.com/hwheinzen/mist|Misc]] classe d'erreur étendue * [[https://github.com/aybabtme/humanlog|Humanlog]] "Read logs from stdin and prints them back to stdout, but prettier." ===== Mobiles ===== * [[https://github.com/remogatto/mandala|Mandala]] * framework pour applications natives Go sur Android * utilise la toolchain [[https://github.com/eliasnaur/goandroid|GoAndroid]] * [[https://github.com/Shaked/gomobiledetect|Go mobile detect]] ===== REPL ===== * [[https://github.com/vito/go-repl|Go-Repl]] * [[https://github.com/shurcooL/goe|Goe]] commande unique, pas une boucle * [[http://llvm.org/klaus/llgo/|llgo]] Ce compilateur pour LLVM contient un REPL ''llgoi'' * [[http://llvm.org/klaus/llgo/tree/master/cmd/llgoi|Sources]] * [[https://github.com/mattn/yet-another-go-repl|Yet Another Go REPL]] ===== Recherche ===== * [[http://www.blevesearch.com/|Bleve]] * [[https://groups.google.com/forum/#!topic/golang-nuts/Px-j343qlTE|questions face à Lucene]] * Regex (hors Go core) * PCRE * [[https://github.com/glenn-brown/golang-pkg-pcre]] * [[https://github.com/mathpl/golang-pkg-pcre]] fork recommandé par ADG. ===== Réseau ===== * Clusters, programmation répartie * [[https://github.com/kandoo/beehive|Beehive]] * [[https://github.com/gocircuit/circuit|Circuit]] * [[http://play.iris.karalabe.com/talks/binds/go.slide#1|Iris Go driver]] * [[http://owlfish.com/software/ForestBus/|ForestBus]] bus type Apache Kafka basé sur Raft * Hadoop * [[https://github.com/vistarmedia/gossamr|Gossamr]] exécuter des programmes Go sur Hadoop * LDAP * [[https://github.com/mavricknz/ldap|LDAP]] * MAC address * [[https://github.com/klauspost/oui|OUI]] accès à la base des préfixes MAC de l'IEEE * Mail * [[https://github.com/go-gomail/gomail|GoMail]] * 2015-02-14: Mateusz Czapliński "It seems the best of Go SMTP libraries I could find when doing some tests recently." * [[https://github.com/alexcesaro/mail/|Mail]] API d'envoi de mails * [[https://github.com/mohamedattahri/mail|Mail]] Alternative compatible à net/mail supportant aussi la composition de messages, y compris multipart * MQTT * [[https://github.com/surge/mqtt|MQTT]] * Packet sniffing * [[https://github.com/google/gopacket|Gopacket]] * [[https://github.com/google/stenographer|Stenographer]] * Pub/Sub * [[https://github.com/derekcollison/nats-go|Nats for Go]] * Queues * [[http://nsq.io|NSQ]] queue en Go * [[https://github.com/bitly/go-nsq|Go-NSQ]] le client officiel pour NSQ * [[http://kr.github.io/beanstalkd/|Beanstalkd]] * [[https://github.com/kr/beanstalk|Beanstalk]] le client créé par l'auteur de Beanstalkd * [[https://github.com/99designs/cmdstalk|Cmdstalk]] broker de queues basé sur le client Beanstalk * [[https://github.com/iwanbk/gobeanstalk|Go Beanstalk]] 2015-08: dernier commit en 2014 * [[https://github.com/manveru/gostalk|Gostalk]] 2015-08: dernier commit en 2014 * [[https://github.com/nutrun/lentil|Lentil]] bibliothèque et commande CLI pour Beanstalkd. 2015-08: dernier commit en 2012. * RPC * [[https://evans.syfm.me/#/demo|Event]] CLI/REPL pour gRPC * [[https://github.com/valyala/gorpc|GoRPC]] alternative haute performance net/rpc: 90% de bande passante en moins, réduction du nombre de connexions, d'appels système, etc. * RSync/Zsync = copie de fichiers incrémentale * [[https://github.com/Redundancy/go-sync|Go-Sync]] * SOAP + WSDL * [[https://github.com/hooklift/gowsdl|Go WSDL]] générateur WSDL -> Go + proxy SOAP * SSH * [[https://github.com/gyuho/gomand|Gomand]] SSH/SCP command * [[https://github.com/wingedpig/loom|Loom]] habillage de SSH à la mode Python [[http://www.fabfile.org/|Fabric]] * [[https://github.com/sfreiberg/simplessh|SimpleSSH]] wrapper bibliothèques SSH/SFTP * UDT http://udt.sourceforge.net/ * [[https://github.com/calmh/dst | DST ]] un fork simplifié d'udt * [[https://github.com/oxtoacart/go-udt | Go UDT ]] pur Go. 2014-12: "far from finished" * [[https://github.com/h2so5/utp | UTP ]] pur Go * [[https://github.com/jbenet/go-udtwrapper | Go UDT wrapper ]] un wrapper pour udt ===== Sérialisation ===== * AR(1) * [[https://github.com/laher/argo/|Argo]] * BSON * [[https://github.com/youtube/vitess/tree/master/go/bson|Vitess BSON]] utilisé par Youtube Vitess * [[http://labix.org/gobson|GoBSON]] utilisé par le pilote MongoDB MGO * CBOR (RFC 7049) * [[https://github.com/2tvenom/cbor|CBOR (2tvenom)]] * [[https://code.google.com/p/cbor/source/browse/#hg%2Fgo|CBOR (Brian Olson)]] * [[http://godoc.org/github.com/ugorji/go/codec#CborHandle|Codec (Ugorji)]] Also handles binc, json, msgpack, simple formats * JSON * [[https://github.com/benbjohnson/megajson|Megajson]] sérialiseur JSON plus rapide que encoding/json * [[https://github.com/jmoiron/jsonq|Jsonq]] * TAR * [[https://github.com/visionmedia/go-unpack|Go-Unpack]] extraction d'archives TAR. Pas de génération. * [[https://github.com/Unknwon/cae|CAE]] Tar, Zip... API dérivée des [[http://php.net/manual/en/refs.compression.php|extensions PHP de compression]] * XML * [[https://github.com/moovweb/gokogiri|Gokogiri]] wrapper pour libxml2 * [[http://godoc.org/aqwari.net/xml|XML]] Xml Tree @rarr; Go structs, XSD parsing, XSD @rarr; Go code * [[http://godoc.org/aqwari.net/xml|Article introductif]] * Divers * [[https://github.com/gnewton/jargo|JarGo]] extraction des méta d'archives Java JAR. * Multi-formats * [[https://github.com/ugorji/go|Ugorji Go]]: msgpack, binc, cbor, json * [[https://github.com/c4milo/unzipit|Unzipit]] décompression zip, tar, gzip, bzip2 Et un benchmark pour les comparer: https://github.com/alecthomas/go_serialization_benchmarks ===== Stockage ===== ==== Documentation / Administration ==== * [[http://go-database-sql.org/overview.html|database/sql overview]] * [[http://present.go-steel-programmers.org/talk-review-orms/gsp-go-orms.slide|Comparatif des ORMs]] * [[https://github.com/facebookgo/mongoschema|MongoSchema]] générateur de structures Go à partir d'une base MongoDB (Facebook) * [[https://github.com/mijia/modelq|Model/Q]] générateur de structures Go à partir d'une base MySQL * [[https://github.com/go-xorm/dbweb|dbWeb]] genre phpmyadmin, pour MySQL/PostgreSQL/SQLite ==== Pilotes ==== * Cassandra * [[https://github.com/hailocab/gocassa|GoCassa]] * Couchbase * [[https://github.com/couchbaselabs/gocb|GoCB]] le pilote/SDK * [[http://blog.couchbase.com/2015/july/go-sdk-1.0.0-beta|Intro au SDK 1.0.0-beta1]] * CouchDB * [[https://github.com/patrickjuchli/couch|Couch]] "focuses on basic operations, proper conflict management, error handling and replication" 2015-04-27: pas de commit depuis 8 mois * [[https://github.com/lancecarlson/couchgo|Couchgo]] "CouchDB Adapter for Go. Supports BulkSave and emulates couch.js API" 2015-04-27: pas de commit depuis 2 ans * DynamoDB * [[https://github.com/smugmug/godynamo|Go Dynamo]] * [[https://github.com/raff/dynago|Dynago]] with streams support * LevelDB (voir aussi les moteurs pour des clones natifs): * [[http://github.com/jmhodges/levigo|Levigo]] en lien dynamique * MongoDB: * [[http://labix.org/gobson|Gobson]] sérialisation BSON * [[http://labix.org/mgo|MGo]] pilote MongoDB officiel * MySQL: * [[https://github.com/go-sql-driver/mysql|MySQL]] driver pour database/sql * [[https://github.com/vaquita/mysql|MySQL (Vaquita)]] pilote natif Go, sans dépendance sur la lib MySQL système * [[https://github.com/ziutek/mymysql|MyMySQL]] pilote natif Go, sans dépendance sur la lib MySQL système. * [[https://github.com/siddontang/mixer|Mixer]] Proxy MySQL (réf: Atlas, Cobar, Vitess) * [[https://github.com/flike/kingshard|Kingshard]] Proxy sharder MySQL * Oracle * [[https://github.com/go-goracle/goracle|Goracle]] * PostgreSQL * [[https://github.com/mgutz/dat|Data Access Toolkit (DAT)]] * [[https://github.com/jackc/pgx|PGX]] * [[https://github.com/lib/pq|PQ]] * [[https://github.com/jackc/go_db_bench|Benchmark pilotes]] * Redis * [[https://github.com/fzzy/radix|Radix]] minimaliste * [[https://github.com/garyburd/redigo|Redigo]] 2015-07: plus actif que Radix, plus riche * RocksDB * [[https://github.com/alberts/gorocks|GoRocks]] basé sur Levigo. * RRDtool = Round Robin Database pour les données temporelles à la Munin, Ganglia * [[https://github.com/ziutek/rrd|RRD]] * SQLite : en lien dynamique * http://github.com/mattn/go-sqlite3 * http://github.com/mxk/go-sqlite * Test mocks * [[https://github.com/DATA-DOG/go-sqlmock|Go SQL Mock]] mock de pilote SQL pour les tests ==== DB / Cache divers ==== * [[https://github.com/dgryski/trifles/tree/master/cachetest|Cachetest]] test comparatif de packages de cache * [[https://bitbucket.org/ulfurinn/dbq|Dbq]] query builder (avec un bout d'ORM caché dedans) * [[https://github.com/gocraft/dbr|Gocraft DBR]] Fluent SQL API (Select().Where()...) * [[https://github.com/bradfitz/gomemcache|Go Memcache]] client Memcached * [[https://bitbucket.org/liamstask/goose|Goose]] migration tool * [[https://github.com/stevejiang/gotable|Gotable]] base NoSQL basée sur RocksDB, inspirée par BigTable et Redis * [[https://github.com/golang/groupcache|Groupcache]] alternative à Memcached * [[https://github.com/eaigner/jet|Jet]] DB API * [[https://github.com/harelba/q|Q]] SQL sur CSV/TSV * [[https://github.com/jmoiron/sqlx|SQLx]] extension du builtin database/sql * [[https://github.com/lann/squirrel|Squirrel]] fluent query builder * ==== "ORM" ==== * Astaxie * [[https://github.com/astaxie/beedb|BeeDB]] * [[https://github.com/astaxie/beego/tree/master/orm|BeeGo ORM]]. Notes pour 1.3.0: * write-through : pas de séparation init/mapped/stale, pas d'interception de l'accès aux propriétés * Modèle de MAJ: ''obj.Foo = "bar"; obj.Update()'' * Insertions bulk: ''orm.InsertMulti(batchSize, sliceOfObjects)'' * CLI utilitaire, dont génération du schéma * MySQL, PGSQL, Oracle, SQLite3 * Les FK sont gérées dans l'ORM, pas transcrites dans le schéma physique * [[https://github.com/yyyc514/go_datamapper|Go Datamapper]] pour SQLite3 * inactif depuis 2009, * malgré son nom, c'est un ActiveRecord, pas un DataMapper * [[https://github.com/jaekwon/go-modeldb|Go ModelDB]] pas un ORM complet * [[https://github.com/jinzhu/gorm|Gorm]] * D'après P. Lafoucrière: closest to ActiveRecord * Auto-migrations: suit la modification des struct * [[https://github.com/coopernurse/gorp|Gorp]] * [[https://github.com/jmoiron/modl|Modl]] fork de Gorp * [[https://github.com/eaigner/hood|Hood]] database-agnostic (Pg/My) * [[https://github.com/coocood/qbs|QBS]] Query By Struct, utilisé par ToroPress * [[https://github.com/paulsmith/tablestruct|TableStruct]] : générateur de code de persistence pour entités plutôt qu'ORM traditionnel * [[https://upper.io/db|upper.io db]] ex GoSexy DB * [[https://github.com/go-xorm/xorm|Xorm]] support de Gogs ==== Moteurs de stockage ==== * Badger * [[https://blog.dgraph.io/post/badger/|Intro]] KV-store in Go, same API as RocksDB * [[http://github.com/boltdb/bolt|Bolt]] pas de Windows * [[https://github.com/google/cayley|Cayley]] Moteur de graph database natif Go. * [[https://github.com/jameycribbs/ivy|Ivy]] flat-file DBMS, stockage JSON. * [[https://github.com/siddontang/ledisdb|LedisDB]] serveur de structures à la Redis: clef/valeur, list, hash, zset, bit * LevelDB implémentations natives en Go, voire aussi les pilotes pour l'implémentation standard: * [[https://code.google.com/p/leveldb-go/|LevelDB]] pas d'énumération * [[https://github.com/syndtr/goleveldb|GoLevelDB]] * QL * [[https://github.com/cznic/ql|QL]] UI * [[http://github.com/cznic/kv|KV]] stockage K/V sous-jacent * [[https://github.com/soundcloud/roshi|Roshi]] * is a "large-scale CRDT set implementation for timestamped events", on top of Redis, by SoundCloud * [[https://developers.soundcloud.com/blog/roshi-a-crdt-system-for-timestamped-events|Introduction]] to Roshi on the SoundCloud blog * [[http://github.com/HouzuoGuo/tiedot|Tiedot]] contraintes sur le format (struct<->map<->JSON) ==== Systèmes de fichiers ==== * Implémentations * [[https://code.google.com/p/weed-fs/|Weed]] FS réparti, inspiré par Facebook [[https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Beaver.pdf|Haystack]] * Utilitaires * [[https://github.com/go-fsnotify/fsnotify|FS Notify]] notifications de système de fichiers cross-platform (dont mobiles) ===== Scripting ===== ==== Embedding ==== Dans cette section, packages permettant l'inclusion de langages de scripting dans les binaires Go * JavaScript * [[https://github.com/robertkrimen/otto|Otto]] * Lisp / Scheme * [[https://github.com/bobappleyard/golisp|GoLisp]] dernier commit en 2011 * [[https://github.com/westhood/golisp|GoLisp]] dernier commit en 2011 * [[https://github.com/bytbox/kakapo|Kakapo]] dernier commit en 2012 * [[https://github.com/andydude/droscheme|Droscheme]] dernier commit en 2012 * Lua * [[https://github.com/afitz/golua|Go Lua]] * [[https://github.com/akavel/goluago|Go Lua Go]] * [[https://github.com/Shopify/go-lua|Go Lua (Shopify)]] * Ruby * [[https://github.com/feyeleanor/RubyGoLightly|RubyGoLightly]] portage expérimental de TinyRb sur la VM GoLighty * Spécifiques à Go * [[https://code.google.com/p/gelo/|Gelo]] ==== Equivalence / interfaçage ==== * JavaScript * [[https://github.com/gopherjs/gopherjs|GopherJS]] compile Go en JavaScript * [[http://legacytotheedge.blogspot.de/2014/03/gopherjs-go-to-javascript-transpiler.html|Article introductif]] * [[https://github.com/gopherjs/go-angularjs|Go-angularJS]] Wrapper GopherJS pour AngularJS * PHP * [[https://github.com/mikespook/golib/tree/master/funcmap|Golib funcmap]] call_user_func(), $func() * [[https://github.com/wulijun/go-php-serialize|Go PHP Serialize]] serialize()/unserialize() ===== Structures de données ===== * [[http://fr.wikipedia.org/wiki/Arbre_AVL|Arbres AVL]] * [[https://github.com/ancientlore/go-avltree|Go AVL Tree]] * [[http://fr.wikipedia.org/wiki/Arbre_B|Arbres B]] et B+ * [[https://github.com/cznic/b|B]] Arbres B+ * [[https://bitbucket.org/santucco/btree|B-Tree]] Arbres B * [[http://fr.wikipedia.org/wiki/Arbre_bicolore|Arbres bicolores]] * [[http://godoc.org/code.google.com/p/biogo.store/interval|Biogo Interval]] Arbres bicolores gauchers augmentés * [[http://godoc.org/code.google.com/p/biogo.store/llrb|Biogo LLRB]] Arbres bicolores gauchers * [[https://github.com/petar/GoLLRB|GoLLRB]] Arbres bicolores gauchers * [[https://github.com/yasushi-saito/rbtree|RB Tree]] Arbres bicolores, API "à la STL" * [[http://fr.wikipedia.org/wiki/Arbre_kd|Arbres KD]] (k-dimensional) * [[http://godoc.org/code.google.com/p/biogo.store/kdtree|Biogo KD Tree]] * [[http://en.wikipedia.org/wiki/R-tree|Arbres R]] * [[https://github.com/dhconnelly/rtreego|RTreeGo]] * [[http://en.wikipedia.org/wiki/Segment_tree|"Segment tree"]] * [[https://github.com/toberndo/go-stree|Go-Stree]] * [[https://github.com/fatih/structure|Structure]] utilitaires pour les ''struct'' Go, au-dessus de ''reflect''. * UUID * [[https://github.com/rogpeppe/fastuuid|Fast UUID]] * [[https://github.com/nu7hatch/gouuid|Go UUID]] 2015-07: dernier commit en 2013 * [[https://github.com/fgrid/uuid|UUID (fgrid)]] RFC 4122 V1, V3, V4, V5 * [[https://github.com/m4rw3r/uuid|UUID (m4rw3r)]] * [[https://github.com/pborman/uuid|UUID (pborman)]] (précédemment https://code.google.com/p/go-uuid/) * Divers * [[https://github.com/shopspring/decimal|Decimal]] bibliothèque de précision arbitraire en point fixe pour le e-commerce et la comptabilité * [[http://engineering.shopspring.com/2015/03/03/decimal/|Article introductif]] * [[https://github.com/Workiva/go-datastructures|Go Datastructures]] * [[https://github.com/emirpasic/gods|GODS (Go DataStructures)]] : HashSet, TreeSet, LinkedListStack, ArrayStack, HashMap, TreeMap, RedBlackTree, Comparator (function) ==== Annexes ==== * [[https://github.com/whee/rp/|RP]] (Redis Pipe) convertit stdin/stdout en tubes réseau sur le pub/sub Redis * [[https://github.com/saschpe/tribool|Tribool]] logique ternaire et type associé * [[https://github.com/twotwotwo/sorts/|Sorts]] Tri parallèle et tri par base ===== Test / qualité ===== ==== Test ==== * [[https://github.com/bgadrian/fastfaker|Fast Faker]] 2018-11 Faker * [[https://github.com/emicklei/forest|Forest]] test d'API REST * [[http://ernestmicklei.com/2015/07/04/testing-your-rest-api-in-go-with-forest/|Article d'introduction]] * Ginkgo (Pivotal Labs) * [[http://agouti.org/|Agouti]] framework UAT sur Ginkgo * [[http://onsi.github.io/ginkgo/|Ginkgo]] framework BDD * [[http://onsi.github.io/gomega|Gomega]] bibliothèque de matchers pour Ginkgo * [[https://github.com/bluele/factory-go|Factory Go]] fixtures de test à la mode Factory boy / Factory girl. * [[http://labix.org/gocheck|Gocheck]] Fixtures, benchmarks, assertions verbosity. Elabore sur la base de go test * [[https://github.com/jstemmer/go-junit-report|Go JUnit report]] convertit la sortie de ''go test'' au format JUnit. * [[https://github.com/DATA-DOG/go-sqlmock|Go SQL Mock]] 2018-11 Mock de base SQL * [[https://github.com/arschles/gocheck|Gocheck]] Essai de [[http://en.wikipedia.org/wiki/QuickCheck|Quickcheck]] en Go. Comparer avec le package standard testing/quick * [[http://goconvey.co/|Go Convey]] behavioral testing dans le browser, basé sur "testing" * [[https://github.com/dvyukov/go-fuzz|Go Fuzz]] Fuzzing = "randomized testing for Go" * 2015-04-28 recommandé par Bradfitz * [[https://github.com/stesla/gospecify|Go Specify]] RSpec pour Go * [[https://github.com/DATA-DOG/go-sqlmock|Go SQL Mock]] Mocking pour "database/sql" * [[https://github.com/goware/httpmock|HTTP Mock]] web services Mocking * [[https://github.com/vektra/mockery|Mockery]] Génération de mocks à partir d'interfaces. * [[https://github.com/yookoala/restit|Rest it]] REST Integration Tests * [[https://github.com/eapache/peroxide|Peroxide]] Aide au test de services réseau devant alternativement être disponibles ou non * [[https://github.com/zimmski/tavor|Tavor]] Fuzzing et delta-deboguage * [[https://github.com/stretchr/testify|Testify]] assertions, mocks (compatible Mockery), suites, etc * [[https://github.com/nathany/looper/|Looper]] Loop recompiling and running tests * [[https://github.com/cespare/reflex|Reflex]] Loop on changes, for tests or other needs like live reload === Notes pour une suite de tests qualité pour tout code Go === * go vet * go lint * Local: go get github.com/golang/lint/golint * Online: http://go-lint.appspot.com/ * Meta-linter: https://github.com/alecthomas/gometalinter * errcheck (go get github.com/kisielk/errcheck) * couverture de test: * Local: go test -cover * Online: http://gocover.io/ * Badge: http://gocover.io/_badge/ * [[https://github.com/pierrre/gotestcover|Go test cover]] wrapper coverage pour multi-packages ==== Métriques ==== * Complexité cyclomatique * [[https://github.com/thraxil/cyclo|Cyclo]] * [[https://github.com/fzipp/gocyclo|GoCyclo]] * [[https://github.com/freenerd/mccabe-cyclomatic|McCabe Cyclomatic]] déconseillé par son auteur: agrége la complexité au-delà du niveau fonction ==== Monitoring ==== * Beego * [[http://blog.riff.org/2014_07_06_golang_tip_of_the_day_admin_dashboard_and_health_checks_in_beego_applications|Admin dashboard]] * [[https://github.com/yvasiyarov/beego_gorelic|BeeGo NewRelic]] intégration NewRelic * CLI * [[https://github.com/divan/expvarmon|ExpVarMon]] Surveillance plein écran des métriques applicatives exposées par ''expvar''. Mono- ou multi-application * Binaires * [[https://github.com/rjeczalik/bin|Bin]] MAJ automatique des binaires Go sur une machine * Divers * [[https://github.com/yvasiyarov/gorelic|GoRelic]] Instrumentation NewRelic pour applications * [[https://github.com/plutov/gosd|GoSD]] Métriques dans Stackdriver * [[https://github.com/alexcesaro/statsd|StatsD]] client statsd ==== Tests de performance ==== * [[https://github.com/chillum/httpstress-go|HTTPstress-Go]] CLI utility for stress testing of HTTP servers with many concurrent connections. ===== Text UI ===== * [[https://github.com/rthornton128/goncurses|Go NCurses]] * [[https://github.com/nsf/termbox-go|Termbox Go]] implémentation Go native de Termbox * [[https://github.com/gizak/termui|TermUI]] alphagraphiques * [[https://github.com/gdamore/tcell|TCell]] inspiré de Termbox, mais supposé bien plus évolué * [[https://github.com/peterh/liner|Liner]] inspiré de Linenoise: imitation Readline ===== Web ===== ==== Formulaires ==== * [[https://github.com/bluele/gforms|GForms (bluele)]] (2015-07: dernier commit en 09/2014) * [[https://github.com/vmihailenco/gforms|GForms (vmihailenco)]] (2015-07: dernier commit en 07/2013) * [[https://github.com/monsti/form|MonstiForm]] 07/2014: "still under development and unstable" * [[https://github.com/dchest/captcha|Captcha]] Captchas image et audio. * [[https://github.com/thrisp/fork|Fork]] 2015-03: génération de formulaires, début de développement * Protection CSRF (XSRF) * [[https://github.com/josephspurrier/csrfbanana|CSRF Banana]] pour Gorilla/sessions * [[https://bitbucket.org/jatone/gxsrf/overview|GXSRF]] Protection CSRF * [[https://github.com/justinas/nosurf|NoSurf]] Protection CSRF ==== Templates ==== * [[https://github.com/dskinner/damsel|Damsel]] templates de type HAML * [[https://github.com/thrisp/djinn/|Djinn]] nesting, caching and multiple loaders using the Go html/template library * [[https://github.com/yosssi/ace|Ace]] à la [[http://jade-lang.com/|Jade]] / [[http://slim-lang.com/|Slim]] * Remplace [[https://github.com/yosssi/gold|Gold]] qui avait le même objectif * [[https://github.com/linuxerwang/goats-html|Goats HTML]] à la [[http://en.wikipedia.org/wiki/Template_Attribute_Language|TAL]] * [[https://github.com/sipin/gorazor|GoRazor]] * portage du moteur "razor" d'ASP.net. * [[https://github.com/sipin/GoSublime|Support dans SublimeText]] * [[https://github.com/ziutek/kview|KView]] wrapper web pour [[https://github.com/ziutek/kasia.go|Kasia]] * [[https://github.com/jmoiron/mandira|Mandira]] post-Mustache: logique limitée, à la façon de Django Template * [[https://github.com/hoisie/mustache|Mustache]] * [[https://github.com/yohcop/ntemplate.go|NTemplate]] Go templates + nesting * Pongo: moteur similaire à Django Templates. * [[https://github.com/flosch/pongo|Pongo]] l'original * [[https://github.com/flosch/pongo2|Pongo2]] la V2, plus souple, plus proche de D.T. * [[http://www.florian-schlachter.de/post/pongo2/|Pongo2]] intro à Pongo2 * [[https://github.com/owlfish/tal|Tal]] TAL / Tales / METAL (Zope) ==== Frameworks ==== === Comparaisons === * [[https://github.com/golang/go/wiki/Projects#user-content-frameworks-and-toolkits|Liste officielle]] * [[https://github.com/avelino/awesome-go|Dépôt Github consacré à la comparaison des frameworks]] * [[https://quip.com/Ha0bAfeh1ZVY|Benchmarks performance]] === Liste === * [[http://beego.me/|Beego]] inspiration Sinatra, MVS, REST, jolie doc * [[https://github.com/peterskeide/bones|Bones]] conçu comme un template d'application web à cloner et renommer * [[https://github.com/labstack/echo|Echo]] micro-framework avec routeur le plus rapide (2015) * [[http://fitstar.github.io/falcore/|Falcore]] semble le plus rapide dans de multiples benchmarks * [[https://thrisp.github.io/flotilla/|Flotilla]] 1 seule dépendances: les templates Djinn * [[https://github.com/gin-gonic/gin|Git Gonic]] "Martini-like, 40x faster" * [[https://github.com/gocraft/web|Gocraft Web]] uniquement routeur avec middleware * [[http://gohan.cloudwan.io/|Gohan]] orienté REST / microservices * [[https://github.com/go-kit/kit|Go Kit]] a distributed programming toolkit for building microservices in large organizations. * [[https://github.com/goburrow/gomelon|Gomelon]] inspiré par DropWizard. Principale particularité: instrumentation et healthchecks * [[https://goji.io/|Goji]] Microframework * [[https://github.com/rainycape/gondola|Gondola]] * [[http://gondolaweb.com/|Main Gondola site]] "The web framework for writing faster sites, faster" * [[https://github.com/aaronlifton/Gooo/|Gooo]] * "the anti-magic framework" * 10/6/14: plus d'activité depuis 8 mois * [[http://codegangsta.io/blog/2014/05/19/my-thoughts-on-martini/|Martini]] * très simple et pratique * à éviter, même d'après son auteur: pas idiomatique Go * [[https://github.com/unknwon/macaron|Macaron]] inspiré de Martini, mais avec un routeur BeeGo. Middlewares résultant du développement de Gogs. * [[http://negroni.codegangsta.io/|Negroni]] 2ème génération après Martini, l'auteur ayant appris de ses erreurs * [[http://ivpusic.github.io/neo/|Neo]] * [[http://revel.github.io/|Revel]] * semble le plus complet, bien documenté, à peine moins performant que Falcore. * Pas d'ORM inclus. * Reddit: pas idiomatique Go, trop de magie (DI, reflection) * [[https://github.com/seven5/seven5|Seven5]] * [[http://seven5.github.io/|Exec summary]] * [[http://seven5.github.io/art-summ.html|Intro article]] * [[http://seven5.github.io/tutorial.html|Tutorial]] * [[https://github.com/rcrowley/go-tigertonic|TigerTonic]] framework pour APIs, pas pour HTML * [[https://github.com/pilu/traffic|Traffic]] * [[http://volatile.whitedevops.com/|Volatile]] "Versatile and minimalist web framework", créé en 2015-07 * [[https://github.com/go-xweb/xweb/blob/master/README_EN.md|Xweb]] inspiré par Java Struts. === Frameworks WebAssembly / full stack === * https://qlovaseed.com/ * https://github.com/gopherjs/vecty * https://github.com/maxence-charriere/app * https://gascore.github.io/#/ * https://www.vugu.org/ * https://github.com/norunners/vue * https://github.com/mrmiguu/coco ==== Clients d'API ==== * AWS * [[https://github.com/smartystreets/go-aws-auth|Go AWS Auth]] signature de requêtes par rôles IAM * [[https://launchpad.net/goamz|GoAMZ]] l'original, entretenu par Canonical * 2014-07-27: " We're actively maintaining the launchpad project, and planning to move it to github. We're adding signature v4 support currently. I talked to Gustavo Niemeyer, the original author, and he said he's considering rewriting it to be more extensible, to avoid the problem of so many forks that we have now. I don't have a timeline on when that will be done, though." * [[https://github.com/goamz/goamz|GoAMZ]] un fork * [[https://github.com/crowdmob/goamz|GoAMZ]] (Crowdmob) le plus actif * [[https://github.com/twhello/aws-to-go|AWS to Go]] * [[https://github.com/ncw/rclone/tree/stripe-aws-go|Stripe AWS Go]] par Stripe * Banque Centrale Européenne * [[https://github.com/takama/ecbrates|ECB Rates]] taux de change interbancaires * Github * [[https://github.com/google/go-github|GO Github]] par Google * https://willnorris.com/2013/08/testing-in-go-github : Article sur les tests * https://willnorris.com/2014/05/go-rest-apis-and-pointers: Article sur la structure de données * [[https://github.com/rjeczalik/gh|GH]] web hooks Github, en code ou en templates Go * Google * [[https://github.com/google/google-api-go-client|Google API Go client]] * [[https://github.com/GoogleCloudPlatform/gcloud-golang|GCloud Golang]] "Google Cloud for Go" officiel * [[https://github.com/jpillora/go-ogle-analytics|Go-ogle Analytics]] envoi de données à Google Analytics * (Apache) Kafka * [[https://github.com/stealthly/go_kafka_client|Go Kafka Client]] * OpenStreetMap * [[https://github.com/grindhold/gominatim|Gonominatim]] API de géocodage d'OSM * Twilio * [[https://github.com/natebrennand/twiliogo|Twiliogo]] * Twitter * [[https://github.com/ChimeraCoder/anaconda|Anaconda]] * ==== Divers ==== * Aléa * [[https://github.com/zephyrtronium/crazy|Crazy]] générateur de séquences pseudo-aléatoires * Auth, Passwords * [[http://tristanwietsma.github.io/otp/|OTP]] 2-factor auth et One-Time Passwords * [[https://github.com/hgfischer/go-otp|Go OTP]] - HOTP (RFC-4226), TOTP (RFC-6238) and Base32 encoding (RFC-3548) pour la compatibilité Google authenticator * [[https://github.com/go-authboss/authboss|Authboss]] authentifieur générique, comme Passport pour Rails. * [[https://github.com/michaelbironneau/garbler|Garbler]] générateur de mots de passe prononçables * [[https://github.com/klauspost/password|Password]] vérificateur de mots de passe par dictionnaire * [[http://mholt.github.io/binding/|Binding]] liaison de données entre struct et données de net/http * Date/Time * [[https://bitbucket.org/tebeka/strftime|strftime]] formatage compatible C strftime au lieu de time.Format() * Générateurs * [[https://github.com/go-bootstrap/go-bootstrap|Go Bootstrap]] générateur de squelettes d'applis Web juste sur core, sans ORM, avec PGSQL. * [[https://code.google.com/p/go-idn/|Go-IDN]] Bootstring, IDN, Punycode. 2014-12: presque complet, mais abandonné. * [[https://github.com/Shaked/gomobiledetect/|Go Mobile Detect]] détection des browsers de mobiles * [[https://github.com/isa/go-rest-expander|GO REST Expander]] filtrage et expansion des résultats d'API REST * [[https://github.com/dgrijalva/jwt-go|JWT-Go]] [[http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html|JSON Web Tokens]] * GraphQL * [[https://github.com/99designs/gqlgen|gqlgen]] 2018-12: la page de projet compare avec gophers, graphql-go et thunder. 52 devs * [[https://github.com/graph-gophers/graphql-go|graphql-go]] 2018-12: 35 devs, "under heavy development" * [[https://github.com/graphql-go/graphql|graphql]] 2018-12: 60 devs * [[https://github.com/samsarahq/thunder|thunder]] 2018-12: 17 devs * [[https://github.com/housecanary/gq|gq]] 2018-12: 1 dev, lancé le 03/12/18. * [[http://godoc.org/gopkg.in/samegoal/wc.v0|WC]] serveur pour la [[https://developers.google.com/closure/library/|Closure Library]] * Reverse Proxy * [[https://github.com/NickPresta/chameleon|Chameleon]] Reverse proxy, enregistreur * [[https://code.google.com/p/go-icap/|Go ICAP]] bilbiothèque ICAP pour proxies * [[https://code.google.com/p/redwood-filter/|Redwood filter]] reverse proxy filtre de contenu (ICAP) * [[https://github.com/nf/webfront|WebFront]] Reverse proxy et serveur statique, pour éviter d'avoir à déployer (et configurer) Varnish ou Nginx devant ses applications. * Clients HTTP améliorés * [[https://github.com/gocolly/colly|Colly]] framework pour crawlers web * [[http://parnurzeal.github.io/gorequest/|Go Request]] Inspiré de [[http://visionmedia.github.io/superagent/|Node.JS SuperAgent]]. * [[https://github.com/jmcvetta/napping|Naping]] inspiré de [[http://docs.python-requests.org/en/latest/|Python-Requests]] * [[https://github.com/PuerkitoBio/goquery|GoQuery]] jQuery pour Go * Clients spécialisés * [[https://github.com/pythonandchips/wray|Wray]] client pour [[http://faye.jcoglan.com/|Faye]] (protocole [[https://blogs.oracle.com/slc/entry/introduction_to_bayeux_protoco|Bayeux]]) * [[https://github.com/nexneo/easyreq|Easyreq]] générateur de corps de requête HTTP multipart form * Middlewares * [[http://justinas.org/alice-painless-middleware-chaining-for-go/|Alice]] chaînage de middlewares * [[http://adampresley.com/2015/02/08/using-a-middleware-in-your-go-web-applications.html|Exemple Alice]] * [[http://elithrar.github.io/article/httpauth-basic-auth-for-go/|HTTP Auth]] HTTP Basic Auth middleware * [[https://github.com/lox/httpcache|HTTP Cache]] cache de réponses HTTP 1.1 * [[https://github.com/carbocation/interpose|Interpose]] indépendant du framework, interface basée sur Handler uniquement * Routeur seul * [[https://github.com/eBay/fabio|Fabio]] routeur pour microservices d'Ebay * [[https://github.com/julienschmidt/httprouter|HTTP Router]] * [[https://github.com/imdario/medeina|Medeina]] : routing tree based on HttpRouter and inspired by Ruby's Roda and Cuba. * [[https://github.com/takama/router|Router]] : aucune dépendance hors core. * [[https://github.com/daryl/zeus|Zeus]] * Sécurité * [[https://github.com/golang/oauth2|OAuth2]] : refonte officielle du package OAuth du runtime Go. * Websocket et alii * [[https://github.com/googollee/go-engine.io|engine.io for golang]] long poll + websocket * [[https://github.com/googollee/go-socket.io|socket.io for golang]] * [[https://github.com/jcuga/golongpoll|Go Long Poll]] long polling library