Go:
Travailler avec TOML
Comment faire :
Pour commencer à travailler avec TOML en Go, vous devez d’abord inclure une bibliothèque capable d’analyser les fichiers TOML puisque la bibliothèque standard de Go ne prend pas nativement en charge TOML. Le package BurntSushi/toml
est un choix populaire pour cela. Tout d’abord, assurez-vous de l’installer :
go get github.com/BurntSushi/toml
Voici un exemple simple de son utilisation. Supposons que vous avez un fichier de configuration nommé config.toml
avec le contenu suivant :
title = "Exemple TOML"
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
Maintenant, vous devez créer une structure Go qui reflète la structure TOML :
package main
import (
"fmt"
"github.com/BurntSushi/toml"
)
type Config struct {
Title string
Database Database `toml:"database"`
}
type Database struct {
Server string
Ports []int
ConnectionMax int `toml:"connection_max"`
Enabled bool
}
func main() {
var config Config
if _, err := toml.DecodeFile("config.toml", &config); err != nil {
fmt.Println(err)
return
}
fmt.Printf("Titre : %s\n", config.Title)
fmt.Printf("Serveur de base de données : %s\n", config.Database.Server)
}
Exemple de sortie :
Titre : Exemple TOML
Serveur de base de données : 192.168.1.1
Plongée profonde
TOML a été créé par Tom Preston-Werner, l’un des cofondateurs de GitHub, pour offrir un format de fichier de configuration simple qui peut être facilement mappé sur une table de hachage et compris d’un seul coup d’œil sans connaissance préalable du format. Il se contraste avec JSON ou YAML, qui, tout en étant également largement utilisés, peuvent être moins conviviaux pour les fichiers de configuration en raison des problèmes d’accolades, de guillemets et d’indentation.
Le package BurntSushi/toml
en Go est une bibliothèque robuste qui permet non seulement le décodage mais aussi l’encodage de fichiers TOML, ce qui en fait un choix polyvalent pour les applications qui doivent lire et écrire des fichiers de configuration dans ce format. Cependant, il convient de noter qu’avec l’avancement des technologies et l’introduction de nouvelles versions de Go, des alternatives telles que pelletier/go-toml
ont émergé, offrant une meilleure performance et des fonctionnalités supplémentaires comme la manipulation d’arbre et le support de requêtes.
Bien que TOML soit un excellent choix pour de nombreuses applications, selon la complexité de la configuration de l’application et les préférences personnelles ou de l’équipe, d’autres formats comme YAML ou JSON pourraient être mieux adaptés, surtout si la configuration nécessite des structures de données plus complexes que la nature verbeuse de TOML pourrait ne pas capturer élégamment. Néanmoins, pour des configurations simples, lisibles et facilement modifiables, TOML, associé au système de typage fort de Go et aux bibliothèques mentionnées ci-dessus, est un choix excellent.