Multi-purpose extensible self-adaptive optimizer and fuzzer
Project description
Byron is an evolutionary tool: given a problem, it first generates a set of random solutions, then iteratively refines and improves them using the results of their evaluations together with structural information.
Byron can solve problems that require solutions with a complex structures, such as realistic assembly programs with loops, interrupts, and recursive subroutines. It may be used as a coverage-driven fuzzer and a general-purpose optimizer, or as a framework for prototyping and testing new ideas.
Candidate solutions are evaluated in parallel calling a user-defined Python function; creating temporary directories and using a makefile; or executing a generic shell script (that may, for instance, call proprietary tools).
Installation
⚠️ Byron is currently in pre-alpha and under active development
pip install --upgrade byron
Few optional dependencies can enhance byron, but are not strictly required:
pip install --upgrade matplotlib
pip install --upgrade joblib
pip install --upgrade psutil
Contacts
- Alberto Tonda: alberto.tonda@inra.fr
- Giovanni Squillero: giovanni.squillero@polito.it
License
Copyright © 2023 Giovanni Squillero and Alberto Tonda
byron is free and open-source software, and it is distributed under the permissive Apache License 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for byron-0.1.dev11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 523a9925413cb80abcb578f747c648c3a15cce3d23220ac95387d1579dd3b495 |
|
MD5 | fd7c994fbe5e571e9f14b70bd7902173 |
|
BLAKE2b-256 | 3877dead53fe58451f721d28b7cd9ea747d85ccaa2925253ef157f4942986a0c |