Выложил ansible_module crate для написания модулей Ansible на Rust.

Можно посмотреть документацию через cargo doc или посмотреть секцию examples.

Тестим

Я добавил переписанный ansible.builtin.slurp модуль на Rust в секции с примерами, так что давайте протестим:

git clone https://github.com/bakanovskii/ansible_module_rs.git
cd ansible_module_rs/

cargo build --examples --r
cd examples/

Тест на маленьком файл

Для начала проверим на маленьком файле:

ANSIBLE_LIBRARY=../target/release/examples/ ansible-playbook test_slurp.yml

Итак, версия на Rust выполнилась за 0.03s, на Python за 0.21s Rust ansible_module small

Неплохо!

Тест на большом файле

Теперь проверим на большом файле:

ANSIBLE_LIBRARY=../target/release/examples/ ansible-playbook test_slurp_big.yml

Теперь, версия на Rust выполнилась за 16.87s, на Python за 23.41s Rust ansible_module big

Почему разница не огромная? Python использует вызовы языка C для кодирования/декодирования base64