User Tools

Site Tools


go:packages

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.

Audio

  • Go ALSA pour l'API Linux ALSA
  • Go FLAC codec audio FLAC basé sur libFLAC.
  • Go SoX bindings pour libsox “Sound eXchange, the Swiss Army knife of audio manipulation”

Blog / CMS

Configuration

Loaders

Autres

Déploiement

  • Facebook Go: Grace permet de construire des serveurs interruptibles et redémarrables sans coupure des sockets ouvertes.
  • GoXC build, déploiement

Dépendances

Tous ces outils sont obsolètes depuis l'introduction des modules VGO.

  • Gigo inspirée par Python pip
  • Glock verrouillage de versions sans vendoring
  • GoDep le standard de fait ?
  • Goven 2014-08-05: “Goven is deprecated. Please use godep instead.”
  • Party Réécriture des dépendances lors de l'inclusion locale

Développement

  • Wide IDE Go web
  • Propriétés des binaires
    • Go Version Info inclusion des méta d'exécutable dans les programmes Go pour Windows.
  • Documentation
    • Metadoc un meilleur générateur de documentation que godoc
    • Implements commande listant les interfaces implémentées par un type, ou les types implémentant une interface
    • Go Oracle Analyse statique orientée recherche dans le source
    • Peach générateur de document style MkDocs ou ReadTheDocs

Déboguage

Licensing

  • 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

Géomatique

  • LatLong détecteur de fuseau horaire basé sur les coordonnées Lat/Long

Graphisme / GUI

  • Atlas packer construction de sprites à partir d'images.
  • Cairo
  • Dominant Color extrait la couleur dominantes d'une image, avec l'algorithme K-Means. Dérivé de Chromium
  • Draw2D ajout de forme géométriques sur des images. Génération de fichiers et sortie sur canevas OpenGL
  • Gift traitement d'images
  • Glow liaison OpenGL
  • Gothis bindings pour Tcl/Tk (8.6)
  • GXUI toolkit d'UI natif créé chez Google, expérimental.
  • Impressionist serveur de traitement d'images
  • MP4 codec MP4
  • NetPBM encodeurs/décodeurs pour les formats pixmap PBM, PGM, PPM
  • Picfit serveur de traitement d'images genre ImageMagick
  • QML
  • SVG Go génération de SVG
  • TIFF encodeurs/décodeurs pour TIFF et ses variantes comme BigTIFF, GeoTIFF, RichTIFF
  • QR codes

Impression (PDF)

  • 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)
  • 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

Logging

Rapports d'erreurs

Mobiles

REPL

Recherche

Réseau

  • Clusters, programmation répartie
  • Hadoop
    • Gossamr exécuter des programmes Go sur Hadoop
  • LDAP
  • MAC address
    • OUI accès à la base des préfixes MAC de l'IEEE
  • Mail
      • 2015-02-14: Mateusz Czapliński “It seems the best of Go SMTP libraries I could find when doing some tests recently.”
    • Mail API d'envoi de mails
    • Mail Alternative compatible à net/mail supportant aussi la composition de messages, y compris multipart
  • MQTT
  • Packet sniffing
  • Pub/Sub
  • Queues
    • NSQ queue en Go
      • Go-NSQ le client officiel pour NSQ
      • Beanstalk le client créé par l'auteur de Beanstalkd
        • Cmdstalk broker de queues basé sur le client Beanstalk
      • Go Beanstalk 2015-08: dernier commit en 2014
      • Gostalk 2015-08: dernier commit en 2014
      • Lentil bibliothèque et commande CLI pour Beanstalkd. 2015-08: dernier commit en 2012.
  • RPC
    • Event CLI/REPL pour gRPC
    • 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
  • SOAP + WSDL
    • Go WSDL générateur WSDL → Go + proxy SOAP
  • SSH

Sérialisation

Et un benchmark pour les comparer: https://github.com/alecthomas/go_serialization_benchmarks

Stockage

Documentation / Administration

