Boris - An Ownership and Borrowing Visualizer
Hello all
as part of my master's thesis, I am building a tool for generating interactive ownership and lifetime visualizations for rust programs.
The main goal of this project is to make these concepts easier to learn for beginners and people switching from other languages to rust.
It could also be useful for detecting and understanding borrow checker errors, however error visualizations are currently very limited.
As the analysis does not depend on the rustc borrow checker/ polonius, it does not have access to the 'official' borrow checker output.
The ownership and reference analysis is fully handwritten utilizing the RustAnalyzer crate, thus expect bugs and by far not full language support (a list of known limitations can be found in the GitHub page).
However, for most cases (even more complex ones) the tool was able to produce at least a meaningful output in my tests so far.
Preview of the main application
As this is part of a research project, you would help me out a lot if you spend two minutes on a survey about such visualizations (only 7 short questions).
The survey even contains interactive visualizations generated by this tool, which you can play around with in your browser!
https://opnform.com/forms/visualizing-ownership-and-borrowing-in-rust-programs-nseo4z 7
You can find the link to the GitHub repository at the end of the survey (sorry, I will post the link here directly once the survey is concluded :) )
I would be happy to hear your feedback and comments!
Christian