XML to Rust
Generate Rust classes/structs automatically from an XML document.
What is XML to Rust?
This free online tool turns a sample XML document into a ready-to-use struct with serde derive macros for Rust, so you can use this xml to rust struct generator tool to go straight from raw XML to a typed struct without writing the boilerplate yourself. It is built around Rust's actual idiom — a serde struct — rather than a generic one-size-fits-all class, and pairs naturally with serde with quick-xml for real-world (de)serialization. Use it for convert xml to rust struct or any time you need xml parsing rust struct generator, whether you're scaffolding a new Rust project or mapping an existing API response.
Technical Execution
Paste or upload a sample XML document and the tool walks its structure field by field, inferring a concrete Rust type for each value — mapping basic XML types to `String`, `i64`/`f64`, and `bool` as appropriate. For nested data, it maps nested XML elements to nested serde structs and repeated elements to `Vec<T>`, pairing the struct with `quick-xml`'s serde support so attributes and child elements both deserialize correctly. On the naming side, it converts snake_case JSON keys directly since that already matches Rust's field-naming convention, and adds `#[serde(rename = "originalKey")]` automatically when a key is camelCase or otherwise doesn't match Rust style. For optional data, fields observed as `null`, or absent from some sample objects, are typed as `Option<T>` and annotated so `serde` deserializes missing data as `None` instead of failing.
Zero Data Storage Guarantee
Everything runs client-side in your browser: the sample XML you paste in — which may contain real field names, endpoint shapes, or structure from a private API or project — is parsed and converted entirely on your device and is never uploaded to any server. Nothing you enter is logged, stored, or transmitted anywhere, so you can safely paste a real payload from an internal or unreleased API to generate an accurate serde struct. Closing or refreshing the tab clears everything, since no copy of your data ever left your machine in the first place.
How to Use XML to Rust (Step-by-Step Guide)
- Copy a representative sample of your XML (the more fields and nested objects it includes, the more complete the generated struct will be).
- Paste it into the input panel of the XML to Rust tool, or click "Upload" to load it from a xml file.
- Review the auto-detected root name, and rename it if you want the generated serde struct to use a specific class or type name instead of the default.
- Click "Generate" to produce the Rust struct, which appears instantly in the output panel with syntax highlighting.
- Click "Copy" to copy the generated code to your clipboard, or "Download" to save it as a `.rs` file.
- Paste the result into your Rust project and adjust field names or types if your data has edge cases the sample didn't cover.