collection | ||
compare | ||
convert | ||
datetime | ||
format | ||
ini | ||
number | ||
option | ||
random | ||
secret | ||
shell | ||
unidecode | ||
.gitignore | ||
go.mod | ||
go.sum | ||
LICENSE | ||
README.md |
gob
Ensemble de librairies personnalisées en Go
Architecture
collection
Le paquet collection contient quelques fonctions utiles pour la gestion des slices (ajout, insertion, comparaison de slices, différence, intersection, conversion, map/reduce, etc.).
Il implémente également quelques collections non présentes, à l’heure actuelle, dans la librairie standard :
- Les piles : collection.Stack
- Les files : collection.Queue
- Les collections d’éléments uniques : collection.Set
collection/concurrent est une sous-bibliothèque pour alimenter les slices et les maps de manière concurrente et en toute sécurité.
collection/json permet de gérer des objets json (modification, parcours, import, export).
compare
Le paquet compare implémente différentes fonctions de comparaison de chaînes de caractères (insensible à la casse, tri naturel, prise en compte des accents, etc.), et permet d’aggréger plusieurs fonctions de comparaison.
convert
Le paquet convert fournit le nécessaire pour convertir des variables typées en d’autres types de manière transparente. Types actuellement gérés :
- Booléens,
- Caractères (rune, byte),
- Entiers (int, int8, int16, int32, int64, uint, uint8, uint16, uint62, uint64),
- Nombres à virgule flottante (float32, float64),
- Nombres complexes (complex64, complex128),
- Chaînes de caractères,
- Collections (slice, map),
- Structures.
Tous ces types sont convertibles entre eux.
datetime
Le paquet datetime implémente des structures pour gérer des temps :
- datetime.Clock : pour gérer une heure dans la journée,
- datetime.Date : pour gérer une date, sans indication de l’heure,
- datetime.DateTime : pour gérer une date avec indication de l’heure.
- Range : pour gérer une période entre deux temps.
number
Le paquet number implémente une structure pour gérer des opérations sur les nombres réels.
Un nombre peut être présenté sous différentes formes (dans une base donnée) :
- Format entier (ex : 58)
- Format décimal (ex : 36.25)
- Format scientifique (ex : 42.5E-18)
- Fraction (ex : 12/5)
Un nombre peut être également indérminé (NaN, ±∞)
format
Le paquet format fournit le nécessaire pour formater la sortie terminal :
- Alignement des entrées (utile pour afficher un tableau),
- Couleurs et styles (gras, italique, etc.).
Seuls les terminaux supportant les chaînes d’échappement ASCII sont supportés.
ini
Le paquet ini permet de parser et de gérer des fichiers de configuration (générations avec l’extension .ini ou .conf).
option
Le paquet option implémente en Go les types Option et Result existant dans certains langages de programmation (comme Rust).
random
Le paquet random fournit des fonctions pour générer des variables avec des caractères aléatoires.
secret
Le paquet secret permet de générer des hashs ou de chiffrer des chaînes de caractères.
shell
Le paquet shell regroupe des sous-paquets dédiés à faciliter la programmation d’applications en ligne de commandes.
shell/command
shell/command définit des interfaces permettant de parser les arguments d’une commande saisie. Une implémentation fonctionnelle est fournie dans le sous-paquet shell/command/flag.
shell/console
shell/console définit des interfaces dédiés à la programmation de CLI (Command Line Interface). Il fournit également des fonctions pour récupérer directement des entrées saisies dans le terminal dans des variables.
shell/file
shell/file permet de récupérer de façon détaillée les informations d’un fichier ou d’une arborescence de fichiers.
shell/scanner
shell/scanner fournit un outil pour découper une ou plusieurs lignes de caractères en mots selon des critères définis (chaîne d’échappment, guillemets, etc.).