#url #serde #type #rust-url

url_serde

Serde support for URL types

5 releases

Uses old Rust 2015

0.2.0 Apr 30, 2017
0.1.3 Feb 20, 2017
0.1.2 Feb 19, 2017
0.1.1 Feb 9, 2017
0.1.0 Jan 28, 2017

#385 in #url

Download history 4443/week @ 2023-11-26 3722/week @ 2023-12-03 3489/week @ 2023-12-10 4136/week @ 2023-12-17 1918/week @ 2023-12-24 2880/week @ 2023-12-31 3599/week @ 2024-01-07 4109/week @ 2024-01-14 3996/week @ 2024-01-21 4681/week @ 2024-01-28 4175/week @ 2024-02-04 3212/week @ 2024-02-11 4270/week @ 2024-02-18 4921/week @ 2024-02-25 4844/week @ 2024-03-03 2241/week @ 2024-03-10

16,499 downloads per month
Used in fewer than 48 crates

MIT/Apache

225KB
4K SLoC

Serde support for rust-url types

This crate provides wrappers and convenience functions to make rust-url and serde work hand in hand.

Version 0.2 or newer of this crate offer support for serde 1.0. Version 0.1 of this crate offer support for serde 0.9. Versions of serde older than 0.9 are natively supported by rust-url crate directly.

For more details, see the crate documentation.


lib.rs:

This crate provides wrappers and convenience functions to make rust-url and Serde work hand in hand.

The supported types are:

  • url::Url

How do I use a data type with a Url member with Serde?

Use the serde attributes deserialize_with and serialize_with.

#[derive(serde::Serialize, serde::Deserialize)]
struct MyStruct {
#[serde(with = "url_serde")]
url: Url,
}

How do I encode a Url value with serde_json::to_string?

Use the Ser wrapper.

serde_json::to_string(&Ser::new(&url))

How do I decode a Url value with serde_json::parse?

Use the De wrapper.

serde_json::from_str(r"http:://www.rust-lang.org").map(De::into_inner)

How do I send Url values as part of an IPC channel?

Use the Serde wrapper. It implements Deref and DerefMut for convenience.

ipc::channel::<Serde<Url>>()

Dependencies

~2MB
~67K SLoC