Large C++ software frameworks often require users to be aware of details like thread safety, object ownership and re-entrancy in order to be used correctly and efficiently. If it is possible to hook into and extend the framework internals, it can be very hard to determine if errors are caused by the extension or by pre-existing bugs within the framework itself.
Rust is a relatively new systems programming language that has been designed to prevent many common classes of memory and concurrency errors, but mapping Rust’s concepts onto software developed using more traditional languages can be problematic.
The purpose of the Master’s Thesis is to evaluate the safety and correctness implications of interoperating with, and extending, an existing complex C++ framework using Rust.
This thesis work is suitable for students with strong C++ skills and previous experience with Rust.
You will be working for Carmenta Geospatial Technologies in this project. Please visit carmenta.com for more information about us.