diff options
author | Sam Scott <sam@osohq.com> | 2024-04-07 13:45:39 -0500 |
---|---|---|
committer | Sam Scott <sam@osohq.com> | 2024-04-07 13:45:50 -0500 |
commit | 671266456066aca49e577b871281191d84d01e2e (patch) | |
tree | 374402fdeded35613fceb3cde8a3b0e81e4b7475 | |
parent | a371dacd9ac4953b7a395a61775a575c1910f62b (diff) |
Update README with more info on why (not) to use this
-rw-r--r-- | README.md | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -13,9 +13,11 @@ querystrings. This crate is designed to extend [`serde_urlencoded`][urlencoded] when using nested parameters, similar to those used by [qs][qs] for Node, and commonly used by Ruby on Rails via [Rack][Rack]. -The core of the library was inspired by -[`serde_urlencoded`][urlencoded], which should be preferred -over this crate whenever non-nested query parameters are sufficient. It is built +The core of the library was inspired by [`serde_urlencoded`][urlencoded]. +In order to support abitrarily nested structs encoded in arbitrary orders, we +perform two passes over the input string. This likely adds a non-trivial amount +of memory and compute. Due to this `serde_urlencoded` should be preferred +over this crate whenever non-nested query parameters are sufficient. The crate is built upon [Serde], a high performance generic serialization framework and [rust-url], a URL parser for Rust. |