{"repo":"willcrichton/flowistry","free":true,"listed":false,"github":"https://github.com/willcrichton/flowistry","clone":"git clone https://github.com/willcrichton/flowistry.git","description":"Flowistry is an IDE plugin for Rust that helps you focus on relevant code.","language":"Rust","stars":3072,"topics":["rust","vscode","dataflow","static-analysis"],"license":"MIT","category":"dev-tools","readme_excerpt":"Flowistry: Information Flow for Rust Flowistry is a tool that analyzes the information flow) of Rust programs. Flowistry understands whether it's possible for one piece of code to affect another. Flowistry integrates into the IDE to provide a \"focus mode\" which helps you focus on the code that's related to your current task. For example, this GIF shows the focus mode when reading a function that unions two sets together: When the user clicks a given variable or expression, Flowistry fades out all code that does not influence that code, and is not influenced by that code. For example, orig len is not influenced by the for-loop, while set.len() is. Flowistry can be helpful when you're reading a function with a lot of code. For example, this GIF shows a real function in the Rust compiler. If you want to understand the role of a specific argument to the function, then Flowistry can filter out most of the code as irrelevant: The algorithm that powers Flowistry was published in the paper \"Modular Information Flow through Ownership\" at PLDI 2022. Table of contents Installation IDE plugin Rustc plugin Usage Startup Entering focus mode Setting a mark Selecting the focus region Limitations Flowistry does not completely handle interior mutability A focus region may include more code than you expect Not all code is selectable Nested functions cannot be analyzed together (including closures and async) FAQ rustup fails on installation Why isn't Flowistry part of Rust Analyzer? Why does Flo","default_branch":null,"files":null,"tree":[],"storefront":"/r/willcrichton","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/willcrichton/flowistry/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}