Rust development and consulting, for catching memory bugs before they reach production.

A component crashes and nobody can say why, the server bill keeps climbing, and someone on your team keeps saying you should move to Rust. They might be right, and we can check with you; depending on the answer, we'll write the service, migrate your components one at a time, or tell you to keep what you've got.

Why memory bugs are so hard to catch, and what Rust does about it

A running program is constantly borrowing chunks of memory and giving them back, sort of like hotel rooms. Now picture a key card that still works after checkout. The room goes to another guest, and later on your code walks in and starts moving their things around. Nothing happens at the moment of the mistake. The crash comes long afterward, somewhere else, usually under load, and it has a nasty way of vanishing the minute you try to watch it. In languages like C and C++, these errors are a classic source of crashes and security holes.

The Rust compiler (the tool that turns code into a working program) acts like a front desk that tracks every key. For each chunk of memory, it knows who holds it and who's borrowing it, and if the books don't balance, it won't build the program. So most of these mistakes get stopped at the developer's desk, with a message pointing to the line, instead of turning up in production. That's what we love about the language. The rest follows from it: nothing has to pause the program to clean up memory, so response times stay more even, and a Rust service often gets by on little memory and CPU, which can bring your hosting bill down.

All that bookkeeping has a price. Rust takes a while to learn, there are fewer developers on the market, and a first version often takes longer to write. It won't catch logic mistakes either: an invoice with the wrong total compiles just fine. If you're running a low-traffic internal tool, or your team is productive in something that already does the job, we'll tell you to keep it.

Codetics is a French software engineering company, and we came to Rust through C++, including work at KDE. Rust is now our first choice for new backends (the behind-the-scenes part of an application) and for infrastructure. Knowing both languages helps when C++ code has to move over without changing how it behaves, and your outcome comes before our favorite language.

Fig. 07Why Rust for infrastructure
123RSGCC++
  • Memory safety: yes
  • No GC pauses: yes
  • Predictable latency: yes

Rust checks memory safety at compile time and frees memory without a garbage collector, so the latency trace stays flat with no stop-the-world pauses.

Illustrative latency recorder: the traces show a typical shape, not a measurement. Codetics builds infrastructure services in Rust where they must stay safe and steady under load.

From a complete service to a second look at your code

It comes down to what you already have and what your team wants to keep in its own hands.

Services and APIs

An API is how two pieces of software exchange data. We write these services with Axum or Actix, from design through production. Tests, logs and metrics are part of the job from day one, because you can only fix what you can see.

  • New backend services and APIs
  • Background jobs and message queues
  • Connections to your databases and existing software
  • Tests, logs and metrics delivered with the code

Incremental migration

Rewriting everything at once is tempting, and we'll try to talk you out of it: for months you're maintaining two systems and shipping nothing new to your customers. We'd rather replace one C++, Java or Node component at a time, where the gain justifies it, with old and new running side by side long enough to compare them.

  • Picking the components where the gain is real
  • One component at a time, no big-bang cutover
  • Old and new compared on the same traffic
  • A rollback plan for each stage

Infrastructure tooling and performance

The small programs that keep your systems running, and the numbers that show where time and money are going. We measure before we optimize, since the slow part often isn't the one everybody suspects.

  • Command-line tools and agents that run on your servers
  • Before-and-after measurements of response time, memory and CPU
  • Tracking down the actual bottlenecks
  • A written report on what was measured and what changed

Code review, consulting and embedded

Outside eyes for a team already writing Rust, or a reasoned opinion before you start. Rust can also work in embedded software (the code that lives inside a device) if the hardware is a good fit. Checking that comes first.

  • Rust code review, with findings ranked by importance
  • An opinion on whether Rust fits your case
  • Architecture advice for a Rust service
  • Evaluating Rust on an embedded target, when relevant

When the Rust question is worth asking

