Les variables d’environnement jouent un rôle crucial dans la configuration et la personnalisation du comportement des logiciels modernes, en fournissant un moyen flexible de transmettre des informations aux applications sans coder les valeurs en dur.
Les variables d’environnement sont des paires clé-valeur dynamiques définies dans l’environnement d’un système d’exploitation ou dans un fichier de variables d’environnement pour être accessibles pendant l’exécution. Contrairement aux valeurs codées en dur, les variables d’environnement offrent une plus grande souplesse et une meilleure adaptabilité, car elles peuvent être facilement modifiées.
Il existe de nombreux paquets et modules permettant d’interagir avec les variables d’environnement dans l’écosystème de Rust, notamment le paquetage dotenv, envieet config et d’utiliser les fonctions intégrées de Rust std::env module.
Introduction à la caisse dotenv
Le dotenv crate est un outil précieux pour gérer les variables d’environnement dans votre projet Rust. L’outil dotenv crate fournit une intégration simple et des fonctions faciles à utiliser qui simplifient le processus de chargement et d’accès aux variables d’environnement à partir de fichiers de variables d’environnement.
Les caractéristiques du crate dotenv comprennent le chargement transparent des variables d’environnement, des approches de gestion des erreurs pour les variables manquantes, l’interopérabilité avec le crate std::env et bien d’autres choses encore.
Ajouter le dotenv crate à votre Cargo.toml pour commencer à interagir avec les variables d’environnement en utilisant le paquet.
[dependencies]
dotenv = "0.15.0"
Exécutez cette commande dans le terminal du répertoire de votre projet pour créer un fichier de variables d’environnement et insérer une paire clé-valeur.
echo DATABASE_URL=database.db > .env
Voici comment vous pouvez charger le fichier d’environnement et récupérer la valeur d’une paire dans le fichier (dans ce cas, la valeur de l’élément DATABASE_URL clé :
use std::env;
use dotenv::dotenv;
fn main() {
dotenv().ok(); // Load the .env file
// Read the value from the .env file
let database_url = env::var("DATABASE_URL").expect("You've not set the DATABASE_URL");
// Print the value
println!("Database URL: {}", database_url);
}
Le principal charge la fonction .env avec le fichier ok lit la valeur du fichier avec la fonction env::var et gère les erreurs éventuelles avec la fonction attendre fonction.
Introduction au module std::env
Au lieu d’utiliser des paquets tiers, vous pouvez utiliser le module intégré de Rust std::env pour lire les variables d’environnement de votre machine.
Tout d’abord, vous devez importer le module env dans votre fichier Rust comme suit :
use std::env;
Après avoir importé le module std::env vous pouvez lire et écrire des variables d’environnement.
Voici comment lire la variable PWD (Present Working Directory) avec la variable d’environnement std::env module.
use std::env;
fn main() {
// Retrieve the value of the "PWD" environment variable
let variable = env::var("PWD").expect("Error: Working directory environment variable not found");
// Print the value associated with the "PWD" key
println!("Value associated with the PWD key: {}", variable);
}
Le principal imprime la valeur associée à la fonction PWD après que la variable ait récupéré la valeur avec la touche env::var fonction.
Vous pouvez également utiliser la fonction std::env Le module set_var fonction permettant de définir des variables d’environnement.
use std::env;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Set the environment variable "DATABASE_URL" to "database.db"
env::set_var("DATABASE_URL", "database.db");
// Retrieve the value of the "DATABASE_URL" environment variable
let env_variable = env::var("DATABASE_URL");
// Check if retrieving the environment variable was successful
if env_variable.is_err() {
// If the environment variable was not found, print an error message
println!("Error: DATABASE_URL not found");
} else {
// If the environment variable was found, print its value
println!("DATABASE_URL set to: {}", env_variable.unwrap());
}
Ok(())
}
La fonction principal définit la variable d’environnement avec la fonction set_var qui prend en compte la paire clé-valeur. Après avoir défini la variable d’environnement, la fonction imprime la valeur associée à la clé.
Les variables d’environnement sont polyvalentes
Les variables d’environnement sont un outil précieux pour gérer les données dynamiques ; elles facilitent le développement piloté par les tests puisque vous pouvez facilement modifier les données et exécuter des scénarios de test pour plusieurs scénarios.
En utilisant des variables d’environnement, vous pouvez éviter de coder en dur des informations sensibles telles que les noms d’utilisateur des bases de données, les mots de passe et les URL de connexion directement dans le code source, ce qui renforce la sécurité de votre application tout en facilitant la gestion de la configuration.