Взаимодействие языков
Идеальный сценарий:
Этот раздел курса посвящён взаимодействию Rust с внешними языками через интерфейс внешних функций (FFI), с особым вниманием к взаимодействию с C++.
В идеале пользователи Rust и внешнего языка (в данном случае C++) могли бы напрямую вызывать методы друг друга.
Этот идеальный сценарий очень трудно осуществить:
У разных языков разная семантика, и отображение между ними подразумевает компромиссы. Ни Rust, ни C++ не гарантируют стабильность ABI1, что затрудняет построение на стабильной основе
-
Некоторые поставщики компиляторов C++ обеспечивают стабильность ABI в своём тулчейне. ↩