На днях нужно было построить биндинги к библиотеке libftdi, которая обеспечивает взаимодействие с чипами FTDI, которые позволяют создавать различные USB-устройства.
Для создания биндингов я выбрал расширение FFI, которое позволяет загружать динамические библиотеки и строить биндинги к ним.
У FFI есть несколько достоинств, которые сыграли в его пользу:
- Поддержка интерпретаторов MRI Ruby 1.9, MRI Ruby 1.8, JRuby, поддержка платформы Windows, ограниченная поддержка Rubinius;
- Отсутствие необходимости компиляции биндингов;
- Удобный язык описания биндингов.