Original title:
Libyang - modul pro Python 3
Translated title:
Libyang - Python 3 Module
Authors:
Sedlák, David ; Kocnová, Jitka (referee) ; Kučera, Jan (advisor) Document type: Bachelor's theses
Year:
2020
Language:
cze Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[cze][eng]
Bakalářská práce se zabývá interakcí jazyků C a Python 3. Hlavním cílem bylo vytvoření uživatelsky přívětivého Python 3 rozhraní pro knihovnu libyang2, která své základní rozhraní poskytuje v jazyce C. Výsledné Python 3 rozhraní je vytvořené s využitím CFFI balíčku, ten umožňuje jednoduché použití v rámci jazyka Python 3 a adekvátním způsobem využívá jeho možností. Součástí práce je také srovnání několika vybraných přístupů a nástrojů, které interakci mezi jazyky C a Python 3 umožňují, včetně měření a porovnávání režie spojené s jejich použitím. Implementované rozhraní poslouží ke zjednodušení integrace podpory modelovacího jazyka YANG do síťových aplikací a zařízení.
This bachelor thesis deals with interaction between C and Python 3 languages. The main goal was to provide user friendly Python 3 binding for libyang2 library which provides interface for C language. Final Python 3 interface is created with help of CFFI package, is simply usable in Python 3 and adequately uses rich features of Python 3 language. Comparison of few approaches and tools to interact with C library from Python code is also covered in the thesis, including measurements of call overhead caused by them. Implemented Python 3 interface will help with integration of YANG modeling language in network applications and devices.
Keywords:
CFFI; Ctypes; Cython; libyang2; Python binding; Python wrapper; YANG; API design; C extension; C extension; CFFI; Ctypes; Cython; design aplikačního rozhraní; libyang2; obalová knihovna pro Python; YANG
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/194943