- struct
- Mot-clé Rust utilisé pour définir des types de données composites. Cet outil génère précisément des struct, par exemple pub struct User { id: i64, name: String }. Les champs sont publics par défaut (sans visibilité explicite ils sont private, le derive serde nécessite public).
- Serde
- Framework de sérialisation/désérialisation le plus populaire de l'écosystème Rust. Le code généré par cet outil s'associe à Serde via #[derive(Serialize, Deserialize)], permettant l'analyse avec de multiples formats comme serde_json, bincode, toml, postcard.
- derive macro
- Macro procédurale Rust, implémente automatiquement des trait pour un type. Le #[derive(Serialize, Deserialize)] généré par cet outil implémente automatiquement les traits de sérialisation et désérialisation de Serde, pas besoin d'écrire de bloc impl manuellement.
- Vec<T>
- Type tableau dynamique de la bibliothèque standard Rust. Cet outil mappe automatiquement les tableaux JSON en Vec<T>, par exemple un tableau de chaînes devient Vec<String>. Vec possède une mémoire allouée sur le tas, dont le cycle de vie est géré automatiquement par le compilateur Rust.
- Option<T>
- Type valeur optionnelle de la bibliothèque standard Rust, indique qu'une valeur peut ne pas exister. Cet outil mappe le null JSON vers Option<serde_json::Value>, vous pouvez également modifier manuellement en Option<String> ou d'autres types plus précis, consommable via .unwrap() ou le pattern matching.
- Cargo
- Système de build et gestionnaire de paquets officiel de Rust. Lors de l'utilisation du code généré par cet outil, déclarez les dépendances serde et serde_json dans Cargo.toml, et exécutez cargo build / cargo run pour compiler et exécuter.
- serde_json
- Crate de Serde spécialisé dans le traitement JSON. L'usage typique est serde_json::from_str::<User>(&json_string) ou serde_json::from_reader(reader) pour convertir une chaîne/flux d'octets JSON en la struct Rust générée, c'est la dépendance sous-jacente du traitement JSON d'Actix-web / axum.
- Serialize
- Trait de sérialisation de Serde, indique qu'un type peut être encodé en JSON ou autres formats. Cet outil en génère automatiquement l'implémentation via derive, utilisable avec serde_json::to_string(&user) pour reconvertir une valeur Rust en chaîne JSON.
- Deserialize
- Trait de désérialisation de Serde, indique qu'un type peut être décodé depuis JSON ou autres formats. Cet outil en génère automatiquement l'implémentation via derive, utilisé avec serde_json::from_str, c'est le cœur de la désérialisation des corps de requête HTTP, fichiers de configuration, payload de files de messages.
- Propriété (Ownership)
- Concept central de gestion mémoire de Rust. Les types générés par cet outil comme String, Vec<T> possèdent leurs données respectives, dont le cycle de vie est géré automatiquement par le compilateur Rust après désérialisation, pas de libération manuelle nécessaire, pas de GC, pas de surcoût à l'exécution.
- #[serde(rename = "...")]
- Attribut de renommage de champ de Serde. Quand les noms de champs JSON (comme user_name) ne correspondent pas au style de nommage Rust, cette annotation indique à Serde de faire correspondre le nom JSON d'origine lors de la désérialisation. Couramment utilisé pour les projets Rust en camelCase s'interfaçant avec des API backend en snake_case.
- #[serde(default)]
- Attribut de valeur par défaut de champ de Serde. Quand un champ est absent du JSON, Default::default() du type est appelé. Couramment utilisé pour les scénarios de rétrocompatibilité lors de l'ajout de champs dans les itérations de version, évite l'échec de désérialisation des vieux JSON.
- quicktype-core
- Bibliothèque sous-jacente d'inférence de type multilingue et de génération de code utilisée par cet outil, originellement implémentée en TypeScript, compilée en WebAssembly puis exécutée dans le navigateur via Web Worker, prend en charge plus de 20 langages cibles comme Rust / TypeScript / Go / Python.
- Web Worker
- Mécanisme de thread d'arrière-plan fourni par le navigateur, permet à JavaScript d'exécuter des calculs coûteux dans un thread indépendant sans bloquer le thread principal. Cet outil utilise Web Worker pour charger le WASM quicktype-core, évite le gel de la page lors de la conversion de grands JSON.
- WebAssembly (WASM)
- Format d'instructions binaire pouvant être généré par compilation depuis C/C++/Rust etc., exécutable dans le navigateur à une vitesse proche du natif. Le moteur central de cet outil quicktype-core est précisément compilé en WASM puis exécuté dans le navigateur.
- chrono
- Bibliothèque de dates et heures la plus populaire de l'écosystème Rust, fournit des types comme DateTime<Utc>, NaiveDate, avec la feature serde activée elle peut s'associer à Serde pour analyser automatiquement les chaînes de date ISO 8601. Couramment utilisée pour remplacer les champs de temps String générés par défaut par cet outil.
- no_std
- Mode de compilation Rust qui désactive la bibliothèque standard std et n'utilise que la bibliothèque centrale core, adapté aux scénarios à ressources limitées comme l'embarqué, noyaux WebAssembly, systèmes d'exploitation. serde fonctionne également en no_std (activation des features correspondantes).
- tokio
- Runtime asynchrone le plus populaire de l'écosystème Rust, dont dépendent des bibliothèques majeures comme axum, reqwest, tonic. Le code généré par cet outil doit souvent être associé à la macro #[tokio::main] pour démarrer le runtime dans les scénarios asynchrones.