multipart-stream-rs
milli
multipart-stream-rs | milli | |
---|---|---|
2 | 8 | |
6 | 462 | |
- | - | |
0.0 | 9.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.
milli
-
Proteomics search engine written in Rust
Is this a posting list? There is a lot of bioinformatics in this post, but if I squint, some of the problems do look like general information retrieval problems. Even the discussion of ordering the arrays by mass sounds like search relevance scores and makes me wonder if it makes sense to try to get something off the shelf like meillisearch/milli or tantavy to support this use case.
-
Zettelkasten Options
I'm currently not using any tool, although I am playing around with binding Milli and the most up-to-date Mentat fork to emacs with emacs-module-rs.
-
Meilisearch, the Rust search engine, just raised $5M
Yeah, we have already done that, the internal engine is called milli and could even be published on crates.io one day! The issue is with the design of the storage system itself, we use LMDB right now but maybe we can find another way to index faster and to be more oriented to distributed systems.
-
MeiliSearch: A Minimalist Full-Text Search Engine
They have another prototype engine with more advanced features and performance too.
https://github.com/meilisearch/milli
-
MeiliSearch v0.21, the long-awaited update of our search engine in Rust is out!
You can look at the milli repository this is the library that we use and work on. MeiliSearch is the HTTP actix-web based server that serves the milli indices.
- MeiliSearch needs your help, an undefined behavior can be the cause of a strange bug
-
What's everyone working on this week (17/2021)?
This library is the main bottleneck of the new MeiliSearch search engine. We will soon release a beta version, keep watching!
-
What’s everyone working on this week (16/2021)?
Working on the new MeiliSearch engine, reworked from scratch! There already is excellent external contributions 🎉
What are some alternatives?
fullstack-rust - Reference implementation of a full-stack Rust application
Typesense - Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences
paperoni - An article extractor in Rust
tantivy - Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust
nym - Manipulate files en masse using patterns.
pgroonga - PGroonga is a PostgreSQL extension to use Groonga as index. PGroonga makes PostgreSQL fast full text search platform for all languages!
roaring-rs - A better compressed bitset in Rust
vespa - AI + Data, online. https://vespa.ai
tusd - Reference server implementation in Go of tus: the open protocol for resumable file uploads
prost - PROST! a Protocol Buffers implementation for the Rust Language
roux-stream - Streaming API for the Rust Reddit Client roux
heed - A fully typed LMDB wrapper with minimum overhead 🐦