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