Я пытаюсь создать композитор Wayland на Rust. Wayland является преемником оконной системы X11. Одна из наиболее полнофункциональных библиотек для разработки Wayland называется wlroots и написана на / для C.I Раньше я использовал его немного, но в C. К сожалению, похоже, что создание безопасных привязок Rust будет затруднено.
Автор находящегося в архиве проекта Way-Cooler попытался создать безопасные привязки, но имел чрезвычайно трудное время, и в конце концов отказался от этого.
Основная проблема, по-видимому, заключается в том, что «ресурсы» Wayland - такие как клавиатуры и подключения мониторов - могут быть удалены пользователем в любое время, просто отсоединив видеокабель. Wayland отправляет обратный вызов, когда это происходит, но такая память, которая может быть просто удалена в любой момент, очевидно, небезопасна и не разрешена Rust.
Раньше я кодировал на Rust, но я не эксперт в управлении памятью или всех инструментах, которые Rust предоставляет в ящиках std / non-std, чтобы помочь с этим. Как я могу реализовать это, надеюсь, более элегантным / простым способом, чем предыдущие попытки сделать то же самое?