# C++ to Rust

Published articles for C++ to Rust.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Req2Rust: A Requirements-Guided Agent Harness for Project-Level C++-to-Rust Migration

DevFeed: [Req2Rust: A Requirements-Guided Agent Harness for Project-Level C++-to-Rust Migration](<https://devfeed.tech/articles/req2rust-a-requirements-guided-agent-harness-for-project-level-c-to-rust-migration-120814.md>)

Original publisher: [Read original article](<https://arxiv.org/abs/2611.07442>)

Author: Shengbo Wang, Mingwei Liu, Yuwen Chen, Yanlin Wang

Published: 2026-11-06T05:00:00Z

Content type: article

Language: en

Sources: [arXiv: Software Engineering](<https://devfeed.tech/sources/arxiv-software-engineering.md>)

Topics: [Agent Harness](<https://devfeed.tech/topics/agent-harness.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Requirements](<https://devfeed.tech/topics/requirements.md>), [Specifications](<https://devfeed.tech/topics/specifications.md>), [Software Testing](<https://devfeed.tech/topics/software-testing.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [c-plus-plus-to-rust](<https://devfeed.tech/tags/c-plus-plus-to-rust.md>), [cs-se](<https://devfeed.tech/tags/cs-se.md>), [harness](<https://devfeed.tech/tags/harness.md>), [llm](<https://devfeed.tech/tags/llm.md>), [memory-safety](<https://devfeed.tech/tags/memory-safety.md>), [migration](<https://devfeed.tech/tags/migration.md>), [rust](<https://devfeed.tech/tags/rust.md>), [semantic](<https://devfeed.tech/tags/semantic.md>), [specification](<https://devfeed.tech/tags/specification.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

Req2Rust uses an evidence-grounded Migration Requirements Specification (MRS) to record behaviors and constraints to preserve, then derives a Rust Design Specification (RDS) and an initial Rust project. It treats that project as an executable refinement state: compiler, semantic, and unsafe-reduction validators report issues to guide improvements in buildability, behavioral alignment, and unsafe usage. In evaluations against a ClaudeCode baseline, Req2Rust produced buildable Rust crates and raised test pass rates from 69.5% to 91.9% on general projects and from 45.4% to 87.9% on OpenHarmony modules. The supplied abstract does not detail evaluation methods or the extent of unsafe-code reduction.

### Source excerpt

arXiv:2611.07442v1 Announce Type: new Abstract: Memory-safety concerns make Rust an attractive target for modernizing legacy C/C++ systems, yet project-level C++ migration must balance semantic fidelity with Rust-oriented reconstruction. Source-structure-preserving migration can track low-level behavior, but it can also carry source-language organization, unsafe idioms, and project assumptions into Rust. Direct agent-based translation gives the model more freedom to construct a Rust project, but semantic coverage depends on the model identifying the source behaviors that must be preserved. This problem is especially acute for C++, where source behaviors are often hidden in object models, destructor-driven lifetime protocols, and other hard-to-localize C++ semantics. This paper presents Req2Rust, the first project-level LLM-based C++-to-Rust migration harness. Req2Rust first derives an evidence-grounded Migration Requirements Specification (MRS) that records the behaviors and constraints that must be preserved. It then synthesizes a Rust Design Specification (RDS) and realizes it as an initial Rust project. Because real projects contain implementation details and idioms that only become visible during build and validation, Req2Rust treats the initial Rust project as an executable refinement state. Compiler, semantic, and unsafe-reduction validators produce validation reports for improving buildability, behavioral alignment, and unsafe usage. We evaluate Req2Rust on general C++ projects and modules from the large-scale Openharmony codebase against a ClaudeCode baseline. Req2Rust produces buildable Rust crates in both settings and improves test pass rate from 69.5% to 91.9% on general projects and from 45.4% to 87.9% on Openharmony modules.

## Mold 3.0 High Speed Linker Released Following Rust Rewrite

DevFeed: [Mold 3.0 High Speed Linker Released Following Rust Rewrite](<https://devfeed.tech/articles/mold-3-0-high-speed-linker-released-following-rust-rewrite-65020.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/Mold-3.0-Released>)

Author: Michael Larabel

Published: 2026-10-05T10:29:15Z

Content type: news

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [toolchain](<https://devfeed.tech/topics/toolchain.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [linker](<https://devfeed.tech/topics/linker.md>), [systems](<https://devfeed.tech/topics/systems.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [c-plus-plus-to-rust](<https://devfeed.tech/tags/c-plus-plus-to-rust.md>), [cmake](<https://devfeed.tech/tags/cmake.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [high-performance](<https://devfeed.tech/tags/high-performance.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [lld](<https://devfeed.tech/tags/lld.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [onetbb](<https://devfeed.tech/tags/onetbb.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [performance](<https://devfeed.tech/tags/performance.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [programming](<https://devfeed.tech/tags/programming.md>), [rust](<https://devfeed.tech/tags/rust.md>), [rust-programming](<https://devfeed.tech/tags/rust-programming.md>), [rust-programming-language](<https://devfeed.tech/tags/rust-programming-language.md>), [systems](<https://devfeed.tech/tags/systems.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

Mold 3.0 is the first Rust-based release of the high-speed linker, rewritten from C++ as a drop-in replacement for Mold 2.42.1. It aims to close compatibility gaps with GNU ld, especially in linker script support, and removes Intel oneTBB in favor of Rust's Cargo build system. The release also reports improved handling of corrupted input files and numerous bug fixes.

### Source excerpt

The Mold high speed linker alternative to the likes of GNU Gold/LD and LLVM LLD recently has been going through a rewrite from C++ to Rust as well as having high ambitions of eventually becoming the default linker on Linux systems. Today marks the release of Mold 3.0 for this Rust-based high performance linker...

## Transitioning from C and C++ to Rust: A Beginner's Guide

DevFeed: [Transitioning from C and C++ to Rust: A Beginner's Guide](<https://devfeed.tech/articles/transitioning-from-c-and-c-to-rust-a-beginner-s-guide-22268.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/10/transitioning-from-c-and-c++-to-rust.html>)

Published: 2024-10-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [Memory Safety](<https://devfeed.tech/topics/memory-safety.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [Learning](<https://devfeed.tech/topics/learning.md>)

Tags: [beginner](<https://devfeed.tech/tags/beginner.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [c-plus-plus-to-rust](<https://devfeed.tech/tags/c-plus-plus-to-rust.md>), [c-to-rust](<https://devfeed.tech/tags/c-to-rust.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [data-ownership](<https://devfeed.tech/tags/data-ownership.md>), [data-types](<https://devfeed.tech/tags/data-types.md>), [enums](<https://devfeed.tech/tags/enums.md>), [generics](<https://devfeed.tech/tags/generics.md>), [guide](<https://devfeed.tech/tags/guide.md>), [leaks](<https://devfeed.tech/tags/leaks.md>), [lifetimes](<https://devfeed.tech/tags/lifetimes.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [memory-safety](<https://devfeed.tech/tags/memory-safety.md>), [migrating-from-c-plus-plus-to-rust](<https://devfeed.tech/tags/migrating-from-c-plus-plus-to-rust.md>), [ownership](<https://devfeed.tech/tags/ownership.md>), [pointers](<https://devfeed.tech/tags/pointers.md>), [rust](<https://devfeed.tech/tags/rust.md>), [rust-for-c-developers](<https://devfeed.tech/tags/rust-for-c-developers.md>), [rust-for-c-plus-plus-programmers](<https://devfeed.tech/tags/rust-for-c-plus-plus-programmers.md>), [rust-programming](<https://devfeed.tech/tags/rust-programming.md>), [safety](<https://devfeed.tech/tags/safety.md>), [transitioning-from-c-and-c-plus-plus-to-rust-guide](<https://devfeed.tech/tags/transitioning-from-c-and-c-plus-plus-to-rust-guide.md>), [transitioning-from-c-and-c-plus-plus-to-rust-tutorial](<https://devfeed.tech/tags/transitioning-from-c-and-c-plus-plus-to-rust-tutorial.md>), [transitioning-to-rust](<https://devfeed.tech/tags/transitioning-to-rust.md>)

### AI overview

Rust's ownership model is a key adjustment when moving from C or C++: each value has one owner, memory is cleaned up when that owner leaves scope, and borrowing permits temporary access through references. The compiler's borrow checker rejects invalid uses such as accessing a value after it is no longer valid, helping prevent use-after-free and double-free bugs. The excerpt also highlights Rust's static typing, enums, pattern matching, and generics as tools for catching errors at compile time and expressing data clearly. It does not provide the full guide or develop the later steps.

### Source excerpt

Introduction: As you embark on the journey from C or C++ to Rust, you'll discover a world of exciting possibilities. Rust's emphasis on safety, concurrency, and performance can significantly enhance your programming toolkit. This beginner's guide on transitioning from C and C++ to Rust will provide a structured approach to making that transition, addressing essential concepts and practical applications. Let's dive in! Step 1: Understanding Rust's Ownership Model Concept Overview: Rust's ownership model is its most distinctive feature. Unlike C and C++, where you have pointers and manual memory management, Rust uses a system of ownership with rules that the compiler checks at compile time.

## What we've been reading in January

DevFeed: [What we've been reading in January](<https://devfeed.tech/articles/what-we-ve-been-reading-in-january-47277.md>)

Original publisher: [Read original article](<https://interrupt.memfault.com/blog/jan-2023-roundup>)

Author: Tyler Hoffman

Published: 2023-02-07T00:00:00Z

Content type: article

Language: en

Sources: [Interrupt](<https://devfeed.tech/sources/interrupt.md>)

Topics: [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [CMake](<https://devfeed.tech/topics/cmake.md>), [C](<https://devfeed.tech/topics/c.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [RISC-V](<https://devfeed.tech/topics/riscv.md>), [Hacking](<https://devfeed.tech/topics/hacking.md>), [fpga](<https://devfeed.tech/topics/fpga.md>), [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [c-plus-plus-to-rust](<https://devfeed.tech/tags/c-plus-plus-to-rust.md>), [cmake](<https://devfeed.tech/tags/cmake.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [hardware-hacking](<https://devfeed.tech/tags/hardware-hacking.md>), [pi](<https://devfeed.tech/tags/pi.md>)

### AI overview

A January roundup of embedded-systems resources, including material on debugging and monitoring embedded devices, C and C++ development, Rust, build systems, CMake, processors, hardware glitching, and Raspberry Pi Pico Wi-Fi.

### Source excerpt

Here are the articles, videos, and tools that we've been excited about this January. Continue reading...