multipart-stream-rs
roaring-rs
multipart-stream-rs | roaring-rs | |
---|---|---|
2 | 12 | |
6 | 682 | |
- | 0.6% | |
0.0 | 7.2 | |
over 1 year ago | 20 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
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.
roaring-rs
-
We’re the Meilisearch team! To celebrate v1.0 of our open-source search engine, Ask us Anything!
There are issues and pull requests but I advise you to look at the milli folder in the Meilisearch repository, it’s where all the logic is done. We extensively use RoaringBitmaps, heed the LMDB wrapper and grenad when indexing.
- Roaring-rs, better-compressed bitsets, is introducing faster multiple-bitmaps operations
-
Roaring-rs, better-compressed bitsets, is seeing the most important performance speed-up to date
On some benchmarks, we are faster but most of the time we aren't. We absolutely need to introduce benchmarks with the croaring-rs library and most of those performances gain could also be achieved with other methods to do multi-ops for example.
-
What’s everyone working on this week (9/2022)?
We tried to release the new version of roaring-rs, better compressed bitset in Rust, but found out that the core library simd module was blocking us. We now have to work on std::simd to release the blocking features.
-
Meilisearch, the Rust search engine, just raised $5M
Yeah, it can be attributed to using the roaring-rs library, but not just that, we have done so much to improve the search performances by reducing the number of set-operations we do.
-
Improving GitHub Code Search
Given the shoutouts to Burntsushi and Lemire this is almost certainly a bitmap trigram index based engine similar to https://github.com/google/zoekt
The index is likely based on Roaring bitmaps, presumably https://github.com/RoaringBitmap/roaring-rs in this case.
Nice architecture, exactly how I would have done it also.
- roaring-rs - What do you think about deprecating the set operation functions (intersect_with...) for the benefit of the std ops traits?
-
What's everyone working on this week (17/2021)?
I have worked on roaring-rs, a very fast library to do set operations like unions and intersections, and improved the four operations by using the standard ops traits.
-
What’s everyone working on this week (13/2021)?
I have implemented a better way of specifying ranges to be inserted or removed from a RoaringBitmap by using the RangeBounds trait. The roaring-rs library exposes fast data-structures to do set operations, like intersections and unions.
What are some alternatives?
fullstack-rust - Reference implementation of a full-stack Rust application
generic-array - Generic array types in Rust
paperoni - An article extractor in Rust
array_tool - Array helpers for Rust's Vector and String types
nym - Manipulate files en masse using patterns.
croaring-rs - Rust FFI wrapper for CRoaring
milli - Search engine library for Meilisearch ⚡️
tusd - Reference server implementation in Go of tus: the open protocol for resumable file uploads
roux-stream - Streaming API for the Rust Reddit Client roux
base_custom - Rust implementation of custom numeric base conversion.