User Tools

Site Tools


go:packages

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
go:packages [2016/02/21 20:39] – [Pilotes] fgmgo:packages [2020/11/23 17:23] – external edit 127.0.0.1
Line 43: Line 43:
     * https://github.com/stathat/jconfig (8/6/14: 41/10)     * 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/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   * TOML
     * https://github.com/BurntSushi/toml (8/6/14: 198/145)     * https://github.com/BurntSushi/toml (8/6/14: 198/145)
Line 64: Line 65:
       * Utilisé par Viper et Hugo       * Utilisé par Viper et Hugo
     * [[https://github.com/LDCS/sflag|SFlag]] Cmdline arg parser using struct syntax     * [[https://github.com/LDCS/sflag|SFlag]] Cmdline arg parser using struct syntax
 +    * [[https://github.com/alecthomas/kingpin|Kingpin]] POSIX-compliant (?) arguments handling
 ==== Autres ==== ==== Autres ====
  
Line 94: Line 96:
     * [[https://github.com/josephspurrier/goversioninfo|Go Version Info]] inclusion des méta d'exécutable dans les programmes Go pour Windows.     * [[https://github.com/josephspurrier/goversioninfo|Go Version Info]] inclusion des méta d'exécutable dans les programmes Go pour Windows.
   * Documentation   * 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/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://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/1SLk36YRjjMgKqe490mSRzOPYEDe0Y_WQNRv-EiFYUyw/view|Manuel]]
       * [[https://docs.google.com/document/d/1WmMHBUjQiuy15JfEnT8YBROQmEv-7K6bV-Y_K53oi5Y/view|Design]]       * [[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 ==== ==== Déboguage ====
  
Line 177: Line 181:
  
   * [[https://github.com/mantzas/adaptlog|Adaptlog]] "Adaptive logging" 2016-02-02   * [[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/astaxie/beego/tree/master/logs|BeeGo logs]] niveaux RFC5424
   * [[https://github.com/golang/glog|Glog]] Google Log.    * [[https://github.com/golang/glog|Glog]] Google Log. 
Line 183: Line 189:
   * [[https://github.com/visionmedia/go-debug|Go Debug]] "Conditional debug logging for Go libraries".   * [[https://github.com/visionmedia/go-debug|Go Debug]] "Conditional debug logging for Go libraries".
     * Expose le log de debug sur une socket UNIX     * 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   * [[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]]   * [[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.+  * [[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.   * [[https://github.com/BellerophonMobile/logberry|Logberry]] inspiré par Logrus.
     * [[http://bellerophonmobile.com/blog/20150619-logberry-semantic-logging/|Article d'intro à Logberry]]     * [[http://bellerophonmobile.com/blog/20150619-logberry-semantic-logging/|Article d'intro à Logberry]]
Line 192: Line 202:
   * [[https://github.com/Sirupsen/logrus|Logrus]] "Structured, pluggable logging for Go."   * [[https://github.com/Sirupsen/logrus|Logrus]] "Structured, pluggable logging for Go."
     * http://sergiotapia.me/simple-go-logging-using-logrus/ Mode d'emploi     * 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/zenazn/slog|Slog]] "Structured logging for golang"
   * [[https://github.com/goinggo/tracelog|Tracelog]] 4 niveaux seulement.    * [[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 ===== ===== Rapports d'erreurs =====
  
Line 199: Line 216:
     * http://rogpeppe.wordpress.com/2014/04/23/some-suggested-rules-for-generating-good-errors-in-go/     * 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/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 ===== ===== Mobiles =====
  
Line 256: Line 274:
       * [[https://github.com/nutrun/lentil|Lentil]] bibliothèque et commande CLI pour Beanstalkd. 2015-08: dernier commit en 2012.       * [[https://github.com/nutrun/lentil|Lentil]] bibliothèque et commande CLI pour Beanstalkd. 2015-08: dernier commit en 2012.
   * RPC   * 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.     * [[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   * RSync/Zsync = copie de fichiers incrémentale
Line 390: Line 409:
 ==== Moteurs de stockage ==== ==== 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   * [[http://github.com/boltdb/bolt|Bolt]] pas de Windows
   * [[https://github.com/google/cayley|Cayley]] Moteur de graph database natif Go.   * [[https://github.com/google/cayley|Cayley]] Moteur de graph database natif Go.
Line 478: Line 499:
 ==== Test ==== ==== Test ====
  
 +  * [[https://github.com/bgadrian/fastfaker|Fast Faker]] 2018-11 Faker
   * [[https://github.com/emicklei/forest|Forest]] test d'API REST   * [[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]]     * [[http://ernestmicklei.com/2015/07/04/testing-your-rest-api-in-go-with-forest/|Article d'introduction]]
Line 487: Line 509:
   * [[http://labix.org/gocheck|Gocheck]] Fixtures, benchmarks, assertions verbosity. Elabore sur la base de go test   * [[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/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   * [[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"   * [[http://goconvey.co/|Go Convey]] behavioral testing dans le browser, basé sur "testing"
Line 502: Line 525:
   * [[https://github.com/cespare/reflex|Reflex]] Loop on changes, for tests or other needs like live reload   * [[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 === === Notes pour une suite de tests qualité pour tout code Go ===
  
Line 527: Line 551:
     * [[http://blog.riff.org/2014_07_06_golang_tip_of_the_day_admin_dashboard_and_health_checks_in_beego_applications|Admin dashboard]]     * [[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     * [[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   * Binaires
     * [[https://github.com/rjeczalik/bin|Bin]] MAJ automatique des binaires Go sur une machine     * [[https://github.com/rjeczalik/bin|Bin]] MAJ automatique des binaires Go sur une machine
   * Divers   * Divers
     * [[https://github.com/yvasiyarov/gorelic|GoRelic]] Instrumentation NewRelic pour applications     * [[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     * [[https://github.com/alexcesaro/statsd|StatsD]] client statsd
 +
 ==== Tests de performance ==== ==== Tests de performance ====
  
Line 542: Line 570:
     * [[https://github.com/gizak/termui|TermUI]] alphagraphiques     * [[https://github.com/gizak/termui|TermUI]] alphagraphiques
   * [[https://github.com/gdamore/tcell|TCell]] inspiré de Termbox, mais supposé bien plus évolué   * [[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  ===== ===== Web  =====
 ==== Formulaires ==== ==== Formulaires ====
Line 616: Line 645:
   * [[http://volatile.whitedevops.com/|Volatile]] "Versatile and minimalist web framework", créé en 2015-07   * [[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.   * [[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 ==== ==== Clients d'API ====
  
Line 665: Line 704:
   * [[https://github.com/isa/go-rest-expander|GO REST Expander]] filtrage et expansion des résultats d'API REST   * [[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]]   * [[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]]   * [[http://godoc.org/gopkg.in/samegoal/wc.v0|WC]] serveur pour la [[https://developers.google.com/closure/library/|Closure Library]]
   * Reverse Proxy   * Reverse Proxy
Line 672: Line 717:
     * [[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.     * [[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   * 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]].     * [[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/jmcvetta/napping|Naping]] inspiré de [[http://docs.python-requests.org/en/latest/|Python-Requests]]
go/packages.txt · Last modified: 2023/05/17 07:48 by fgm