> Как притащили раст к себе?
Вообще, у нас в компании основной язык - Scala. В большинстве случаев, он отлично подходит для стрим процессинга, которым мы занимаемся. Но бывают ситуации, когда скала доставляет больше проблем, чем радости. Мы столкнулись с двумя такими ситуациями:
- Примитивнейшая обработка больших объемов данных - в этом случае overhead на GC начинает отжирать существенный процент ресурсов.
- Требование рилтаймовых гарантий - здесь GC паузы неиллюзорно доставляют.
Конечно, все эти проблемы можно решить и на JVM, но это кажется тяжелым и плохим способом. А клевый и правильный способ - взять инструмент, подходящий под задачу.
В общем, оказавшись перед выбором из C++ и раста, решили попробовать Rust. Изначально инициатива исходила от меня, как от CTO, но народ отнесся с энтузиазмом и PoC уже писал не я, а один из скалистов, который сам хотел попробовать. Ну а после того, как мы увидели ожидаемый прирост производительности, уже никто не пытался спорить (собсно, и раньше никто не пытался спорить, но для принятия технологических решений нужны пруфы, прежде всего самим программистам).
> Вы молодая компания и нет легаси от поддержки которого больно отказыватся?
Самой компании примерно два года, а Rust-разработке в компании всего пару месяцев. В роли болезненного легаси у нас выступают С++-библиотеки, у которых нет аналогов. Ну и интеграция с JVM через JNI. К счастью, и тем и другим приходится заниматься крайне редко, только если прямо вообще некуда деваться.
> У вас просто NDA или уровень секретности/госрегуляции? Если второе - то как тащите зависимости с
crates.io во внутренний периметр?
У нас просто NDA.
Зависимости тащим прямо с
crates.io, в том числе этот делает gitlab-ci в процессе сборки. Короче, сборка с человеческим лицом.