Situations offered as examples. They don't describe past projects.

  • A service that costs too much to run

    One busy component is eating a lot of servers. Before writing any code, we measure it and estimate what a Rust version could save. Sometimes fixing one slow query is all it takes, and that's fine by us.

  • C++ that crashes out of nowhere

    Crashes nobody can reproduce, security alerts, fixes that only move the problem around: those are often signs of a memory bug. Rewriting that component in Rust rules out a share of them at compile time, and the rest of your C++ can stay where it is.

  • A new infrastructure tool

    You need a lightweight program, shipped as a single file, that can sit on your servers for months without constant attention. This is the kind of job where Rust feels at home.

  • A team picking up Rust

    Your developers are fighting the compiler. That's normal early on, and it passes. A second opinion before the code piles up can keep bad habits from setting in, and a consulting day may be all it takes.

Rust and its neighbors

Rust rarely works alone. It nearly always joins a system that's already running, and it has to get along with what's there.

  • Rust

    The language for new services, infrastructure tools and migrated components.

  • Axum

    A framework, meaning a ready-made foundation, for writing web services and APIs in Rust.

  • Actix

    Another widely used Rust web framework, chosen based on the project or the code already there.

  • C++

    A possible migration source. Rust and C++ can call each other, so the move can happen in small pieces inside one program.

  • Java

    A migration source for one specific service. The rest of the Java system keeps running and talks to the new component through an API, often with no reason to touch it at all.

  • Node

    Node.js runs JavaScript on the server. A migration source for a service that uses too many resources, while the rest of the app can stay on Node.

The question first, the code second

  1. 01

    You tell us what's pointing you to Rust

    What's costing you, what's crashing or what you want to build, and what your team knows today. That last answer often weighs the most.

  2. 02

    We check whether Rust is worth it

    If it is, the quote lists the target components, the planned measurements and the price. If it isn't, we tell you what would be enough, and you keep your budget.

  3. 03

    We migrate one component at a time

    Each one is checked and measured with you before we move to the next, so every decision has numbers behind it.

  4. 04

    Your team takes over

    It gets the code, the documentation and what it needs to keep the code moving, even if it didn't write Rust at the start. Code nobody on your side can read wouldn't do you much good.

One day to decide, or a project if you've already made up your mind

Senior consulting day

€900

Seven hours of a senior engineer's time on one agreed subject: deciding whether Rust is worth it, reviewing code, planning a migration. VAT not applicable, art. 293 B CGI.

See the consulting day

Rust project

Custom quote

A service to write or components to migrate, with a clear scope and a detailed quote before anything starts.

Send a Rust brief

Frequently asked questions

Rust projects are quoted individually, because the price depends on the size of the component, how tied in it is to the rest of your system, the tests you already have and your team's Rust experience. Those tests matter more than people expect: without them, there's no way to check that the new component behaves like the old one. To start small, a €900 consulting day can settle whether Rust is worth it and scope the work. Prices are in euros. VAT not applicable, art. 293 B CGI.

It depends on the component and the condition of the code, and we won't name a number before seeing them. The upside of moving one component at a time is that each stage gets its own projected schedule in the quote, and each one is planned so your system keeps running if you decide to stop there.

We can work in your repository with the access you give us, review your developers' code and explain our decisions, and we'd like them to understand what we're doing. It's a service with a defined scope, by the day or by custom quote, rather than staff augmentation.

Only for calls, which we book ahead of time. Code review and migration work lend themselves to writing, and a written decision still makes sense six months later: pull requests, decisions and status updates, in English and in your tools if you prefer. Codetics works remotely by default.

The code written specifically for you becomes yours once the price is paid in full, through an exclusive assignment of the economic rights, for the purposes of your business. Our pre-existing components stay with Codetics, with a royalty-free license to use them with your deliverables. Open-source crates (Rust libraries) keep their own licenses. Our terms of sale and your quote have the details.
Software project

Is Rust the right call for your system?

Tell us what got you thinking about it: a cost, a crash, a new service. You'll get a straight answer, even if the answer is to change nothing.

  1. 01You describe the need
  2. 02We clarify the scope
  3. 03You receive a detailed quote
Discuss a project