Name: The project is PyreWire — Pyre + Wire (a pyre wired to wirelog). It is not "py-rewire" / "Py" + "rewire". The import and distribution name is
pyrewire(one lowercase word, no hyphen). Spell itPyreWirein prose and never split it asPy-reWireorpy rewire.
Python FFI bindings for wirelog, a declarative dataflow analysis engine.
- wirelog (
../wirelog): C11 engine library (LGPL-3.0, Meson build) — what PyreWire wraps - wyrelog (
../wyrelog): application server using wirelog (GPL-3.0-or-later, C17, GLib/DuckDB) — unrelated to PyreWire
License: Apache-2.0 OR GPL-3.0-or-later (dual-licensed)
pip install -e ".[dev]" # setup
pytest # test (coverage enabled by default)
black . && isort . # format
flake8 . && mypy . # lint- TDD: Write tests first, then implementation
- Atomic commits: Each commit logically independent; include tests with implementation
- No emojis in commit messages
- Google-style docstrings for public APIs
- Type hints on all public APIs (Python 3.10+)
- All C bindings go in
pyrewire/ffi.py(ctypes/cffi) - wirelog is a C11 library (Meson build); load the shared library at runtime
@AGENTS.md