RustのHyperで使えるMultipartライブラリ調査(問題点とか)
以下が一番良く出てくると思う。
https://gh-card.dev/repos/abonander/multipart.svg https://github.com/abonander/multipart
使用できるHyperのバージョンが>=0.9, <0.11であること そこで下記のmultipart-asyncについて触れられている
https://gh-card.dev/repos/abonander/multipart-async.svg https://github.com/abonander/multipart-async
hyper = { version = "0.11", optional = true }風になっていて新しいHyperでも使えると思う。 現在のHyperは0.12.xだが、多分そこまで変更しなくても大丈夫な気がする。 multipart-asyncの問題点
最終コミットが「Dec 29, 2017」で止まっている
安定しているというわけではない。
pre-alpha software, mostly untested and still in development. Early feedback is welcome, but use at your own risk.
サーバーサイドの実装は今の所するつもりはないとのこと。サーバーサイドでメインにmultipartしたいのでこまる。
I don't have any plans on implementing the server-side of this any time soon. I ended up implementing the client-side because I couldn't find any good libraries that were compatible with hyper >= 0.11.
formdataについて
hyper = { version = "0.10" }。
現在の結論
結局どれを使えばよいか?
いまの最新のHyperの0.12.xに対応しているライブラリはなさそう なおかつ、これからのHyperの更新に積極的に追従してくれそうな感じが無くて、選んでもそれが足を引っ張ってHyperを更新できない問題を抱えそうなので、自分用に保守していくライブラリを作ったりしない限りMultipartはやめておきたい気分 hr.icon
追記:
以下のmpart-asyncのAPIが素晴らしく、boundaryとbodyさえ渡せばMultipartのパースができて利用できる。 https://gh-card.dev/repos/cetra3/mpart-async.svg https://github.com/cetra3/mpart-async
Hyperのサーバーサイドからどのように使うかは、以下で使っているので参考になるかもしれない。