Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 Code Analysis Open-Source Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
scalene
Scalene: a high-performance, high-precision CPU, GPU, and memory profiler for Python with AI-powered optimization proposals
-
PHP Code Sniffer
PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.
-
Checkstyle
Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.
-
phan
Phan is a static analyzer for PHP. Phan prefers to avoid false-positives and attempts to prove incorrectness rather than correctness.
-
JavaParser
Java 1-18 Parser and Abstract Syntax Tree for Java with advanced analysis functionalities.
-
credo
A static code analysis tool for the Elixir language with a focus on code consistency and teaching.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: How to setup Black and pre-commit in python for auto text-formatting on commit | dev.to | 2024-03-29$ git commit -m "add pre-commit configuration" [INFO] Initializing environment for https://github.com/psf/black. [INFO] Installing environment for https://github.com/psf/black. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... black................................................(no files to check)Skipped [main 6e21eab] add pre-commit configuration 1 file changed, 7 insertions(+)
For vim specifically, I've been using coc.nvim, which works pretty well for my needs, and I know its quite popular. Another fairly popular one is YouCompleteMe, which I had taken a look at for some other languages; but ended up just using coc as I can't justify using YCM once a year (if that) -- too much "headache" for not a lot of use, you know?
YAPF (Yet Another Python Formatter): YAPF takes a different approach in that it’s based off of ‘clang-format’, a popular formatter for C++ code. YAPF reformats Python code so that it conforms to the style guide and looks good.
PHP-CS-Fixer automatically fixes PHP coding standard issues, maintaining a clean codebase and adhering to coding standards. It can be integrated into the development workflow to ensure all code complies with defined standards.
As part of the journey to PHP perfection, you should embrace Rector. It's a amazing, free, and open-source tool for migrations, code quality, type coverage, pushing PHPStan to the highest levels, and yes, it can even auto-fix your existing code! It seamlessly integrates into the CI process, making your development workflow smoother than ever.
I collected a list of profilers (also memory profilers, also specifically for Python) here: https://github.com/albertz/wiki/blob/master/profiling.md
Currently I actually need a Python memory profiler, because I want to figure out whether there is some memory leak in my application (PyTorch based training script), and where exactly (in this case, it's not a problem of GPU memory, but CPU memory).
I tried Scalene (https://github.com/plasma-umass/scalene), which seems to be powerful, but somehow the output it gives me is not useful at all? It doesn't really give me a flamegraph, or a list of the top lines with memory allocations, but instead it gives me a listing of all source code lines, and prints some (very sparse) information on each line. So I need to search through that listing now by hand to find the spots? Maybe I just don't know how to use it properly.
I tried Memray, but first ran into an issue (https://github.com/bloomberg/memray/issues/212), but after using some workaround, it worked now. I get a flamegraph out, but it doesn't really seem accurate? After a while, there don't seem to be any new memory allocations at all anymore, and I don't quite trust that this is correct.
There is also Austin (https://github.com/P403n1x87/austin), which I also wanted to try (have not yet).
Somehow this experience so far was very disappointing.
(Side node, I debugged some very strange memory allocation behavior of Python before, where all local variables were kept around after an exception, even though I made sure there is no reference anymore to the exception object, to the traceback, etc, and I even called frame.clear() for all frames to really clear it. It turns out, frame.f_locals will create another copy of all the local variables, and the exception object and all the locals in the other frame still stay alive until you access frame.f_locals again. At that point, it will sync the f_locals again with the real (fast) locals, and then it can finally free everything. It was quite annoying to find the source of this problem and to find workarounds for it. https://github.com/python/cpython/issues/113939)
2. SonarQube: https://github.com/SonarSource/sonarqube SonarQube enhances code quality and security. It performs automatic reviews to detect bugs, vulnerabilities, and code smells in your code.
For the next phase of updates, I installed PHP Rector.
Project mention: Any library you would like to recommend to others as it helps you a lot? For me, mapstruct is one of them. Hopefully I would hear some other nice libraries I never try. | /r/java | 2023-05-27error-prone is good for some extra static analysis.
Project mention: Pylyzer – A fast static code analyzer and language server for Python | news.ycombinator.com | 2024-04-11Did you come across pyre in your search? MIT license and pretty fast.
https://github.com/facebook/pyre-check
isort: This library sorts your imports alphabetically, and automatically separates them into sections and by type. It provides a cleaner and more organised way to manage project imports.
Project mention: If you owned a nvidia tesla a100, what would you do with it? | /r/LocalLLaMA | 2023-07-04
Code Analysis related posts
-
Open source software maintenance is difficult: examples with Go math/rand/v2 and testify
-
Handling EI_EXPOSE_REP & EI_EXPOSE_REP2 👨🏻💻
-
Updating legacy code to php 8.x
-
Fix PHP 8.4 deprecation: Implicitly marking parameter as nullable is deprecated, the explicit nullable type must be used instead
-
What if null was an Object in Java?
-
Google lays off its Python team
-
Pylyzer – A fast static code analyzer and language server for Python
-
A note from our sponsor - InfluxDB
www.influxdata.com | 4 May 2024
Index
What are some of the best open-source Code Analysis projects? This list will help you:
Project | Stars | |
---|---|---|
1 | black | 37,425 |
2 | p3c | 30,094 |
3 | YouCompleteMe | 25,272 |
4 | PHP Parser | 16,846 |
5 | golangci-lint | 14,472 |
6 | yapf | 13,655 |
7 | PHP CS Fixer | 12,554 |
8 | PHPStan | 12,548 |
9 | scalene | 11,174 |
10 | PHP Code Sniffer | 10,598 |
11 | SonarQube | 8,594 |
12 | Rector | 8,241 |
13 | Checkstyle | 8,138 |
14 | goimports | 7,229 |
15 | Error Prone | 6,724 |
16 | pyre-check | 6,695 |
17 | isort | 6,321 |
18 | ctags | 6,292 |
19 | phan | 5,501 |
20 | JavaParser | 5,228 |
21 | larastan | 5,203 |
22 | credo | 4,844 |
23 | PMD | 4,666 |
Sponsored