fedora-static-analysis / firehose

Licence: other
Interchange format for results for static analysis tools

Programming Languages

python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to firehose

phpstan-dba
PHPStan based SQL static analysis and type inference for the database access layer
Stars: ✭ 163 (+162.9%)
Mutual labels:  static-analysis
shell-linter
A Github Action for ShellCheck
Stars: ✭ 58 (-6.45%)
Mutual labels:  static-analysis
go-obj
OBJ file loader for golang
Stars: ✭ 16 (-74.19%)
Mutual labels:  file-format
PhpCodeAnalyzer
PhpCodeAnalyzer scans codebase and analyzes which non-built-in php extensions used
Stars: ✭ 91 (+46.77%)
Mutual labels:  static-analysis
gotcha
Go Taint CHeck Analyser
Stars: ✭ 40 (-35.48%)
Mutual labels:  static-analysis
mmtf
The specification of the MMTF format for biological structures
Stars: ✭ 40 (-35.48%)
Mutual labels:  file-format
unimport
unimport is a Go static analysis tool to find unnecessary import aliases.
Stars: ✭ 64 (+3.23%)
Mutual labels:  static-analysis
js-cfb
💾 OLE File Container Format
Stars: ✭ 54 (-12.9%)
Mutual labels:  file-format
aura
Python source code auditing and static analysis on a large scale
Stars: ✭ 101 (+62.9%)
Mutual labels:  static-analysis
r2frida-book
The radare2 + frida book for Mobile Application assessment
Stars: ✭ 38 (-38.71%)
Mutual labels:  static-analysis
intercept
INTERCEPT / Policy as Code Static Analysis Auditing / SAST
Stars: ✭ 54 (-12.9%)
Mutual labels:  static-analysis
twly
Wanna get DRY? Static analysis tool for detecting repeat code.
Stars: ✭ 42 (-32.26%)
Mutual labels:  static-analysis
tiro
TIRO - A hybrid iterative deobfuscation framework for Android applications
Stars: ✭ 20 (-67.74%)
Mutual labels:  static-analysis
eslint-plugin-vue-scoped-css
ESLint plugin for Scoped CSS in Vue.js
Stars: ✭ 58 (-6.45%)
Mutual labels:  static-analysis
MagicaVoxel File Writer
MagicaVoxel File Writer dependency free cpp class
Stars: ✭ 26 (-58.06%)
Mutual labels:  file-format
phpstan.el
Interface to PHPStan (PHP static analyzer)
Stars: ✭ 22 (-64.52%)
Mutual labels:  static-analysis
CKS-Exercises-Certified-Kubernetes-Security-Specialist
A set of curated exercises to help you prepare for the CKS exam
Stars: ✭ 124 (+100%)
Mutual labels:  static-analysis
constyble
CSS complexity linter
Stars: ✭ 92 (+48.39%)
Mutual labels:  static-analysis
miniply
A fast and easy-to-use PLY parsing library in a single c++11 header and cpp file
Stars: ✭ 29 (-53.23%)
Mutual labels:  file-format
GbxDump
A Microsoft Windows application that displays the contents of the file header of *.Gbx files used by the Nadeo game engine GameBox.
Stars: ✭ 19 (-69.35%)
Mutual labels:  file-format

"firehose" is a Python package intended for managing the results from code analysis tools (e.g. compiler warnings, static analysis, linters, etc).

It currently provides parsers for the output of gcc, clang-analyzer, cppcheck, and findbugs. These parsers convert the results into a common data model of Python objects, with methods for lossless roundtrips through a provided XML format. There is also a JSON equivalent.

It is available on pypi here:
https://pypi.python.org/pypi/firehose
and via git from:
https://github.com/fedora-static-analysis/firehose
The mailing list is:
https://admin.fedoraproject.org/mailman/listinfo/firehose-devel
Documentation can be read here:
http://firehose.readthedocs.io/en/latest/

Firehose is Free Software, licensed under the LGPLv2.1 or (at your option) any later version.

It requires Python 2.7 or 3.2 onwards, and has been successfully tested with PyPy.

It is currently of alpha quality.

The API and serialization formats are not yet set in stone (and we're keen on hearing feedback before we lock things down more).

Motivation: http://lists.fedoraproject.org/pipermail/devel/2012-December/175232.html

I want to slurp the results from static code analysis into a database, which means coercing all of the results into some common interchange format, codenamed "firehose" (which could also be the name of the database).

The idea is a common XML format that all tools can emit that:

together with a simple Python API for working with the format as a collection of Python objects (creating, write to XML, read from XML, modification, etc)

I initially considered using JSON, but went with XML because if multiple tools are going to emit this, it's good to be able to validate things against a schema (see firehose.rng, a RELAX-NG schema).

References to source files in the format can include a hash of the source file itself (e.g. SHA-1) so that you can uniquely identify which source file you were talking about.

This format would be slurped into the DB for the web UI, and can have other things done to it without needing a server: e.g.:

  • convert it to the textual form of a gcc compilation error, so that Emacs etc can parse it and take you to the source
  • be turned into a simple HTML report locally on your workstation

Projects using Firehose:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].