TUM Logo

A Systematic Approach to Gradually Integrate Rust into Existing Codebases

A Systematic Approach to Gradually Integrate Rust into Existing Codebases

Supervisor(s): Oliver Braunsdorf
Status: open
Topic: Others
Type of Thesis: Masterthesis Bachelorthesis
Thesis topic in co-operation with the Fraunhofer Institute for Applied and Integrated Security AISEC, Garching

Description

Chair of IT Security / Prof. Dr. Claudia Eckert

Announcement: Bachelor/Master Thesis in Cooperation with Fraunhofer AISEC, Garching

A Systematic Approach to Gradually Integrate Rust

into Existing Codebases

Rust is a novel, promising programming language, which stands out due to its type system which ensures memory-safety while maintaining performance similar to C/C++. However, rewriting existing software in a new language can be very expensive for software vendors. Not only because porting software can be time-consuming task, but also because recruiting new developers with expertise in a new language can only happen gradually. Therefore, it is important to enable a step-by-step transition from old languages like C/C++ to Rust.

Task Description

This thesis aims to propose a process for software companies and developers to systematically approach the endeavor to integrate Rust code into legacy code bases. This process might include the following steps:

  • Assessing the codebase to identify parts that should be rewritten or replaced with rust code

  • Rewriting parts of legacy code, perhaps using automatic transpiling tools1

  • Generating bindings as interface for different languages mixed within a single address space program

  • Integration into build systems

  • Validating functional or semantical equality

    For some of these steps, the Rust ecosystem already provides (semi-)automatic tooling which shall be evaluated for suitability in the this systematic process. Depending on your skills and interests, you can select one of the process’s steps to develop new tools or improve existing tools within the scope of this thesis.

    Requirements

    • First experiences with Rust and C/C++
    • Confident in working with Linux, Git & Docker
    • Confident in working with one scripting language, e.g. Python
    • Self-driven work ethic and fun experimenting with new techniques

    Contact

    Oliver Braunsdorf

    Fraunhofer Institute for Applied and Integrated Security AISEC

    Lichtenbergstraße 11, 85748 Garching
    Mail: oliver.braunsdorf@aisec.fraunhofer.de
    Phone: +49-89-3229986-161

1https://github.com/immunant/c2rust, https://github.com/jameysharp/corrode