Contributing to Azul
Want to contribute? Thanks and welcome! Reading all the documentation is a great place to start before you begin.
Development Principles and Philosophy
Azul is a highly scalable, automated malware analysis solution and knowledge store. The Azul team aim to provide an extensible framework that allows analysts to trivially automate their analysis and interrogate historic results.
In general:
- Azul is largely written in Python, therefore, Python best practices should be adhered to. Refer to PEP 8.
- Keep things clean, simple, consistent and readable.
- Tests! Everything should have test code.
- Meaningful documentation. Use google style. See example.
Azul is split across many separate repositories to simplify management. For more specific details, please refer to that subsection of the documentation.
The Azul team welcome all bug reports and new feature requests on our issue tracker. Pull requests are always welcome too!
Submitting A Pull Request
Before submitting a pull request for your changes, please follow these guidelines:
- Test should be included.
- If you are adding functionality, documentation should be updated/included.
- Your contribution should work on Python 3.9+
Plugin Development
A plugin performs some form of work on an entity and saves its results. Plugins perform the majority of the analysis within Azul and are intended to be the primary method through which new analytical techniques are added to the system.
In short, all common input and output requirements of a plugin are provided by the framework. All the developer needs to do is obtain the information needed to perform their analysis, perform their analysis, and then save the desired results.
For a detailed guide please see plugin development guide