Pilotes

DB / Cache divers

  • Cachetest test comparatif de packages de cache
  • Dbq query builder (avec un bout d'ORM caché dedans)
  • Gocraft DBR Fluent SQL API (Select().Where()…)
  • Go Memcache client Memcached
  • Goose migration tool
  • Gotable base NoSQL basée sur RocksDB, inspirée par BigTable et Redis
  • Groupcache alternative à Memcached
  • Jet DB API
  • Q SQL sur CSV/TSV
  • SQLx extension du builtin database/sql
  • Squirrel fluent query builder

"ORM"

  • Astaxie
    • 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
  • Go Datamapper pour SQLite3
    • inactif depuis 2009,
    • malgré son nom, c'est un ActiveRecord, pas un DataMapper
  • Go ModelDB pas un ORM complet
    • D'après P. Lafoucrière: closest to ActiveRecord
    • Auto-migrations: suit la modification des struct
  • Hood database-agnostic (Pg/My)
  • QBS Query By Struct, utilisé par ToroPress
  • TableStruct : générateur de code de persistence pour entités plutôt qu'ORM traditionnel
  • upper.io db ex GoSexy DB
  • Xorm support de Gogs

Moteurs de stockage

  • Badger
    • Intro KV-store in Go, same API as RocksDB
  • Bolt pas de Windows
  • Cayley Moteur de graph database natif Go.
  • Ivy flat-file DBMS, stockage JSON.
  • 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:
  • QL
    • QL UI
    • KV stockage K/V sous-jacent
    • is a “large-scale CRDT set implementation for timestamped events”, on top of Redis, by SoundCloud
    • Introduction to Roshi on the SoundCloud blog
  • Tiedot contraintes sur le format (struct↔map↔JSON)

Systèmes de fichiers

  • Implémentations
  • Utilitaires
    • 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

Equivalence / interfaçage

Structures de données

Annexes

  • RP (Redis Pipe) convertit stdin/stdout en tubes réseau sur le pub/sub Redis
  • Tribool logique ternaire et type associé
  • Sorts Tri parallèle et tri par base

Test / qualité

Test

  • Fast Faker 2018-11 Faker
  • Forest test d'API REST
  • Ginkgo (Pivotal Labs)
    • Agouti framework UAT sur Ginkgo
    • Ginkgo framework BDD
    • Gomega bibliothèque de matchers pour Ginkgo
  • Factory Go fixtures de test à la mode Factory boy / Factory girl.
  • Gocheck Fixtures, benchmarks, assertions verbosity. Elabore sur la base de go test
  • Go JUnit report convertit la sortie de go test au format JUnit.
  • Go SQL Mock 2018-11 Mock de base SQL
  • Gocheck Essai de Quickcheck en Go. Comparer avec le package standard testing/quick
  • Go Convey behavioral testing dans le browser, basé sur “testing”
  • Go Fuzz Fuzzing = “randomized testing for Go”
    • 2015-04-28 recommandé par Bradfitz
  • Go Specify RSpec pour Go
  • Go SQL Mock Mocking pour “database/sql”
  • HTTP Mock web services Mocking
  • Mockery Génération de mocks à partir d'interfaces.
  • Rest it REST Integration Tests
  • Peroxide Aide au test de services réseau devant alternativement être disponibles ou non
  • Tavor Fuzzing et delta-deboguage
  • Testify assertions, mocks (compatible Mockery), suites, etc
  • Looper Loop recompiling and running tests
  • Reflex Loop on changes, for tests or other needs like live reload

Notes pour une suite de tests qualité pour tout code Go

Métriques

Monitoring

  • Beego
  • CLI
    • ExpVarMon Surveillance plein écran des métriques applicatives exposées par expvar. Mono- ou multi-application
  • Binaires
    • Bin MAJ automatique des binaires Go sur une machine
  • Divers
    • GoRelic Instrumentation NewRelic pour applications
    • GoSD Métriques dans Stackdriver
    • StatsD client statsd

Tests de performance

  • HTTPstress-Go CLI utility for stress testing of HTTP servers with many concurrent connections.

Text UI

  • Termbox Go implémentation Go native de Termbox
  • TCell inspiré de Termbox, mais supposé bien plus évolué
  • Liner inspiré de Linenoise: imitation Readline

Web

Formulaires

Templates

Frameworks

Comparaisons

Liste

  • Beego inspiration Sinatra, MVS, REST, jolie doc
  • Bones conçu comme un template d'application web à cloner et renommer
  • Echo micro-framework avec routeur le plus rapide (2015)
  • Falcore semble le plus rapide dans de multiples benchmarks
  • Flotilla 1 seule dépendances: les templates Djinn
  • Git Gonic “Martini-like, 40x faster”
  • Gocraft Web uniquement routeur avec middleware
  • Gohan orienté REST / microservices
  • Go Kit a distributed programming toolkit for building microservices in large organizations.
  • Gomelon inspiré par DropWizard. Principale particularité: instrumentation et healthchecks
  • Goji Microframework
    • “the anti-magic framework”
    • 10/6/14: plus d'activité depuis 8 mois
    • très simple et pratique
    • à éviter, même d'après son auteur: pas idiomatique Go
  • Macaron inspiré de Martini, mais avec un routeur BeeGo. Middlewares résultant du développement de Gogs.
  • Negroni 2ème génération après Martini, l'auteur ayant appris de ses erreurs
    • semble le plus complet, bien documenté, à peine moins performant que Falcore.
    • Pas d'ORM inclus.
    • Reddit: pas idiomatique Go, trop de magie (DI, reflection)
  • TigerTonic framework pour APIs, pas pour HTML
  • Volatile “Versatile and minimalist web framework”, créé en 2015-07
  • Xweb inspiré par Java Struts.

Frameworks WebAssembly / full stack

Clients d'API

Divers

  • Aléa
    • Crazy générateur de séquences pseudo-aléatoires
  • Auth, Passwords
    • OTP 2-factor auth et One-Time Passwords
    • Go OTP - HOTP (RFC-4226), TOTP (RFC-6238) and Base32 encoding (RFC-3548) pour la compatibilité Google authenticator
    • Authboss authentifieur générique, comme Passport pour Rails.
    • Garbler générateur de mots de passe prononçables
    • Password vérificateur de mots de passe par dictionnaire
  • Binding liaison de données entre struct et données de net/http
  • Date/Time
    • strftime formatage compatible C strftime au lieu de time.Format()
  • Générateurs
    • Go Bootstrap générateur de squelettes d'applis Web juste sur core, sans ORM, avec PGSQL.
  • Go-IDN Bootstring, IDN, Punycode. 2014-12: presque complet, mais abandonné.
  • Go Mobile Detect détection des browsers de mobiles
  • GO REST Expander filtrage et expansion des résultats d'API REST
  • GraphQL
    • gqlgen 2018-12: la page de projet compare avec gophers, graphql-go et thunder. 52 devs
    • graphql-go 2018-12: 35 devs, “under heavy development”
    • graphql 2018-12: 60 devs
    • thunder 2018-12: 17 devs
    • gq 2018-12: 1 dev, lancé le 03/12/18.
  • WC serveur pour la Closure Library
  • Reverse Proxy
    • Chameleon Reverse proxy, enregistreur
    • Go ICAP bilbiothèque ICAP pour proxies
    • Redwood filter reverse proxy filtre de contenu (ICAP)
    • 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 spécialisés
  • Middlewares
  • Routeur seul
    • Fabio routeur pour microservices d'Ebay
    • Medeina : routing tree based on HttpRouter and inspired by Ruby's Roda and Cuba.
    • Router : aucune dépendance hors core.
  • Sécurité
    • OAuth2 : refonte officielle du package OAuth du runtime Go.
  • Websocket et alii
go/packages.txt · Last modified: 2023/05/17 07:48 by fgm