OCaml Static Analysis

Open-source OCaml projects categorized as Static Analysis

Top 6 OCaml Static Analysis Projects

  • infer

    A static analyzer for Java, C, C++, and Objective-C

    Project mention: An Introduction to Temporal Logic (With Applications to Concurrency Problems) | news.ycombinator.com | 2024-01-22

    I think most development occurs on problems that can't be formally modeled anyway. Most developers work on things like, "can you add this feature to the e-commerce site? And can the pop-up be blue?" which isn't really model-able.

    But that's not to say that formal methods are useless! We can still prove some interesting aspects of programs -- for example, that every lock that gets acquired later gets released. I think tools like Infer[0] could become common in the coming years.

    [0]: https://fbinfer.com/

  • semgrep

    Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.

    Project mention: Tree-Sitter | news.ycombinator.com | 2024-02-17

    > Not sure I understand your point.

    The problem is using Treesitter (for syntax highlighting and "semantic movements") and an LSP at the same time. So if your language has a LSP, using Treesitter additionally is redundant at best and introduces inconcistency at worst.

    I'm not talking about using Treesitter as the parser for the LSP.

    > Most popular languages have language-specific tools

    I'd say even less popular langauges like Coq^H^H^HRocq, Lean 4, Koka, Idris, Unison, ... have their "own" tools, I do not know of a language that uses a Treesitter parser in its LSP, but I do know about tools like https://semgrep.dev/ (written in OCaml) and Github's code search which use Treesitter.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • pyre-check

    Performant type-checking for python.

    Project mention: A Tale of Two Kitchens - Hypermodernizing Your Python Code Base | dev.to | 2023-11-12

    Pyre from Meta, pyright from Microsoft and PyType from Google provide additional assistance. They can 'infer' types based on code flow and existing types within the code.

  • bap

    Binary Analysis Platform

  • bolt

    Bolt is a language with in-built data-race freedom! (by mukul-rathi)

  • illuaminate

    Very WIP static analysis for Lua

    Project mention: Is there a way to create namespaces/hierarchy in the documentation with LDoc? | /r/lua | 2023-05-31

    LDoc isn't really meant for this, but you can generate on each file individually and then hack in links with some post-processing. Alternatively, if you have the time to dig into an even less documented format, illuaminate natively supports multi-file docs. (See here for an example config file.)

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2024-02-17.

OCaml Static Analysis related posts


What are some of the best open-source Static Analysis projects in OCaml? This list will help you:

Project Stars
1 infer 14,628
2 semgrep 9,478
3 pyre-check 6,638
4 bap 1,944
5 bolt 520
6 illuaminate 49
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives