mamot.fr is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mamot.fr est un serveur Mastodon francophone, géré par La Quadrature du Net.

Server stats:

3.5K
active users

Jeremie

Following the introduction, here is the part 1 of my series of articles on how to build a crossplatform search engine from scratch, in .

This section will handle how we'll store the encrypted data on any platform.

Enjoy reading it, feel free to provide some feedback, here or directly on GitHub 😉

jdrouet.github.io/posts/202503

Hello · HelloIn the previous article, I introduced what project we're going to address in the following weeks: how to build a cross-platform search engine with encryption capabilities. Today, we'll have a look at …

🧵 Following part 1, here is the part 2 of my series of articles on how to build a search engine from scratch, in .

📰 This article is about how we go from a document to a set of structured indexes.

💬 Enjoy reading it, feel free to provide some feedback, here or directly on GitHub 😉

🔗 Here is the link: jdrouet.github.io/posts/202503

Hello · HelloIn the previous article, I explained how we'll write on disk and how we'll implement an abstraction so that it works on any device as well as in the browser. Now, it's time to start thinking about wha…

@jdrouet just wanted to say you started a great series. Looking forward to upcoming articles, thank you!

@jdrouet good article, looking forward to more!

I've got a question regarding `Directory::files`: when iterating over the files, you're `await`ing them one at a time – doesn't that kind of defeat the whole purpose of async? Could one instead spawn a task for each file, and then `join` all the handles?
I think an even nicer implementation could be some kind of `directory.files().filter(Path::is_file).collect()`, but that would require `AsyncIterator`, which AFAIK Rust doesn't currently have

@pmmeurcatpics thanks for your feedback!

Spawning a task for each file would require importing a runtime, which I decided not to do. Here, we only use `futures_lite` which doesn't have this `join` macro.

Taking a step back, this function will almost never be used so even if we optimise this, it will not be visible. 😉