Today is a great day, the achievement of months of work (and also the start of a great adventure ).
I’m very excited to announce Bloom: A free and Open source ‘Google’.
Our mission? Empowering the world with open technologies.
Why? How? What? https://kerkour.com/blog/bloom-a-free-and-open-source-google
All the backend and services are written in Rust and are entirely free and open source on GitLab. No opencore, no bullshit.
I’ve written the backend 3 times:
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…)
The project seems awesome and you want to help?
- by spreading the word on twitter: https://twitter.com/z0mbie42/status/1136297238387482625
- by spreading the word on hacker new: https://news.ycombinator.com/item?id=20105567
- by spreading the word on mastodon: https://mastodon.social/web/statuses/102219734596471572
- by contributing on GitLab: https://gitlab.com/bloom42
- By becoming a patron: https://www.patreon.com/bloom42
- By becoming a sponsor: https://bloom.sh/become-a-sponsor
Let’s spread freedom
Sylvain Kerkour, a.k.a z0mbie42