Skip to content

icicle-emu/icicle-python

Repository files navigation

icicle-python

This project is an easy-to-use Python wrapper around icicle-emu. You can read more about Icicle in the paper: Icicle: A Re-designed Emulator for Grey-Box Firmware Fuzzing.

Installation

You can install the latest release from PyPI:

pip install icicle-emu

Development

Note: You need to install Rust 1.90 or higher to build from source.

Install uv

# On Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# On macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

Build the project

# Clone the repository with submodules
git clone --recursive https://github.com/icicle-emu/icicle-python
cd icicle-python

# Install dependencies and build
uv sync
uv run maturin develop

Running tests

The tests folder contains tests that double as standalone examples. Prefix a function with test_ to automatically run it:

uv run pytest -v

Alternatively you can uv run tests/example.py to run/debug the standalone example.

Building a wheel

uv build