multra 1.0.0

An async parser for `multipart/form-data` content-type in Rust.
Documentation
[package]
name = "multra"
version = "1.0.0"
description = "An async parser for `multipart/form-data` content-type in Rust."
homepage = "https://github.com/salvo-rs/multra"
repository = "https://github.com/salvo-rs/multra"
keywords = ["multipart", "multipart-formdata", "multipart-uploads", "async", "formdata"]
categories = ["asynchronous", "web-programming"]
authors = ["Rousan Ali <hello@rousan.io>", "Chris Young <chris@sonc.ai>"]
readme = "README.md"
license = "MIT"
edition = "2024"
rust-version = "1.89"

[package.metadata.docs.rs]
all-features = true

[package.metadata.playground]
features = ["all"]

[features]
default = []
all = ["json"]
json = ["serde", "serde_json"]
tokio-io = ["tokio", "tokio-util"]
log = ["dep:log"]

[dependencies]
bytes = "1.11"
futures-util = { version = "0.3.32", default-features = false }
memchr = "2.8"
http = "1.4"
httparse = "1.10"
mime = "0.3.17"
encoding_rs = "0.8.35"
spin = { version = "0.10", default-features = false, features = ["spin_mutex"] }

log = { version = "0.4.29", optional = true }
serde = { version = "1.0", optional = true }
serde_json = { version = "1.0", optional = true }
tokio = { version = "1.50", features = [],  optional = true }
tokio-util = { version = "0.7.18", features = ["io"],  optional = true }

[dev-dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1.50", features = ["full"] }
hyper = { version = "1.9", features = ["server", "http1"] }
http-body-util = "0.1.3"
hyper-util = { version = "0.1.20", features = ["full"] }

[[example]]
name = "parse_async_read"
path = "examples/parse_async_read.rs"
required-features = ["tokio-io"]