Об этом проекте

pybpf_asm — это реализация ассемблера BPF на языке Python, изначально присутствовавшего в исходных текстах ядра Linux. Она позволяет разработчикам писать код на BPF-ассемблере и преобразовывать его в исполняемый байткод BPF. Установка возможна посредством предустановленных колёс (wheels) с PyPI либо путём сборки из исходного кода. Для сборки требуется недавняя версия Flex и Bison. На Windows пользователи могут установить winflexbison, тогда как пользователи macOS (и старых дистрибутивов Linux) могут получить эти инструменты через Homebrew, убедившись, что они доступны раньше других в переменной PATH. Типичное использование включает импорт модуля bpf_asm и вызов функции assemble со строкой, содержащей инструкции BPF-ассемблера. Например: import bpf_asm ASM = """ ldh [12] jeq #0x800, accept, drop accept: ret #65536 drop: ret #0 """ print(bpf_asm.assemble(ASM)) Проект также предоставляет утилиту командной строки pybpf_asm, которую можно вызывать напрямую. Подробная документация доступна на GitHub Pages проекта. Программное обеспечение распространяется под лицензией GPL-2.0-only, которая требует, чтобы производные работы также распространялись под той же лицензией.