Star on GitHubStar1.1k stars

Tool

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.

Targets
Protocol
Category
Protocol analysis tools
Relationship
Foundation tool
Sources reviewed

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.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · DES-Lab/AALpy · Revision 335c50a
  2. pyproject.toml GitHub · DES-Lab/AALpy · Revision 335c50a
  3. LICENCE.txt GitHub · DES-Lab/AALpy · Revision 335c50a
  4. https://github.com/DES-Lab/AALpy/releases/tag/v.1.6.2
  5. https://pypi.org/project/aalpy/1.6.2/
  6. README.md GitHub · apferscher/ble-learning · Revision febd774

More in Protocols

All 140 entries in Protocols

↑↓ move↵ open⌘↵ new tab