Bloom - A free and open source 'Google' (in Rust)

Hi rustaceans!

Today is a great day, the achievement of months of work (and also the start of a great adventure :rocket:).

I’m very excited to announce Bloom: A free and Open source ‘Google’.

Our mission? Empowering the world with open technologies.

Why? How? What? :point_right: https://kerkour.com/blog/bloom-a-free-and-open-source-google

:globe_with_meridians: Website: https://bloom.sh

:iphone:Android App: https://play.google.com/store/apps/details?id=com.bloom42.bloomx

:woman_technologist: Code: https://gitlab.com/bloom42

All the backend and services are written in Rust :crab: and are entirely free and open source on GitLab. No opencore, no bullshit.

I’ve written the backend 3 times:

First time in JavaScript because I know it relatively well and because it’s a relatively functional language. But performance (especially crypto stuff) were too bad. And the lack of typing is just not possible.

Then, ‘catched’ by Google’s marketing I rewritten it in Go. Performance were very good, compile time excellent, and cross compilation perfect. BUT the language itself is too poor. Lack of immutability, lack of generics, mediocre module system, very poor package management at the time … made it doesn’t really scale.

It’s really easy to write HTTP servers in Go, but nothing more, the business layer is completely rotten by the imperative paradigm. The worst thing being pointers.

And finally, after ~2 months of testing and fear of making the bad choice I rewritten it in Rust. Compile time is bad, but everything else is so awesome:

  • An expressive and modern language
  • Strongly typed, It’s a real pleasure to be under so much pressure when your code compiles
  • An open-source language, with open governance that fully embraces our values
  • A language that allows both high-level abstractions and low-level constructs, without performance cost
  • All our services must be able to be self-hosted on a Raspberry pi
  • Compound interests come into play, being expert in a language capable of web services, robotics and blockchains, can multiply the creative capabilities
  • Developers love it <3: https://insights.stackoverflow.com/survey/2019
  • Because it is THE language to rule them all: http://www.paulgraham.com/avg.html

What I find currently lacking:

  • compile time and memory consumption (Too much resources required for CI/CD)
  • Cross compilation (Go is THE reference)
  • Async compiler errors

Yes there were some major bugs (actix multipart). But thanks to the awesome community, they were all quickly fixed!

And yes, the code is not idiomatic (lot of .clone()), but currently the performance are good enough.

A special thanks to this awesome community who helped me countless times and tirelessly create high quality libraries (diesel, actix-web, zip…) :pray:

The project seems awesome and you want to help?

Let’s spread freedom :star_struck:

Sylvain Kerkour, a.k.a z0mbie42

29 Likes

gitlab link broken

1 Like

Fixed, Thank you!

Understatement of the year… (I see 35 pages in search)

Joking aside, congratulations on the persisting through and staying committed.

1 Like

It’s how I learned to code in Rust in 3 Days (instead of weeks).

Joking aside, Thank you, and be sure that I will add this metric to track (and decrease)

That’s a big goal, bonne chance!

https://gitlab.com/bloom42/sane looks similar to https://github.com/Keats/scl/, great minds think alike :sunny:

Looking at the Rust implementation it seems there are files from toml-rs copied in maybe mention it in the README? It’s dual licensed under Apache so it shouldn’t be an issue.

1 Like

Merci :raising_hand_man:

OMG, I swear I never heard of scl before!

it’s awesome, and I’m happy that I’m not the only one who find TOML not good!

BTW, Big thanks for zola, https://kerkour.fr is powered by it :slight_smile:

About toml-rs I sincerly apologize, Yes sane-rs is a fork of it (I mentioned it https://gitlab.com/bloom42/sane-rs/commit/09365406cd6550f6855b177effd9b5816137a189 but removed inadvertently while putting the marketing stuff) and I have alex’s agreement to publish it under only the Apache-2 license.

I’ve fixed it.

An admirable undertaking indeed!

Do you have any rough plans for how you can see yourselves making money as a business that sells something, as opposed to just accepting donations?

If you’ve not yet read Joseph Jacks’ take on “open core”, I hope you’ll read this:

2 Likes

Yes :slight_smile:

It’s detailed in the master plan: https://www.kerkour.fr/blog/bloom-a-free-and-open-source-google/#in-summary

In short: I see open source as the only way to build a sustainable future. I expect that 98% of the user base won’t have the technical knowledge/will/time and will be happy to pay a little bit and we will take care of the hosting (particular and enterprises).

My vision is a federation of Bloom instances (like emails providers).

Thank you for sharing the reads, I’ll study it with care.

1 Like

I didn’t really finish it (yet), too busy with Tera/Zola currently.
It’s on the TODO list once Tera 1.0 is released though :wink:

Regarding marketing, I think saying A free an open-source G-suite is better than Google, most people are going to think of the search engine I think.

2 Likes

Hi,

It’s a recurring feedback, but to understand why I dared the comparison with Google (and not GSuite) I recommend the following video: https://www.youtube.com/watch?v=u4ZoJKF_VuA

GSuite is the what (and it doesn’t matter so much), Google (the company who change the world) is the why. Our just cause (vision) is the reason that Bloom will change the world. Like Google is doing.

1 Like

I’m sorry, I don’t understand what is going on. I clicked on ‘bloom.sh’ link, and I don’t see any search bar. What subset of ‘Google’ is this implementing ?

1 Like

Hi, I darer the Google comparison because for me Google is THE company who change the world. We won’t copy foolishly Google’s apps, but we aim to make at least equivalent impact on the world :grinning:

1 Like

This would be an amazing app to be put on the SAFE network.

I’m not affiliated with it, but I actively follow their progress. It’s a distributed autonomous data storage network being actively developed by MaidSafe written in rust. It’s still in alpha stage but being worked on by a very competent team.

This seems like a great fit and could be a killer app when it goes live. Great work!

Safenetforum.org is the community.

1 Like

Hi @maveric,

Thank you for the hint!

Federation (like Mastodon, Matrix or emails) is planned for Q3/Q4 2019, I will keep an eye on the evolution of this project during this time.