multipart-stream-rs
nym
multipart-stream-rs | nym | |
---|---|---|
2 | 4 | |
6 | 31 | |
- | - | |
0.0 | 0.0 | |
over 1 year ago | about 1 year ago | |
Rust | Rust | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
multipart-stream-rs
-
Introduction to HTTP Multipart
The article talks about multipart/form-data in particular.
Another thing one might run across is multipart/x-mixed-replace. I wrote a crate for that. [1] I didn't see a spec for it, but someone since pointed out to me that it's probably identical to multipart/x-mixed, and now seeing an example in the multer README it clicks that I should have looked at RFC 1341, which says this:
> All subtypes of "multipart" share a common syntax, defined in this section.
...and written a crate general enough for all of them. Maybe I'll update my crate for that sometime. My crate currently assumes there's a Content-Length: for each part, which isn't specified there but makes sense in the context I use it. It wouldn't be hard to also support just the boundary delimiters. And then maybe add a form-data parser on top of that.
btw, the article also talks specifically about proxying the body. I don't get why they're parsing the multipart data at all. I presume they have a reason, but I don't see it explained. I'd expect that a body is a body is a body. You can stream it along, and perhaps also buffer it in case you want to support retrying the backhaul request, probably stopping the buffering at some byte limit at which you give up on the possibility of retries, because keeping arbitrarily large bodies around (in RAM or even spilling to SSD/disk) doesn't sound fun.
[1] https://crates.io/crates/multipart-stream
-
What's everyone working on this week (17/2021)?
I find my implementation in parser.rs kind of gross, but at least it seems to work. If anyone happens to look, I'd appreciate tips for cleaning up this code.
nym
-
Awesome Rewrite It In Rust - A curated list of replacements for existing software written in Rust
nym, a library/CLI for pattern-based file manipulation based loosely on mmv
-
Nym: an mmv-like tool for manipulating files en masse using patterns.
I just published an (unstable) release that provides most of the core features I initially planned. There's still a lot of work to do though and this release is rather incomplete (perhaps the most glaring example is that append is completely inoperable; I don't think I'll support it moving forward).
-
What's everyone working on this week (17/2021)?
I've been working on Nym, a library and command line tool for manipulating files using patterns (similar to mmv). I hope to make a second alpha quality release sometime this week or so with more basic features.
What are some alternatives?
fullstack-rust - Reference implementation of a full-stack Rust application
roaring-rs - A better compressed bitset in Rust
paperoni - An article extractor in Rust
starship - ☄🌌️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!
milli - Search engine library for Meilisearch ⚡️
viu - Terminal image viewer with native support for iTerm and Kitty
volta - Volta: JS Toolchains as Code. ⚡
tusd - Reference server implementation in Go of tus: the open protocol for resumable file uploads
glob - Pure Nim library for matching file paths against Unix style glob patterns.
roux-stream - Streaming API for the Rust Reddit Client roux