Rust: what we build with it and why
We write Rust where a bug costs the most: a hosting platform's core, a messenger's cryptography, a licence server and tools that run for years on other people's machines.
Rust in real screenshots
The projects on this page on the screens from the portfolio and the case studies, each with a short description and the way to the full one.
When Rust, and when something else
A technology has to fit the place the code will run and the team that will take it over. The final choice is made in the quote, together with you.
We pick Rust
A core with money and permissions
The API, store, billing and KSeF in the Flaem core are in Rust. An error or a missing value is part of the type here, so the code has to handle it explicitly before it reaches a server.
One cryptography for every app
Plazer's core with MLS encryption is one Rust library: the browser gets it as WebAssembly, native apps through UniFFI. The protocol has one implementation, not a separate one in every language.
Queries checked at compile time
In the Flaem core, sqlx checks SQL queries against the database schema at build time. A typo in a column name or a wrong type shows up before deployment, not in production.
Code that reads data from strangers
A licence server with Ed25519 tokens and a messenger protocol accept data from anyone on the network. Safe Rust rules out buffer overflows and use-after-free, so that whole class of holes is gone from the code.
Terminal tools
vulp handles many repositories from one terminal, with a ratatui interface. The program is one binary: the user installs nothing else, and the tool starts at once.
Light desktop apps
Gyred in Dioxus and studio in Tauri use the system web view instead of bundling their own. A program open all day leaves memory to other apps, and the heavier work is done by Rust code.
We pick something else
A company site or landing page
We build a company site in TypeScript and React with prerendering: the content is in the first HTML, and any web developer can later fix a text or a section. Rust adds nothing here and narrows the circle of people who can work on the site.
A prototype to test an idea
When the data model changes every day, the Rust compiler makes you fix every dependent place on every change. We write the prototype in TypeScript and move to Rust what proves itself.
A panel with dozens of screens
The Flaem panel is in React and TypeScript on top of a Rust API. The interface changes most often, and the React ecosystem has ready libraries for forms, tables and charts.
An agent on thousands of machines
The Flaem VPS agent and container daemon are in Go. An agent mostly needs networking, timeouts and retries, and simple Go code builds faster and is easier to take over.
A Discord bot or an ops script
The VulCode bot and the diagnostic scripts are in Python. A fix is an edit to a file on the server, with no build and no new release.
An add-on to someone else's system
The host system loads add-ons in its own language: we write a WHMCS module in PHP, a Minecraft plugin in Java and an SCP: Secret Laboratory plugin in C#. Rust has no way in there.
Rust compared, point by point
Each need on a row of its own, with what each of the two columns gives you on it side by side.
A long-running service handling money
Cryptography in the browser
A quick company site
A terminal tool
Heavy computation in a service
People to maintain the code
The first version
Rust in all our code
How many lines we have written in Rust, and what part of everything we have written that is. We count the lines added in the commits of our repositories, language by language.
The libraries these projects stand on
From the dependency files of our repositories. With each, one sentence on what we use it for.
tokio, axum, tonic
The HTTP and gRPC server in the Flaem core.
sqlx
PostgreSQL queries checked at compile time.
mls-rs
The MLS protocol in the Plazer core.
ed25519-dalek, aes-gcm, argon2
Signatures, encryption and passwords.
ratatui, clap, git2
The terminal interface and git operations in vulp.
Tauri, Dioxus
Desktop apps.
Our changes to other people's Rust projects
10 merged changes in 6 repositories. The maintainers of these projects reviewed our code and merged it into theirs.
Week by week
The languages of our changes
- Rust10 8.0%
- Go33 26%
- PHP32 26%
- JavaScript25 20%
- C#11 8.8%
- Perl i JavaScript6 4.8%
- Python6 4.8%
- TypeScript2 1.6%
- SonicA lightweight search backend in Rust, an alternative to Elasticsearch that runs in a few megabytes of RAM.5 merged changes21,357 stars on GitHub
- ZedA fast code editor in Rust from the creators of Atom and Tree-sitter, with live multiplayer editing.1 merged change91,587 stars on GitHub
- PagefindA Rust search engine for static sites that only sends the needed parts of the index to the browser.1 merged change5,511 stars on GitHub
- instaA snapshot testing library for Rust.1 merged change2,974 stars on GitHub
- rssA Rust library for reading and writing RSS feeds.1 merged change504 stars on GitHub
- configparserA simple INI configuration parser in Rust with no dependencies.1 merged change87 stars on GitHub
Other technologies, and where their code runs
Each has its own page with projects on real screens and a comparison with the alternatives.
Questions about Rust
Answers about Rust, our projects and the numbers on this page.
Read next
Write-ups of the projects on this page and an overview of every technology.
A project in Rust?
Describe what you want to build. We reply within an hour and tell you plainly whether this technology is a good choice.





