https://github.com/LightQuantumArchive/actix-xml
XML extractor for actix-web
https://github.com/LightQuantumArchive/actix-xml
actix actor extractor parser parsing reader request rust xml
Last synced: about 1 year ago
JSON representation
XML extractor for actix-web
- Host: GitHub
- URL: https://github.com/LightQuantumArchive/actix-xml
- Owner: LightQuantumArchive
- License: mit
- Created: 2021-07-11T15:34:20.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-03-10T16:42:34.000Z (over 1 year ago)
- Last Synced: 2025-03-17T19:22:01.572Z (about 1 year ago)
- Topics: actix, actor, extractor, parser, parsing, reader, request, rust, xml
- Language: Rust
- Homepage:
- Size: 369 KB
- Stars: 1
- Watchers: 3
- Forks: 4
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# actix-xml
[](https://crates.io/crates/actix-xml)
[](https://docs.rs/actix-xml)
XML extractor for actix-web.
This crate provides struct `Xml` that can be used to extract typed information from request's body.
Under the hood, [quick-xml](https://github.com/tafia/quick-xml) is used to parse payloads.
## Example
```rust
use actix_web::{web, App};
use actix_xml::Xml;
use serde::Deserialize;
#[derive(Deserialize)]
struct Info {
username: String,
}
/// deserialize `Info` from request's body
async fn index(info: Xml) -> String {
format!("Welcome {}!", info.username)
}
fn main() {
let app = App::new().service(
web::resource("/index.html").route(
web::post().to(index))
);
}
```
## Features
- `encoding`: support non utf-8 payload
- `compress-brotli`(default): enable actix-web `compress-brotli` support
- `compress-gzip`(default): enable actix-web `compress-gzip` support
- `compress-zstd`(default): enable actix-web `compress-zstd` support
If you've removed one of the `compress-*` feature flag for actix-web, make sure to remove it by
setting `default-features=false`, or it will be re-enabled for actix-web.
## Version Support
- `0.1.x` - supports `actix-web 3.3.x`
- `0.2.0-beta.0` - supports `actix-web 4.0.0.beta.8`
- `0.2.0` - supports `actix-web 4.0.x`
## License
MIT