Skip to main content

Multi-purpose extensible self-adaptive optimizer and fuzzer

Project description

License: Apache 2.0 Status: Actrive Language: Python Version: 0.1.dev2 Codename: Don Juan Documentation Status

Byron is an evolutionary tool: given a problem, it first generates a set of random solutions, then iteratively improves them using the results of their evaluations together with structural information. It may be used as a coverage-driven fuzzer and a general-purpose optimizer.

Byron internally encodes candidate solutions as typed, directed multigraphs and can tackle problems with complex, structured constraints. For instance, it may be used to create realistic programs with loops, flow-control structures, and subroutines. Gory detail: solutions are heterogeneous forests with additional edges connecting leaves, possibly between different trees.

Candidate solutions are dumped as text and then evaluated by calling a user-defined Python function or by invoking a shell script that may use external proprietary tools. Different types of parallelization are supported out of the box, from simple multithreading to the creation of temporary directories where multiple subprocesses are concurrently spawned.

Installation

⚠️ Byron is currently in alpha and under active development

As simple as

pip install --upgrade byron

Few optional dependencies can enhance Byron, but are not strictly required. You can get them with

pip install --upgrade "byron[full]"

or install optional modules one by one

pip install --upgrade matplotlib
pip install --upgrade joblib
pip install --upgrade psutil

Documentation

None yet, but some HOWTO's and examples are available in the repo.

Contacts

License

Copyright (c) 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

byron-0.8a1.dev28.tar.gz (62.2 kB view hashes)

Uploaded Source

Built Distribution

byron-0.8a1.dev28-py3-none-any.whl (117.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page