# AALpy

> General-purpose Python automata-learning library that infers deterministic, non-deterministic, stochastic and pushdown models of black-box systems from active queries or passive traces. Its README links a separate Bluetooth Low Energy study whose repository reports learned connection and legacy-pairing state machines; message formats are not inferred.

- Type: Tool
- Targets: Protocol
- Category: Protocol analysis tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-17
- Added to the catalog: 2026-10-17
- Original resource: <https://github.com/DES-Lab/AALpy>
- Primary source: <https://github.com/DES-Lab/AALpy/blob/335c50a1b4b5a830d788f86b7c30a8cb6c73ecc0/README.md>
- Catalog page: <https://awesomerea.org/resources/aalpy/>
- Record JSON: <https://awesomerea.org/resources/aalpy/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/aalpy/index.md)

## Requirements & limits

- Latest PyPI release: 1.6.2, uploaded 2026-08-03, requiring Python >=3.6. The reviewed master branch identifies itself as unreleased 2.0.0 and requires Python 3.10+; upstream says 1.6.2 is the last release for older Python versions.
- Active learning needs a user-written system-under-learning adapter, an input alphabet and an equivalence oracle; passive learning needs traces in the documented format. Learned models are bounded by the chosen alphabet, abstraction and oracle.
- pydot is the only Python dependency; visualizing models needs Graphviz on the PATH. MIT-licensed.
- The ble-learning study repository is separate: it needs an nRF52840 dongle or development kit flashed with the supplied SweynTooth-derived firmware, Python 3.9 and its listed libraries, and it has no repository license file.

## Primary sources

1. <https://github.com/DES-Lab/AALpy/blob/335c50a1b4b5a830d788f86b7c30a8cb6c73ecc0/README.md>
2. <https://github.com/DES-Lab/AALpy/blob/335c50a1b4b5a830d788f86b7c30a8cb6c73ecc0/pyproject.toml>
3. <https://github.com/DES-Lab/AALpy/blob/335c50a1b4b5a830d788f86b7c30a8cb6c73ecc0/LICENCE.txt>
4. <https://github.com/DES-Lab/AALpy/releases/tag/v.1.6.2>
5. <https://pypi.org/project/aalpy/1.6.2/>
6. <https://github.com/apferscher/ble-learning/blob/febd774109c41a6635659b8847cc766e667841dd/README.md>

## More in Protocols

- [rtl_433](https://awesomerea.org/resources/rtl-433/index.md) · Tool
- [Blackbox Protobuf](https://awesomerea.org/resources/blackbox-protobuf/index.md) · Tool
- [furiousMAC Continuity](https://awesomerea.org/resources/furiousmac-continuity/index.md) · Tool
- [opendbc](https://awesomerea.org/resources/opendbc/index.md) · Tool
- [FISSURE](https://awesomerea.org/resources/fissure/index.md) · Tool
- [friTap](https://awesomerea.org/resources/fritap/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
