An OCaml API for static analysis, dynamic analysis, code visualization, navigation, and style-preserving source-to-source transformations.
Pfff is an OCaml API for writing tools that perform static analysis, dynamic analysis, code visualization, navigation, and style-preserving source-to-source transformations on source code. It solves the problem of building precise code manipulation utilities that maintain original formatting during operations like refactoring.
Developers and researchers building static analysis tools, code refactoring systems, or code exploration utilities, particularly those working with OCaml or interested in program analysis.
Developers choose Pfff for its focus on style-preserving transformations and comprehensive code analysis capabilities, providing a robust foundation for creating custom code manipulation tools without disrupting code formatting.
pfff is mainly an OCaml API to write static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables source-to-source changes that maintain original code formatting, crucial for non-disruptive refactoring, as emphasized in the project's philosophy.
Supports both static and dynamic analysis, allowing for in-depth code inspection without execution, based on the key features listed.
Provides an API for building custom code manipulation utilities, offering precision and control for specialized needs like visualization or navigation.
As part of Semgrep, it benefits from a larger toolchain and community support, enhancing its utility in modern code analysis workflows.
Built in OCaml, necessitating familiarity with this language, which can be a significant barrier for teams not already invested in the OCaml ecosystem.
Users must build their own tools from scratch, increasing time and effort compared to using pre-built, ready-to-use solutions.
With the project integrated into Semgrep, original Pfff documentation is sparse or redirected, as indicated by the README, making it harder to learn independently.
Being part of Semgrep means it may not receive independent updates or support, potentially affecting long-term viability for custom tooling outside the Semgrep context.