Size: a a a

Rust — русскоговорящее сообществo

2020 March 14

Э

Эрик in Rust — русскоговорящее сообществo
Так, я с динамическими либами мало игрался. Они идут как FFI или как use dylib::foo; ?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Если как второе, то там же просто use dylib::{Type, Trait}; или не работает?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
FFI
источник

Э

Эрик in Rust — русскоговорящее сообществo
Тогда repr(C) и всё, чего придумывать.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Либо сделай FFI деструктор в пачку repr(C) типов, а в бинарнике обратно собирай.
источник

Э

Эрик in Rust — русскоговорящее сообществo
По типу Vec::into_raw_parts(), ::from_raw_parts().
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
polunin.ai
Есть крейт А, который предоставляет общите типы данных для крейтов Б и В. Я правильно понимаю, что чтобы их использовать в обоих крейтах (из одного пересылается в другой крейт), необходимо скомпилировать Б и В крейты одним компилятором? Или на разных тоже можно? И что единственный способ чтобы можно было юзать крейт А в крейтах Б и В скомпилированных на разных компиляторах является #[repr(C)] ?
dylib -> FFI / repr(C)
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
другие варианты - gRPC и прочие джейсоны через веб-сервер
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
но FFI как бы тоньше в сто раз =)
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Oleg Andreev
другие варианты - gRPC и прочие джейсоны через веб-сервер
Однозначно нет) разворачивать сервер на компе у юзера не хочется)
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
из "статических языков" (т.е. не сишарпы и джава), вроде как только свифт умеет dylib-ы с относительным сохранением протоколов и дженериков
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
polunin.ai
Однозначно нет) разворачивать сервер на компе у юзера не хочется)
правильно, там и так уже все порты заняты
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
Oleg Andreev
из "статических языков" (т.е. не сишарпы и джава), вроде как только свифт умеет dylib-ы с относительным сохранением протоколов и дженериков
но на это достижение ушло охулион долларов и человекочасов щедро оплаченых эплом
источник

p

polunin.ai in Rust — русскоговорящее сообществo
У меня и сейчас FFI но пока без repr(C), так шо норм ффи
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
о, а насколько лучше FFI из раста в раст чем через repr(C)?
источник

Э

Эрик in Rust — русскоговорящее сообществo
UB в паре с ансейфом.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Охуительно.
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
как там с енумами
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
Эрик
UB в паре с ансейфом.
да лано
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Эрик
UB в паре с ансейфом.
Ансейф и так, это же ффи
Уб? Ну ок, пока все работало как надо
источник